diff --git a/DEPS b/DEPS index e446679..b8ab6cf 100644 --- a/DEPS +++ b/DEPS
@@ -133,11 +133,11 @@ # 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': 'e897c1bd16a8c7050d65067482fb890dfb9f1e71', + 'skia_revision': '3061d27351076a36fce47fb82ce45d39cbdde3c0', # 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': '9e3a60426b207e9291b98e7b3de10ed0f2fadd01', + 'v8_revision': 'aa52ef3fa846058455b64a82627cc9945e01381d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -145,15 +145,15 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'f5115ed4b0f61473d1c03997369b47abae30a252', + 'angle_revision': 'a10b2d078ceb55cc1ba1bf6d7558095154f24163', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': '4ac42dbf51807d2dcd78d0395e2ebf33195b869a', + 'swiftshader_revision': '529eda3e56aa186ee17efe28319d30f33ba33372', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '93101066fa60961b58324276165a2de6126e0f5d', + 'pdfium_revision': '17dedfae9feb1fd108aca77fd80bc641e64309ca', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -256,7 +256,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. - 'spv_tools_revision': 'd0a1f5a05a2b0f8315e5b3f17b8e34c730861b31', + 'spv_tools_revision': 'cc3e93c4e6fb776b67863decfd69eb307df74ae1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -276,7 +276,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. - 'quiche_revision': 'a037b8b34eab00e5208e67685ff82c7cf5133c1c', + 'quiche_revision': '87c39c1ba976f007fdcc8f2f4e02231c3217eb01', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ios_webkit # and whatever else without interference from each other. @@ -806,7 +806,7 @@ # Build tools for Chrome OS. Note: This depends on third_party/pyelftools. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '52e432e7d136a0d0eafd6fb9c91065d721dd2b96', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '50881afd45b2b652ac73443f5706d7051d7660a7', 'condition': 'checkout_linux', }, @@ -831,7 +831,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'e7f0b4c62c551cde2723d1456e007fcb10f53ac2', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '8c66565649b7cae3bc80bba872b730902be7aa03', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -979,7 +979,7 @@ Var('chromium_git') + '/chromium/deps/hunspell_dictionaries.git' + '@' + '3874188bd69fe67a825d07584c74451e45063e95', 'src/third_party/icu': - Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'ae4b77dc8966796f0bd93bb6342023276749e148', + Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '3a162e7afb4abf0668c3a01cf111ddcf223d2ec8', 'src/third_party/icu4j': { 'packages': [ @@ -1184,7 +1184,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '3cd2c388997d5387f7bf61b7358d32514ad6f611', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '826c8d4342d321fb921cf6e0704fe482c7a58348', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78', @@ -1396,7 +1396,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@b6e71184c68cbdd23de1669b9944a32a33cf3af9', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@d3fa0d1e938a9eabe9b6c002b481210b3879ee4e', 'condition': 'checkout_src_internal', },
diff --git a/ash/app_list/app_list_presenter_delegate_impl.cc b/ash/app_list/app_list_presenter_delegate_impl.cc index d0aecd9a..abf55e2 100644 --- a/ash/app_list/app_list_presenter_delegate_impl.cc +++ b/ash/app_list/app_list_presenter_delegate_impl.cc
@@ -289,14 +289,21 @@ } void AppListPresenterDelegateImpl::OnKeyEvent(ui::KeyEvent* event) { + // If keyboard traversal is already engaged, no-op. if (controller_->KeyboardTraversalEngaged()) return; - // When in tablet mode, all events hit this function, so we must ensure that - // the home launcher is visible before setting an event handled. + // If the home launcher is not shown in tablet mode, ignore events. + if (IsTabletMode() && !presenter_->home_launcher_shown()) + return; + + // Don't absorb the first event for the search box while it is open + if (view_->search_box_view()->is_search_box_active()) + return; + + // Arrow keys or Tab will engage the traversal mode. if ((app_list::IsUnhandledArrowKeyEvent(*event) || - event->key_code() == ui::VKEY_TAB) && - (!IsTabletMode() || presenter_->home_launcher_shown())) { + event->key_code() == ui::VKEY_TAB)) { // Handle the first arrow key event to just show the focus rings. event->SetHandled(); controller_->SetKeyboardTraversalMode(true);
diff --git a/ash/display/resolution_notification_controller_unittest.cc b/ash/display/resolution_notification_controller_unittest.cc index 86d265ba..f395339 100644 --- a/ash/display/resolution_notification_controller_unittest.cc +++ b/ash/display/resolution_notification_controller_unittest.cc
@@ -4,7 +4,6 @@ #include "ash/display/resolution_notification_controller.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/screen_util.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h"
diff --git a/ash/lock_screen_action/lock_screen_action_background_controller_impl_unittest.cc b/ash/lock_screen_action/lock_screen_action_background_controller_impl_unittest.cc index 2879038..c9431869 100644 --- a/ash/lock_screen_action/lock_screen_action_background_controller_impl_unittest.cc +++ b/ash/lock_screen_action/lock_screen_action_background_controller_impl_unittest.cc
@@ -80,7 +80,9 @@ .GetContentsView(); views::View* background = LockScreenActionBackgroundViewTestApi(contents_view).GetBackground(); - background->layer()->CompleteAllAnimations(); + // The ink drop's layer is a sibling of the background's layer, so call this + // from the background's layer's parent. + background->layer()->parent()->CompleteAllAnimations(); } views::Widget* GetBackgroundWidget() {
diff --git a/ash/mojo_interface_factory.cc b/ash/mojo_interface_factory.cc index 4f0a1ab..9c3cf66 100644 --- a/ash/mojo_interface_factory.cc +++ b/ash/mojo_interface_factory.cc
@@ -34,7 +34,6 @@ #include "ash/note_taking_controller.h" #include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/ash_switches.h" -#include "ash/session/session_controller_impl.h" #include "ash/shelf/shelf_controller.h" #include "ash/shell.h" #include "ash/shell_delegate.h" @@ -217,11 +216,6 @@ Shell::Get()->time_to_first_present_recorder()->Bind(std::move(request)); } -void BindSessionControllerRequestOnMainThread( - mojom::SessionControllerRequest request) { - Shell::Get()->session_controller()->BindRequest(std::move(request)); -} - void BindShelfRequestOnMainThread(mojom::ShelfControllerRequest request) { Shell::Get()->shelf_controller()->BindRequest(std::move(request)); } @@ -367,9 +361,6 @@ registry->AddInterface( base::BindRepeating(&BindProcessCreationTimeRecorderOnMainThread), main_thread_task_runner); - registry->AddInterface( - base::BindRepeating(&BindSessionControllerRequestOnMainThread), - main_thread_task_runner); registry->AddInterface(base::BindRepeating(&BindShelfRequestOnMainThread), main_thread_task_runner); registry->AddInterface(
diff --git a/ash/multi_device_setup/multi_device_notification_presenter.cc b/ash/multi_device_setup/multi_device_notification_presenter.cc index 85888ec..f2ebbf04 100644 --- a/ash/multi_device_setup/multi_device_notification_presenter.cc +++ b/ash/multi_device_setup/multi_device_notification_presenter.cc
@@ -9,7 +9,6 @@ #include "ash/public/cpp/notification_utils.h" #include "ash/public/cpp/vector_icons/vector_icons.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/strings/grit/ash_strings.h"
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn index 0d0d9b71..410277e41 100644 --- a/ash/public/cpp/BUILD.gn +++ b/ash/public/cpp/BUILD.gn
@@ -103,6 +103,7 @@ "rounded_corner_decorator.h", "scale_utility.cc", "scale_utility.h", + "session/session_activation_observer.h", "session/session_controller.cc", "session/session_controller.h", "session/session_controller_client.h",
diff --git a/ash/public/cpp/manifest.cc b/ash/public/cpp/manifest.cc index d4d82230..75692780 100644 --- a/ash/public/cpp/manifest.cc +++ b/ash/public/cpp/manifest.cc
@@ -30,7 +30,6 @@ #include "ash/public/interfaces/note_taking_controller.mojom.h" #include "ash/public/interfaces/pref_connector.mojom.h" #include "ash/public/interfaces/process_creation_time_recorder.mojom.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/public/interfaces/shelf.mojom.h" #include "ash/public/interfaces/shelf_integration_test_api.mojom.h" #include "ash/public/interfaces/shutdown.mojom.h" @@ -94,12 +93,11 @@ mojom::LoginScreen, mojom::MediaController, mojom::NewWindowController, mojom::NightLightController, mojom::NoteTakingController, - mojom::ProcessCreationTimeRecorder, mojom::SessionController, - mojom::ShelfController, mojom::ShutdownController, - mojom::SplitViewController, mojom::SystemTray, - mojom::TabletModeController, mojom::TrayAction, - mojom::VoiceInteractionController, mojom::VpnList, - mojom::WallpaperController>()) + mojom::ProcessCreationTimeRecorder, mojom::ShelfController, + mojom::ShutdownController, mojom::SplitViewController, + mojom::SystemTray, mojom::TabletModeController, + mojom::TrayAction, mojom::VoiceInteractionController, + mojom::VpnList, mojom::WallpaperController>()) .ExposeCapability("display", service_manager::Manifest::InterfaceList< mojom::AshDisplayController, mojom::DisplayOutputProtection>())
diff --git a/ash/public/cpp/session/session_activation_observer.h b/ash/public/cpp/session/session_activation_observer.h new file mode 100644 index 0000000..1fd968d5 --- /dev/null +++ b/ash/public/cpp/session/session_activation_observer.h
@@ -0,0 +1,27 @@ +// Copyright 2019 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 ASH_PUBLIC_CPP_SESSION_SESSION_ACTIVATION_OBSERVER_H_ +#define ASH_PUBLIC_CPP_SESSION_SESSION_ACTIVATION_OBSERVER_H_ + +#include "ash/public/cpp/ash_public_export.h" +#include "base/observer_list_types.h" + +namespace ash { + +// Interface for ash to notify client of sessions status for a specific +// |account_id|. +class ASH_PUBLIC_EXPORT SessionActivationObserver + : public base::CheckedObserver { + public: + // Called the session is becoming active or inactive. + virtual void OnSessionActivated(bool activated) = 0; + + // Called when lock screen state changes. + virtual void OnLockStateChanged(bool locked) = 0; +}; + +} // namespace ash + +#endif // ASH_PUBLIC_CPP_SESSION_SESSION_ACTIVATION_OBSERVER_H_
diff --git a/ash/public/cpp/session/session_controller.h b/ash/public/cpp/session/session_controller.h index d6a0f23..f9386c8 100644 --- a/ash/public/cpp/session/session_controller.h +++ b/ash/public/cpp/session/session_controller.h
@@ -7,14 +7,20 @@ #include <stdint.h> +#include <string> #include <vector> #include "ash/public/cpp/ash_public_export.h" #include "ash/public/cpp/session/session_types.h" +#include "base/callback_forward.h" +#include "base/time/time.h" + +class AccountId; namespace ash { class SessionControllerClient; +class SessionActivationObserver; // Interface to manage user sessions in ash. class ASH_PUBLIC_EXPORT SessionController { @@ -40,6 +46,78 @@ virtual void SetUserSessionOrder( const std::vector<uint32_t>& user_session_ids) = 0; + // Prepares ash for lock screen. Currently this ensures the current active + // window could not be used to mimic the lock screen. Lock screen is created + // after this call returns. + using PrepareForLockCallback = base::OnceClosure; + virtual void PrepareForLock(PrepareForLockCallback callback) = 0; + + // Runs the pre-lock animation to start locking ash. When the call returns, + // |locked| == true means that the ash post-lock animation is finished and ash + // is fully locked. Otherwise |locked| is false, which means something is + // wrong for the lock and ash is not locked. When the call returns with a true + // |locked|, screen locker runs the post lock jobs such as a11y announcement + // etc. Invoked by the screen locker during initialization. + using StartLockCallback = base::OnceCallback<void(bool locked)>; + virtual void StartLock(StartLockCallback callback) = 0; + + // Notifies ash that chrome lock animations are finished. This is the last + // event for locking. SessionController forwards it to PowerEventObserver. + virtual void NotifyChromeLockAnimationsComplete() = 0; + + // Runs the pre-unlock animation. Invoked by the screen locker before + // dismissing. When the mojo call returns, screen locker takes that as a + // signal of finished unlock animation and dismisses itself. + using RunUnlockAnimationCallback = base::OnceClosure; + virtual void RunUnlockAnimation(RunUnlockAnimationCallback callback) = 0; + + // Notifies that chrome is terminating. + virtual void NotifyChromeTerminating() = 0; + + // Adds a countdown timer to the system tray menu and creates or updates a + // notification saying the session length is limited (e.g. a public session in + // a library). Setting |length_limit| to zero removes the notification. + // NOTE: Chrome enforces the limit, not ash. Ash could enforce it if local + // state prefs and user activity monitoring were available under mustash. + // http://crbug.com/729808 + virtual void SetSessionLengthLimit(base::TimeDelta length_limit, + base::TimeTicks start_time) = 0; + + // Returns whether it's ok to switch the active multiprofile user. May affect + // or be affected by system state such as window overview mode and screen + // casting. + using CanSwitchActiveUserCallback = base::OnceCallback<void(bool can_switch)>; + virtual void CanSwitchActiveUser(CanSwitchActiveUserCallback callback) = 0; + + // Shows a dialog to explain the implications of signing in multiple users. + // If |on_accept| is false, |permanently_accept| is ignored. + using ShowMultiprofilesIntroDialogCallback = + base::OnceCallback<void(bool on_accept, bool permanently_accept)>; + virtual void ShowMultiprofilesIntroDialog( + ShowMultiprofilesIntroDialogCallback callback) = 0; + + // Shows a dialog to confirm that the user wants to teleport a window to + // another desktop. If |on_accept| is false, |permanently_accept| is ignored. + using ShowTeleportWarningDialogCallback = + base::OnceCallback<void(bool on_accept, bool permanently_accept)>; + virtual void ShowTeleportWarningDialog( + ShowTeleportWarningDialogCallback callback) = 0; + + // Shows a dialog that explains that the given user is no longer allowed in + // the session due to a policy change, and aborts the session. + virtual void ShowMultiprofilesSessionAbortedDialog( + const std::string& user_email) = 0; + + // Adds/removes session activation observer. The observer is called when + // session with |account_id| is becoming active or inactive. The observer is + // immediately called for upon registration with the current status. + virtual void AddSessionActivationObserverForAccountId( + const AccountId& account_id, + SessionActivationObserver* observer) = 0; + virtual void RemoveSessionActivationObserverForAccountId( + const AccountId& account_id, + SessionActivationObserver* observer) = 0; + protected: SessionController(); virtual ~SessionController();
diff --git a/ash/public/interfaces/BUILD.gn b/ash/public/interfaces/BUILD.gn index 11c4992..2842cbc2 100644 --- a/ash/public/interfaces/BUILD.gn +++ b/ash/public/interfaces/BUILD.gn
@@ -51,7 +51,6 @@ "note_taking_controller.mojom", "pref_connector.mojom", "process_creation_time_recorder.mojom", - "session_controller.mojom", "shelf.mojom", "shelf_integration_test_api.mojom", "shutdown.mojom",
diff --git a/ash/public/interfaces/session_controller.mojom b/ash/public/interfaces/session_controller.mojom deleted file mode 100644 index 8a03368..0000000 --- a/ash/public/interfaces/session_controller.mojom +++ /dev/null
@@ -1,78 +0,0 @@ -// Copyright 2016 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. - -module ash.mojom; - -import "components/account_id/interfaces/account_id.mojom"; -import "mojo/public/mojom/base/time.mojom"; - -// Interface for ash client (e.g. Chrome) to set session info for ash. -interface SessionController { - // Prepares ash for lock screen. Currently this ensures the current active - // window could not be used to mimic the lock screen. Lock screen is created - // after this call returns. - PrepareForLock() => (); - - // Runs the pre-lock animation to start locking ash. When the call returns, - // |locked| == true means that the ash post-lock animation is finished and ash - // is fully locked. Otherwise |locked| is false, which means something is - // wrong for the lock and ash is not locked. When the call returns with a true - // |locked|, screen locker runs the post lock jobs such as a11y announcement - // etc. Invoked by the screen locker during initialization. - StartLock() => (bool locked); - - // Notifies ash that chrome lock animations are finished. This is the last - // event for locking. SessionController forwards it to PowerEventObserver. - NotifyChromeLockAnimationsComplete(); - - // Runs the pre-unlock animation. Invoked by the screen locker before - // dismissing. When the mojo call returns, screen locker takes that as a - // signal of finished unlock animation and dismisses itself. - RunUnlockAnimation() => (); - - // Notifies that chrome is terminating. - NotifyChromeTerminating(); - - // Adds a countdown timer to the system tray menu and creates or updates a - // notification saying the session length is limited (e.g. a public session in - // a library). Setting |length_limit| to zero removes the notification. - // NOTE: Chrome enforces the limit, not ash. Ash could enforce it if local - // state prefs and user activity monitoring were available under mustash. - // http://crbug.com/729808 - SetSessionLengthLimit(mojo_base.mojom.TimeDelta length_limit, - mojo_base.mojom.TimeTicks start_time); - - // Returns whether it's ok to switch the active multiprofile user. May affect - // or be affected by system state such as window overview mode and screen - // casting. - CanSwitchActiveUser() => (bool can_switch); - - // Shows a dialog to explain the implications of signing in multiple users. - // If |on_accept| is false, |permanently_accept| is ignored. - ShowMultiprofilesIntroDialog() => (bool on_accept, bool permanently_accept); - - // Shows a dialog to confirm that the user wants to teleport a window to - // another desktop. If |on_accept| is false, |permanently_accept| is ignored. - ShowTeleportWarningDialog() => (bool on_accept, bool permanently_accept); - - // Shows a dialog that explains that the given user is no longer allowed in - // the session due to a policy change, and aborts the session. - ShowMultiprofilesSessionAbortedDialog(string user_email); - - // Adds session activation observer. The observer is called when session - // with |account_id| is becoming active or inactive. The observer is - // immediately called for upon registration with the current status. - AddSessionActivationObserverForAccountId( - signin.mojom.AccountId account_id, SessionActivationObserver observer); -}; - -// Interface for ash to notify client of sessions status for a specific -// |account_id|. -interface SessionActivationObserver { - // Called the session is becoming active or inactive. - OnSessionActivated(bool activated); - - // Called when lock screen state changes. - OnLockStateChanged(bool locked); -};
diff --git a/ash/session/session_activation_observer_holder.cc b/ash/session/session_activation_observer_holder.cc index bff1f267..59ffc827 100644 --- a/ash/session/session_activation_observer_holder.cc +++ b/ash/session/session_activation_observer_holder.cc
@@ -6,6 +6,8 @@ #include <utility> +#include "ash/public/cpp/session/session_activation_observer.h" +#include "base/logging.h" #include "base/stl_util.h" namespace ash { @@ -14,15 +16,26 @@ SessionActivationObserverHolder::~SessionActivationObserverHolder() = default; -void SessionActivationObserverHolder ::AddSessionActivationObserverForAccountId( +void SessionActivationObserverHolder::AddForAccountId( const AccountId& account_id, - mojom::SessionActivationObserverPtr observer) { + SessionActivationObserver* observer) { if (!account_id.is_valid()) return; auto& observers = observer_map_[account_id]; if (!observers) - observers = std::make_unique<ObserverSet>(); - observers->AddPtr(std::move(observer)); + observers = std::make_unique<Observers>(); + observers->AddObserver(observer); +} + +void SessionActivationObserverHolder::RemoveForAccountId( + const AccountId& account_id, + SessionActivationObserver* observer) { + auto it = observer_map_.find(account_id); + if (it == observer_map_.end()) { + NOTREACHED(); + return; + } + it->second->RemoveObserver(observer); } void SessionActivationObserverHolder::NotifyActiveSessionChanged( @@ -30,24 +43,32 @@ const AccountId& to) { auto it = observer_map_.find(from); if (it != observer_map_.end()) { - it->second->ForAllPtrs([](auto* ptr) { ptr->OnSessionActivated(false); }); + for (auto& observer : *it->second) + observer.OnSessionActivated(false); } it = observer_map_.find(to); if (it != observer_map_.end()) { - it->second->ForAllPtrs([](auto* ptr) { ptr->OnSessionActivated(true); }); + for (auto& observer : *it->second) + observer.OnSessionActivated(true); } - base::EraseIf(observer_map_, [](auto& item) { return item.second->empty(); }); + PruneObserverMap(); } void SessionActivationObserverHolder::NotifyLockStateChanged(bool locked) { for (const auto& it : observer_map_) { - it.second->ForAllPtrs( - [locked](auto* ptr) { ptr->OnLockStateChanged(locked); }); + for (auto& observer : *it.second) + observer.OnLockStateChanged(locked); } - base::EraseIf(observer_map_, [](auto& item) { return item.second->empty(); }); + PruneObserverMap(); +} + +void SessionActivationObserverHolder::PruneObserverMap() { + base::EraseIf(observer_map_, [](auto& item) { + return !item.second->might_have_observers(); + }); } } // namespace ash
diff --git a/ash/session/session_activation_observer_holder.h b/ash/session/session_activation_observer_holder.h index fff86b22..8cab279d 100644 --- a/ash/session/session_activation_observer_holder.h +++ b/ash/session/session_activation_observer_holder.h
@@ -8,29 +8,33 @@ #include <map> #include <memory> -#include "ash/public/interfaces/session_controller.mojom.h" #include "base/macros.h" +#include "base/observer_list.h" #include "components/account_id/account_id.h" -#include "mojo/public/cpp/bindings/interface_ptr_set.h" namespace ash { +class SessionActivationObserver; + class SessionActivationObserverHolder { public: SessionActivationObserverHolder(); ~SessionActivationObserverHolder(); - void AddSessionActivationObserverForAccountId( - const AccountId& account_id, - mojom::SessionActivationObserverPtr observer); + void AddForAccountId(const AccountId& account_id, + SessionActivationObserver* observer); + void RemoveForAccountId(const AccountId& account_id, + SessionActivationObserver* observer); void NotifyActiveSessionChanged(const AccountId& from, const AccountId& to); void NotifyLockStateChanged(bool locked); private: - using ObserverSet = mojo::InterfacePtrSet<mojom::SessionActivationObserver>; - std::map<AccountId, std::unique_ptr<ObserverSet>> observer_map_; + void PruneObserverMap(); + + using Observers = base::ObserverList<SessionActivationObserver>; + std::map<AccountId, std::unique_ptr<Observers>> observer_map_; DISALLOW_COPY_AND_ASSIGN(SessionActivationObserverHolder); };
diff --git a/ash/session/session_controller_impl.cc b/ash/session/session_controller_impl.cc index 492294a2..8f5b02f 100644 --- a/ash/session/session_controller_impl.cc +++ b/ash/session/session_controller_impl.cc
@@ -10,6 +10,7 @@ #include <utility> #include "ash/metrics/user_metrics_recorder.h" +#include "ash/public/cpp/session/session_activation_observer.h" #include "ash/public/cpp/session/session_controller_client.h" #include "ash/public/interfaces/pref_connector.mojom.h" #include "ash/public/interfaces/user_info.mojom.h" @@ -77,11 +78,6 @@ std::move(start_lock_callback_).Run(false /* locked */); } -void SessionControllerImpl::BindRequest( - mojom::SessionControllerRequest request) { - bindings_.AddBinding(this, std::move(request)); -} - int SessionControllerImpl::NumberOfLoggedInUsers() const { return static_cast<int>(user_sessions_.size()); } @@ -489,14 +485,19 @@ void SessionControllerImpl::AddSessionActivationObserverForAccountId( const AccountId& account_id, - mojom::SessionActivationObserverPtr observer) { + SessionActivationObserver* observer) { bool locked = state_ == SessionState::LOCKED; observer->OnLockStateChanged(locked); observer->OnSessionActivated(user_sessions_.size() && user_sessions_[0]->user_info.account_id == account_id); - session_activation_observer_holder_.AddSessionActivationObserverForAccountId( - account_id, std::move(observer)); + session_activation_observer_holder_.AddForAccountId(account_id, observer); +} + +void SessionControllerImpl::RemoveSessionActivationObserverForAccountId( + const AccountId& account_id, + SessionActivationObserver* observer) { + session_activation_observer_holder_.RemoveForAccountId(account_id, observer); } void SessionControllerImpl::ClearUserSessionsForTest() {
diff --git a/ash/session/session_controller_impl.h b/ash/session/session_controller_impl.h index 1fc3759..0d12f172 100644 --- a/ash/session/session_controller_impl.h +++ b/ash/session/session_controller_impl.h
@@ -14,14 +14,12 @@ #include "ash/login_status.h" #include "ash/public/cpp/session/session_controller.h" #include "ash/public/cpp/session/session_types.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/session/session_activation_observer_holder.h" #include "base/callback.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "base/time/time.h" -#include "mojo/public/cpp/bindings/binding_set.h" class AccountId; class PrefService; @@ -38,8 +36,7 @@ // Implements mojom::SessionController to cache session related info such as // session state, meta data about user sessions to support synchronous // queries for ash. -class ASH_EXPORT SessionControllerImpl : public SessionController, - public mojom::SessionController { +class ASH_EXPORT SessionControllerImpl : public SessionController { public: using UserSessions = std::vector<std::unique_ptr<UserSession>>; @@ -53,9 +50,6 @@ base::TimeDelta session_length_limit() const { return session_length_limit_; } base::TimeTicks session_start_time() const { return session_start_time_; } - // Binds the mojom::SessionControllerRequest to this object. - void BindRequest(mojom::SessionControllerRequest request); - // Returns the number of signed in users. If 0 is returned, there is either // no session in progress or no active user. int NumberOfLoggedInUsers() const; @@ -200,8 +194,6 @@ void UpdateUserSession(const UserSession& user_session) override; void SetUserSessionOrder( const std::vector<uint32_t>& user_session_order) override; - - // mojom::SessionController void PrepareForLock(PrepareForLockCallback callback) override; void StartLock(StartLockCallback callback) override; void NotifyChromeLockAnimationsComplete() override; @@ -218,7 +210,10 @@ const std::string& user_email) override; void AddSessionActivationObserverForAccountId( const AccountId& account_id, - mojom::SessionActivationObserverPtr observer) override; + SessionActivationObserver* observer) override; + void RemoveSessionActivationObserverForAccountId( + const AccountId& account_id, + SessionActivationObserver* observer) override; // Test helpers. void ClearUserSessionsForTest(); @@ -266,9 +261,6 @@ // window, tries to activate one. void EnsureActiveWindowAfterUnblockingUserSession(); - // Bindings for users of the mojom::SessionController interface. - mojo::BindingSet<mojom::SessionController> bindings_; - // Client interface to session manager code (chrome). SessionControllerClient* client_ = nullptr;
diff --git a/ash/session/session_controller_impl_unittest.cc b/ash/session/session_controller_impl_unittest.cc index 060548e1..97a9273 100644 --- a/ash/session/session_controller_impl_unittest.cc +++ b/ash/session/session_controller_impl_unittest.cc
@@ -10,7 +10,6 @@ #include <vector> #include "ash/login_status.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/session/session_observer.h" #include "ash/session/test_session_controller_client.h" #include "ash/shell.h"
diff --git a/ash/session/test_session_controller_client.h b/ash/session/test_session_controller_client.h index 4ecf2f46..d214705e 100644 --- a/ash/session/test_session_controller_client.h +++ b/ash/session/test_session_controller_client.h
@@ -11,7 +11,6 @@ #include "ash/public/cpp/session/session_controller_client.h" #include "ash/public/cpp/session/session_types.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/optional.h"
diff --git a/ash/shelf/overflow_bubble_view.cc b/ash/shelf/overflow_bubble_view.cc index 487773d..8282a60 100644 --- a/ash/shelf/overflow_bubble_view.cc +++ b/ash/shelf/overflow_bubble_view.cc
@@ -11,7 +11,6 @@ #include "ash/shelf/shelf_constants.h" #include "ash/shelf/shelf_view.h" #include "ash/shelf/shelf_widget.h" -#include "ash/shell.h" #include "ash/wm/window_util.h" #include "base/i18n/rtl.h" #include "ui/display/display.h" @@ -39,16 +38,10 @@ SkColor background_color) : ShelfBubble(anchor, shelf_view->shelf()->alignment(), background_color), shelf_(shelf_view->shelf()), - shelf_view_(shelf_view), - background_animator_(SHELF_BACKGROUND_DEFAULT, - // Don't pass the Shelf so the translucent color is - // always used. - nullptr, - Shell::Get()->wallpaper_controller()) { + shelf_view_(shelf_view) { DCHECK(shelf_); set_border_radius(ShelfConstants::shelf_size() / 2); - background_animator_.AddObserver(this); SetArrow(views::BubbleBorder::NONE); SetBackground(nullptr); set_shadow(views::BubbleBorder::NO_ASSETS); @@ -70,9 +63,7 @@ AddChildView(shelf_view_); } -OverflowBubbleView::~OverflowBubbleView() { - background_animator_.RemoveObserver(this); -} +OverflowBubbleView::~OverflowBubbleView() = default; bool OverflowBubbleView::ProcessGestureEvent(const ui::GestureEvent& event) { // Handle scroll-related events, but don't do anything special for begin and @@ -236,8 +227,4 @@ return false; } -void OverflowBubbleView::UpdateShelfBackground(SkColor color) { - set_color(color); -} - } // namespace ash
diff --git a/ash/shelf/overflow_bubble_view.h b/ash/shelf/overflow_bubble_view.h index d59f9dc..e71ed64 100644 --- a/ash/shelf/overflow_bubble_view.h +++ b/ash/shelf/overflow_bubble_view.h
@@ -6,8 +6,6 @@ #define ASH_SHELF_OVERFLOW_BUBBLE_VIEW_H_ #include "ash/ash_export.h" -#include "ash/shelf/shelf_background_animator.h" -#include "ash/shelf/shelf_background_animator_observer.h" #include "ash/shelf/shelf_bubble.h" #include "base/macros.h" @@ -17,8 +15,7 @@ // OverflowBubbleView hosts a ShelfView to display overflown items. // Exports to access this class from OverflowBubbleViewTestAPI. -class ASH_EXPORT OverflowBubbleView : public ShelfBubble, - public ShelfBackgroundAnimatorObserver { +class ASH_EXPORT OverflowBubbleView : public ShelfBubble { public: // |anchor| is the overflow button on the main shelf. |shelf_view| is the // ShelfView containing the overflow items. @@ -57,15 +54,10 @@ // ui::EventHandler: void OnScrollEvent(ui::ScrollEvent* event) override; - // ShelfBackgroundAnimatorObserver: - void UpdateShelfBackground(SkColor color) override; - Shelf* shelf_; ShelfView* shelf_view_; // Owned by views hierarchy. gfx::Vector2d scroll_offset_; - ShelfBackgroundAnimator background_animator_; - DISALLOW_COPY_AND_ASSIGN(OverflowBubbleView); };
diff --git a/ash/shelf/shelf_bubble.cc b/ash/shelf/shelf_bubble.cc index 814fbae..272a96e5 100644 --- a/ash/shelf/shelf_bubble.cc +++ b/ash/shelf/shelf_bubble.cc
@@ -30,8 +30,13 @@ ShelfBubble::ShelfBubble(views::View* anchor, ShelfAlignment alignment, SkColor background_color) - : views::BubbleDialogDelegateView(anchor, GetArrow(alignment)) { - set_color(background_color); + : views::BubbleDialogDelegateView(anchor, GetArrow(alignment)), + background_animator_(SHELF_BACKGROUND_DEFAULT, + // Don't pass the Shelf so the translucent color is + // always used. + nullptr, + Shell::Get()->wallpaper_controller()) { + background_animator_.AddObserver(this); // Place the bubble in the same display as the anchor. set_parent_window( @@ -39,6 +44,10 @@ kShellWindowId_SettingBubbleContainer)); } +ShelfBubble::~ShelfBubble() { + background_animator_.RemoveObserver(this); +} + ax::mojom::Role ShelfBubble::GetAccessibleWindowRole() { // We override the role because the base class sets it to alert dialog, // which results in each tooltip title being announced twice on screen @@ -59,4 +68,8 @@ return ui::DIALOG_BUTTON_NONE; } +void ShelfBubble::UpdateShelfBackground(SkColor color) { + set_color(color); +} + } // namespace ash
diff --git a/ash/shelf/shelf_bubble.h b/ash/shelf/shelf_bubble.h index 31298a7..785c68e 100644 --- a/ash/shelf/shelf_bubble.h +++ b/ash/shelf/shelf_bubble.h
@@ -7,6 +7,9 @@ #include "ash/ash_export.h" #include "ash/public/cpp/shelf_types.h" +#include "ash/shelf/shelf_background_animator.h" +#include "ash/shelf/shelf_background_animator_observer.h" +#include "ash/shell.h" #include "ui/views/bubble/bubble_dialog_delegate_view.h" namespace views { @@ -16,11 +19,13 @@ namespace ash { // A base class for all shelf tooltip bubbles. -class ASH_EXPORT ShelfBubble : public views::BubbleDialogDelegateView { +class ASH_EXPORT ShelfBubble : public views::BubbleDialogDelegateView, + public ShelfBackgroundAnimatorObserver { public: ShelfBubble(views::View* anchor, ShelfAlignment alignment, SkColor background_co0lor); + ~ShelfBubble() override; // views::BubbleDialogDelegateView ax::mojom::Role GetAccessibleWindowRole() override; @@ -43,8 +48,13 @@ // BubbleDialogDelegateView overrides: int GetDialogButtons() const override; + // ShelfBackgroundAnimatorObserver: + void UpdateShelfBackground(SkColor color) override; + int border_radius_ = 0; + ShelfBackgroundAnimator background_animator_; + DISALLOW_COPY_AND_ASSIGN(ShelfBubble); };
diff --git a/ash/shelf/shelf_widget.cc b/ash/shelf/shelf_widget.cc index f2f3a33..2426f8d2 100644 --- a/ash/shelf/shelf_widget.cc +++ b/ash/shelf/shelf_widget.cc
@@ -45,6 +45,9 @@ constexpr int kShelfRoundedCornerRadius = 28; constexpr int kShelfBlurRadius = 30; +// The maximum size of the opaque layer during an "overshoot" (drag away from +// the screen edge). +constexpr int kShelfMaxOvershootHeight = 32; constexpr float kShelfBlurQuality = 0.33f; // Return the first or last focusable child of |root|. @@ -226,7 +229,11 @@ // To achieve this, we extend the layer in the same direction where the shelf // is aligned (downwards for a bottom shelf, etc.). const int radius = kShelfRoundedCornerRadius; - const int safety_margin = 3 * radius; + // With shader rounded corners, we can easily round only 2 corners out of + // 4 which means we don't need as much extra shelf height. + const int safety_margin = ash::features::ShouldUseShaderRoundedCorner() + ? kShelfMaxOvershootHeight + : 3 * radius; opaque_background_bounds.Inset( -shelf->SelectValueForShelfAlignment(0, safety_margin, 0), 0, -shelf->SelectValueForShelfAlignment(0, 0, safety_margin),
diff --git a/ash/system/unified/unified_system_tray_controller_unittest.cc b/ash/system/unified/unified_system_tray_controller_unittest.cc index 3110d89..2199ce6 100644 --- a/ash/system/unified/unified_system_tray_controller_unittest.cc +++ b/ash/system/unified/unified_system_tray_controller_unittest.cc
@@ -5,7 +5,6 @@ #include "ash/system/unified/unified_system_tray_controller.h" #include "ash/public/cpp/ash_features.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" #include "ash/system/message_center/ash_message_center_lock_screen_controller.h"
diff --git a/ash/wm/splitview/split_view_divider.cc b/ash/wm/splitview/split_view_divider.cc index d8f5734..6ba4cf0 100644 --- a/ash/wm/splitview/split_view_divider.cc +++ b/ash/wm/splitview/split_view_divider.cc
@@ -494,6 +494,8 @@ DividerView* divider_view = new DividerView(this); divider_widget_->set_focus_on_creation(false); divider_widget_->Init(params); + divider_widget_->SetVisibilityAnimationTransition( + views::Widget::ANIMATE_NONE); divider_widget_->SetContentsView(divider_view); divider_widget_->SetBounds(GetDividerBoundsInScreen(false /* is_dragging */)); divider_widget_->Show();
diff --git a/base/BUILD.gn b/base/BUILD.gn index 48c0c7c..0b03c11 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -744,6 +744,8 @@ "task/common/intrusive_heap.h", "task/common/operations_controller.cc", "task/common/operations_controller.h", + "task/common/scoped_defer_task_posting.cc", + "task/common/scoped_defer_task_posting.h", "task/common/task_annotator.cc", "task/common/task_annotator.h", "task/lazy_task_runner.cc",
diff --git a/base/task/common/scoped_defer_task_posting.cc b/base/task/common/scoped_defer_task_posting.cc new file mode 100644 index 0000000..9dc719c --- /dev/null +++ b/base/task/common/scoped_defer_task_posting.cc
@@ -0,0 +1,86 @@ +// Copyright 2019 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 "base/task/common/scoped_defer_task_posting.h" + +#include "base/no_destructor.h" +#include "base/threading/thread_local.h" + +namespace base { + +namespace { + +ThreadLocalPointer<ScopedDeferTaskPosting>& GetScopedDeferTaskPostingTLS() { + static NoDestructor<ThreadLocalPointer<ScopedDeferTaskPosting>> tls; + return *tls; +} + +} // namespace + +// static +void ScopedDeferTaskPosting::PostOrDefer( + scoped_refptr<SequencedTaskRunner> task_runner, + const Location& from_here, + OnceClosure task) { + ScopedDeferTaskPosting* scope = Get(); + if (scope) { + scope->DeferTaskPosting(std::move(task_runner), from_here, std::move(task)); + return; + } + + task_runner->PostTask(from_here, std::move(task)); +} + +// static +ScopedDeferTaskPosting* ScopedDeferTaskPosting::Get() { + return GetScopedDeferTaskPostingTLS().Get(); +} + +// static +void ScopedDeferTaskPosting::Set(ScopedDeferTaskPosting* scope) { + // We can post a task from within a ScheduleWork in some tests, so we can + // get nested scopes. In this case ignore all except the top one. + if (!Get()) + return; + return GetScopedDeferTaskPostingTLS().Set(scope); +} + +// static +bool ScopedDeferTaskPosting::IsPresent() { + return !!Get(); +} + +ScopedDeferTaskPosting::ScopedDeferTaskPosting() { + Set(this); +} + +ScopedDeferTaskPosting::~ScopedDeferTaskPosting() { + Set(nullptr); + for (DeferredTask& deferred_task : deferred_tasks_) { + deferred_task.task_runner->PostTask(deferred_task.from_here, + std::move(deferred_task.task)); + } +} + +ScopedDeferTaskPosting::DeferredTask::DeferredTask( + scoped_refptr<SequencedTaskRunner> task_runner, + Location from_here, + OnceClosure task) + : task_runner(std::move(task_runner)), + from_here(from_here), + task(std::move(task)) {} + +ScopedDeferTaskPosting::DeferredTask::DeferredTask(DeferredTask&&) = default; + +ScopedDeferTaskPosting::DeferredTask::~DeferredTask() = default; + +void ScopedDeferTaskPosting::DeferTaskPosting( + scoped_refptr<SequencedTaskRunner> task_runner, + const Location& from_here, + OnceClosure task) { + deferred_tasks_.push_back( + {std::move(task_runner), from_here, std::move(task)}); +} + +} // namespace base
diff --git a/base/task/common/scoped_defer_task_posting.h b/base/task/common/scoped_defer_task_posting.h new file mode 100644 index 0000000..ebc12fc --- /dev/null +++ b/base/task/common/scoped_defer_task_posting.h
@@ -0,0 +1,64 @@ +// Copyright 2019 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 BASE_TASK_COMMON_SCOPED_DEFER_TASK_POSTING_H_ +#define BASE_TASK_COMMON_SCOPED_DEFER_TASK_POSTING_H_ + +#include "base/base_export.h" +#include "base/location.h" +#include "base/macros.h" +#include "base/sequenced_task_runner.h" + +namespace base { + +// Tracing wants to post tasks from within a trace event within PostTask, but +// this can lead to a deadlock. Create a scope to ensure that we are posting +// the tasks in question outside of the scope of the lock. +// NOTE: This scope affects only the thread it is created on. All other threads +// still can post tasks. +// +// TODO(altimin): It should be possible to get rid of this scope, but this +// requires refactoring TimeDomain to ensure that TimeDomain never changes and +// we can read current time without grabbing a lock. +class BASE_EXPORT ScopedDeferTaskPosting { + public: + static void PostOrDefer(scoped_refptr<SequencedTaskRunner> task_runner, + const Location& from_here, + OnceClosure task); + + static bool IsPresent(); + + ScopedDeferTaskPosting(); + ~ScopedDeferTaskPosting(); + + private: + static ScopedDeferTaskPosting* Get(); + static void Set(ScopedDeferTaskPosting* scope); + + void DeferTaskPosting(scoped_refptr<SequencedTaskRunner> task_runner, + const Location& from_here, + OnceClosure task); + + struct DeferredTask { + DeferredTask(scoped_refptr<SequencedTaskRunner> task_runner, + Location from_here, + OnceClosure task); + DeferredTask(DeferredTask&& task); + ~DeferredTask(); + + scoped_refptr<SequencedTaskRunner> task_runner; + Location from_here; + OnceClosure task; + + DISALLOW_COPY_AND_ASSIGN(DeferredTask); + }; + + std::vector<DeferredTask> deferred_tasks_; + + DISALLOW_COPY_AND_ASSIGN(ScopedDeferTaskPosting); +}; + +} // namespace base + +#endif // BASE_TASK_COMMON_SCOPED_DEFER_TASK_POSTING_H_
diff --git a/base/task/common/task_annotator.cc b/base/task/common/task_annotator.cc index e47be1e..d5d0428 100644 --- a/base/task/common/task_annotator.cc +++ b/base/task/common/task_annotator.cc
@@ -66,8 +66,7 @@ DCHECK(task_queue_name); TRACE_EVENT_WITH_FLOW1( TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), trace_event_name, - TRACE_ID_MANGLE(GetTaskTraceID(*pending_task)), - TRACE_EVENT_FLAG_FLOW_OUT | TRACE_EVENT_FLAG_DISALLOW_POSTTASK, + TRACE_ID_MANGLE(GetTaskTraceID(*pending_task)), TRACE_EVENT_FLAG_FLOW_OUT, "task_queue_name", task_queue_name); DCHECK(!pending_task->task_backtrace[0])
diff --git a/base/task/sequence_manager/task_queue_impl.cc b/base/task/sequence_manager/task_queue_impl.cc index 9194671..b72a9b0 100644 --- a/base/task/sequence_manager/task_queue_impl.cc +++ b/base/task/sequence_manager/task_queue_impl.cc
@@ -8,6 +8,7 @@ #include <utility> #include "base/strings/stringprintf.h" +#include "base/task/common/scoped_defer_task_posting.h" #include "base/task/sequence_manager/sequence_manager_impl.h" #include "base/task/sequence_manager/time_domain.h" #include "base/task/sequence_manager/work_queue.h" @@ -49,6 +50,8 @@ TaskQueueImpl::GuardedTaskPoster::~GuardedTaskPoster() {} bool TaskQueueImpl::GuardedTaskPoster::PostTask(PostedTask task) { + ScopedDeferTaskPosting disallow_task_posting; + auto token = operations_controller_.TryBeginOperation(); if (!token) return false; @@ -565,14 +568,16 @@ if (!associated_thread_->IsBoundToCurrentThread()) return; - base::internal::CheckedAutoLock lock(any_thread_lock_); - TRACE_COUNTER_WITH_FLAG1( - TRACE_DISABLED_BY_DEFAULT("sequence_manager"), GetName(), - TRACE_EVENT_FLAG_DISALLOW_POSTTASK, - any_thread_.immediate_incoming_queue.size() + - main_thread_only().immediate_work_queue->Size() + - main_thread_only().delayed_work_queue->Size() + - main_thread_only().delayed_incoming_queue.size()); + size_t total_task_count; + { + base::internal::CheckedAutoLock lock(any_thread_lock_); + total_task_count = any_thread_.immediate_incoming_queue.size() + + main_thread_only().immediate_work_queue->Size() + + main_thread_only().delayed_work_queue->Size() + + main_thread_only().delayed_incoming_queue.size(); + } + TRACE_COUNTER1(TRACE_DISABLED_BY_DEFAULT("sequence_manager"), GetName(), + total_task_count); } void TaskQueueImpl::SetQueuePriority(TaskQueue::QueuePriority priority) {
diff --git a/base/trace_event/common/trace_event_common.h b/base/trace_event/common/trace_event_common.h index c6fed99..f1878a1 100644 --- a/base/trace_event/common/trace_event_common.h +++ b/base/trace_event/common/trace_event_common.h
@@ -1072,7 +1072,6 @@ #define TRACE_EVENT_FLAG_HAS_PROCESS_ID (static_cast<unsigned int>(1 << 11)) #define TRACE_EVENT_FLAG_HAS_LOCAL_ID (static_cast<unsigned int>(1 << 12)) #define TRACE_EVENT_FLAG_HAS_GLOBAL_ID (static_cast<unsigned int>(1 << 13)) -#define TRACE_EVENT_FLAG_DISALLOW_POSTTASK (static_cast<unsigned int>(1 << 14)) // TODO(eseckler): Remove once we have native support for typed proto events in // TRACE_EVENT macros. #define TRACE_EVENT_FLAG_TYPED_PROTO_ARGS (static_cast<unsigned int>(1 << 15))
diff --git a/build/android/gradle/generate_gradle.py b/build/android/gradle/generate_gradle.py index f2bcec5..77f7350d 100755 --- a/build/android/gradle/generate_gradle.py +++ b/build/android/gradle/generate_gradle.py
@@ -123,12 +123,11 @@ subprocess.check_call(cmd) -def _RunNinja(output_dir, args, j): +def _RunNinja(output_dir, args): cmd = [ - os.path.join(_DEPOT_TOOLS_PATH, 'ninja'), + os.path.join(_DEPOT_TOOLS_PATH, 'autoninja'), '-C', output_dir, - '-j{}'.format(j), ] cmd.extend(args) logging.info('Running: %r', cmd) @@ -807,9 +806,6 @@ parser.add_argument('--fast', action='store_true', help='Skip generating R.java and other generated files.') - parser.add_argument('-j', - default=1000 if os.path.exists(_SRC_INTERNAL) else 50, - help='Value for number of parallel jobs for ninja') parser.add_argument('--native-target', dest='native_targets', action='append', @@ -868,7 +864,7 @@ _RunGnGen(output_dir) else: # Faster than running "gn gen" in the no-op case. - _RunNinja(output_dir, ['build.ninja'], args.j) + _RunNinja(output_dir, ['build.ninja']) # Query ninja for all __build_config_crbug_908819 targets. targets = _QueryForAllGnTargets(output_dir) else: @@ -898,8 +894,7 @@ main_entries = [_ProjectEntry.FromGnTarget(t) for t in targets] logging.warning('Building .build_config files...') - _RunNinja( - output_dir, [e.NinjaBuildConfigTarget() for e in main_entries], args.j) + _RunNinja(output_dir, [e.NinjaBuildConfigTarget() for e in main_entries]) if args.all: # There are many unused libraries, so restrict to those that are actually @@ -961,7 +956,7 @@ if generated_inputs: logging.warning('Building generated source files...') targets = _RebasePath(generated_inputs, output_dir) - _RunNinja(output_dir, targets, args.j) + _RunNinja(output_dir, targets) if zip_tuples: _ExtractZips(generator.project_dir, zip_tuples)
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni index c351d6ba..d7a94a5 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni
@@ -57,7 +57,9 @@ # Enables support for ThinLTO, which links 3x-10x faster than full LTO. See # also http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html - use_thin_lto = is_cfi || (is_android && is_official_build) + # TODO(thakis): Re-add `|| (is_android && is_official_build)` once lld and + # resource whitelist generation can coexist again, https://crbug.com/960881 + use_thin_lto = is_cfi # Tell VS to create a PDB that references information in .obj files rather # than copying it all. This should improve linker performance. mspdbcmf.exe
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 392300b4..69e4b30 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8914040861094280272 \ No newline at end of file +8914010619758962160 \ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index f6b3b8f5..dfeaf29 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -8914040284923388736 \ No newline at end of file +8914022441954645264 \ No newline at end of file
diff --git a/cc/input/scroll_snap_data.cc b/cc/input/scroll_snap_data.cc index b09ded1e..2121d1ca 100644 --- a/cc/input/scroll_snap_data.cc +++ b/cc/input/scroll_snap_data.cc
@@ -112,6 +112,9 @@ bool SnapContainerData::FindSnapPosition( const SnapSelectionStrategy& strategy, gfx::ScrollOffset* snap_position) const { + if (scroll_snap_type_.is_none) + return false; + gfx::ScrollOffset base_position = strategy.base_position(); SnapAxis axis = scroll_snap_type_.axis; bool should_snap_on_x = strategy.ShouldSnapOnX() &&
diff --git a/cc/input/scroll_snap_data.h b/cc/input/scroll_snap_data.h index 9938c0b..f68d903 100644 --- a/cc/input/scroll_snap_data.h +++ b/cc/input/scroll_snap_data.h
@@ -154,11 +154,15 @@ typedef std::vector<SnapAreaData> SnapAreaList; -// Snap container is a scroll container that has non-'none' value for -// scroll-snap-type. It can be snapped to one of its snap areas when a scroll -// happens. +// Snap container is a scroll container that at least one snap area assigned to +// it. If the snap-type is not 'none', then it can be snapped to one of its +// snap areas when a scroll happens. // This data structure describes the data needed for SnapCoordinator to perform // snapping in the snap container. +// +// Note that the snap area data should only be used when snap-type is not 'none' +// There is not guarantee that this information is up-to-date otherwise. In +// fact, we skip updating these info as an optiomization. class CC_EXPORT SnapContainerData { public: SnapContainerData();
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml index 6529693..8841b1ec 100644 --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml
@@ -647,16 +647,8 @@ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" android:exported="false"> </activity> - {% if notouch_build == "true" %} - <activity-alias android:name="org.chromium.chrome.browser.preferences.Preferences" - android:targetActivity="org.chromium.chrome.browser.touchless.TouchlessPreferences"> - </activity-alias> - <activity android:name="org.chromium.chrome.browser.touchless.TouchlessPreferences" - android:theme="@style/Theme.Chromium.Preferences.Touchless" - {% else %} <activity android:name="org.chromium.chrome.browser.preferences.Preferences" android:theme="@style/Theme.Chromium.Preferences" - {% endif %} android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" android:label="@string/preferences" android:exported="false">
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java index c858161..44d465a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -243,6 +243,7 @@ public static final String HOME_PAGE_BUTTON_FORCE_ENABLED = "HomePageButtonForceEnabled"; public static final String HOMEPAGE_TILE = "HomepageTile"; public static final String HORIZONTAL_TAB_SWITCHER_ANDROID = "HorizontalTabSwitcherAndroid"; + public static final String IDENTITY_DISC = "IdentityDisc"; public static final String IMMERSIVE_UI_MODE = "ImmersiveUiMode"; public static final String INCOGNITO_STRINGS = "IncognitoStrings"; public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java index b09940e..cf6d4c9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java
@@ -10,6 +10,7 @@ import android.support.annotation.IntDef; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; +import android.support.v7.content.res.AppCompatResources; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -291,6 +292,14 @@ setViewText(entry, viewHolder.mTextView); viewHolder.mImageView.setImageBitmap(entry.getFavicon()); + if (entry.getIndex() == FULL_HISTORY_ENTRY_INDEX) { + ApiCompatibilityUtils.setImageTintList(viewHolder.mImageView, + AppCompatResources.getColorStateList( + mContext, R.color.default_icon_color_blue)); + } else { + ApiCompatibilityUtils.setImageTintList(viewHolder.mImageView, null); + } + if (mType == Type.ANDROID_SYSTEM_BACK) { View container = viewHolder.mContainer; if (mTopPadding == null) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java index 0697d1e..e0fbcdf 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java
@@ -57,7 +57,10 @@ @After public void tearDown() { - mTestServer.stopAndDestroyServer(); + // If setUp() fails, tearDown() still needs to be able to execute without exceptions. + if (mTestServer != null) { + mTestServer.stopAndDestroyServer(); + } } @Test
diff --git a/chrome/android/touchless/java/res/values-v17/styles.xml b/chrome/android/touchless/java/res/values-v17/styles.xml index 6ff2eab..838951a 100644 --- a/chrome/android/touchless/java/res/values-v17/styles.xml +++ b/chrome/android/touchless/java/res/values-v17/styles.xml
@@ -13,14 +13,4 @@ <item name="android:textSize">14sp</item> <item name="android:textColor">@android:color/white</item> </style> - - <style name="PreferenceActionBarModern.Touchless"> - <item name="titleTextStyle">@style/TextAppearance.BlackTitle1</item> - </style> - - <style name="Theme.Chromium.Preferences.Touchless"> - <item name="android:statusBarColor" tools:targetApi="21">@color/modern_primary_color</item> - <item name="android:windowLightStatusBar" tools:targetApi="23">@bool/window_light_navigation_bar</item> - <item name="actionBarStyle">@style/PreferenceActionBarModern.Touchless</item> - </style> </resources> \ No newline at end of file
diff --git a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/NoTouchActivity.java b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/NoTouchActivity.java index 1bf5522..74ff804 100644 --- a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/NoTouchActivity.java +++ b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/NoTouchActivity.java
@@ -153,7 +153,7 @@ public void initializeState() { mInactivityTracker = new ChromeInactivityTracker( LAST_BACKGROUNDED_TIME_MS_PREF, this.getLifecycleDispatcher()); - boolean launchNtpDueToInactivity = shouldForceNTPDueToInactivity(); + boolean launchNtpDueToInactivity = shouldForceNTPDueToInactivity(null); // SingleTabActivity#initializeState creates a tab based on #getSavedInstanceState(), so if // we need to clear it due to inactivity, we should do it before calling @@ -189,7 +189,11 @@ resetSavedInstanceState(); } - private boolean shouldForceNTPDueToInactivity() { + private boolean shouldForceNTPDueToInactivity(Intent intent) { + if (intent != null) { + String intentData = intent.getDataString(); + if (intentData != null && !intentData.isEmpty()) return false; + } if (mInactivityTracker == null) return false; if (mTabObserver == null) return false; @@ -209,7 +213,7 @@ @Override public void onNewIntentWithNative(Intent intent) { - if (shouldForceNTPDueToInactivity()) { + if (shouldForceNTPDueToInactivity(intent)) { if (!mIntentHandler.shouldIgnoreIntent(intent)) { if (!NTP_URL.equals(getActivityTab().getUrl())) { intent.setData(Uri.parse(NTP_URL));
diff --git a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessPreferences.java b/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessPreferences.java deleted file mode 100644 index ce8b3035..0000000 --- a/chrome/android/touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessPreferences.java +++ /dev/null
@@ -1,26 +0,0 @@ -// Copyright 2019 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. - -package org.chromium.chrome.browser.touchless; - -import android.os.Bundle; -import android.view.Menu; - -import org.chromium.chrome.browser.preferences.Preferences; - -/** - * The Chrome settings activity for touchless devices. - */ -public class TouchlessPreferences extends Preferences { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getSupportActionBar().setDisplayHomeAsUpEnabled(false); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - return false; - } -}
diff --git a/chrome/android/touchless/javatests/src/org/chromium/chrome/browser/touchless/NoTouchActivityTest.java b/chrome/android/touchless/javatests/src/org/chromium/chrome/browser/touchless/NoTouchActivityTest.java index 26a5b0a..062d013a 100644 --- a/chrome/android/touchless/javatests/src/org/chromium/chrome/browser/touchless/NoTouchActivityTest.java +++ b/chrome/android/touchless/javatests/src/org/chromium/chrome/browser/touchless/NoTouchActivityTest.java
@@ -39,6 +39,7 @@ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) public class NoTouchActivityTest { private static final String TEST_PATH = "/chrome/test/data/android/simple.html"; + private static final String TEST_PATH_2 = "/chrome/test/data/android/test.html"; @Rule public ChromeActivityTestRule<NoTouchActivity> mActivityTestRule = @@ -157,13 +158,40 @@ mTestServer.getURL(TEST_PATH)); }); - mActivity = ApplicationTestUtils.recreateActivity(mActivity); - mActivityTestRule.setActivity(mActivity); - mActivityTestRule.waitForActivityNativeInitializationComplete(); + ApplicationTestUtils.fireHomeScreenIntent(mActivityTestRule.getActivity()); + ApplicationTestUtils.launchChrome(mActivityTestRule.getActivity()); CriteriaHelper.pollUiThread( () -> mActivity.getActivityTab().getNativePage() instanceof TouchlessNewTabPage); } + @Test + @MediumTest + @CommandLineFlags. + Add({"enable-features=" + ChromeInactivityTracker.FEATURE_NAME + "<FakeStudyName", + "force-fieldtrials=FakeStudyName/Enabled", + "force-fieldtrial-params=FakeStudyName.Enabled:" + NTP_LAUNCH_DELAY_IN_MINS_PARAM + + "/0"}) + public void + testViewUrlAfterInactivity() throws Throwable { + mActivityTestRule.startMainActivityFromLauncher(); + mActivity = mActivityTestRule.getActivity(); + mActivityTestRule.loadUrl(mTestServer.getURL(TEST_PATH)); + TestThreadUtils.runOnUiThreadBlocking(() -> { + Assert.assertEquals(mActivity.getActivityTab().getWebContents().getLastCommittedUrl(), + mTestServer.getURL(TEST_PATH)); + }); + + ApplicationTestUtils.fireHomeScreenIntent(mActivityTestRule.getActivity()); + + String alternateUrl = mTestServer.getURL(TEST_PATH_2); + mActivityTestRule.startMainActivityWithURL(alternateUrl); + + CriteriaHelper.pollUiThread( + () + -> alternateUrl.equals( + mActivity.getActivityTab().getWebContents().getLastCommittedUrl())); + } + /** * Tests that Safe Browsing and interstitials work. */
diff --git a/chrome/android/touchless/touchless_java_sources.gni b/chrome/android/touchless/touchless_java_sources.gni index 171a615f..55a84d4 100644 --- a/chrome/android/touchless/touchless_java_sources.gni +++ b/chrome/android/touchless/touchless_java_sources.gni
@@ -38,7 +38,6 @@ "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessNewTabPageMediator.java", "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessNewTabPageProperties.java", "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessNewTabPageTopLayout.java", - "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessPreferences.java", "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessRecyclerView.java", "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessSuggestionsBinder.java", "touchless/java/src/org/chromium/chrome/browser/touchless/TouchlessTabObserver.java",
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp index deff071..1e51a63 100644 --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp
@@ -665,6 +665,9 @@ Reset to default </message> </if> + <message name="IDS_SETTINGS_CHROME_COLORS" desc="Text of the label describing 'Chrome Colors' theme."> + Chrome Colors + </message> <message name="IDS_SETTINGS_SHOW_HOME_BUTTON" desc="Label for the checkbox which enables or disables showing the home button in the toolbar."> Show home button </message>
diff --git a/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHROME_COLORS.png.sha1 b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHROME_COLORS.png.sha1 new file mode 100644 index 0000000..37ae547 --- /dev/null +++ b/chrome/app/settings_strings_grdp/IDS_SETTINGS_CHROME_COLORS.png.sha1
@@ -0,0 +1 @@ +93d419359fdd5daa722510d6bb73413ab263e78d \ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 70f474e..b5fba2a 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -3683,6 +3683,9 @@ flag_descriptions::kMobileIdentityConsistencyName, flag_descriptions::kMobileIdentityConsistencyDescription, kOsAndroid, FEATURE_VALUE_TYPE(signin::kMiceFeature)}, + {"identity-disc", flag_descriptions::kIdentityDiscName, + flag_descriptions::kIdentityDiscDescription, kOsAndroid, + FEATURE_VALUE_TYPE(chrome::android::kIdentityDisc)}, #endif // defined(OS_ANDROID) {"autofill-use-improved-label-disambiguation",
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc index 9a1bb72d..6615312 100644 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc
@@ -141,6 +141,7 @@ &kHomePageButtonForceEnabled, &kHomepageTile, &kHorizontalTabSwitcherAndroid, + &kIdentityDisc, &kImmersiveUiMode, &kImprovedA2HS, &kInlineUpdateFlow, @@ -407,6 +408,9 @@ const base::Feature kHorizontalTabSwitcherAndroid{ "HorizontalTabSwitcherAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kIdentityDisc{"IdentityDisc", + base::FEATURE_DISABLED_BY_DEFAULT}; + // Makes "Add to Home screen" in the app menu generate an APK for the shortcut // URL which opens Chrome in fullscreen. // This feature is kept around so that we have a kill-switch in case of server
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h index 515e35c..1118d7c 100644 --- a/chrome/browser/android/chrome_feature_list.h +++ b/chrome/browser/android/chrome_feature_list.h
@@ -72,6 +72,7 @@ extern const base::Feature kHomePageButtonForceEnabled; extern const base::Feature kHomepageTile; extern const base::Feature kHorizontalTabSwitcherAndroid; +extern const base::Feature kIdentityDisc; extern const base::Feature kImmersiveUiMode; extern const base::Feature kImprovedA2HS; extern const base::Feature kInlineUpdateFlow;
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index 3b4902bf..cd555b0 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd
@@ -83,6 +83,8 @@ <include name="IDR_BROWSER_SWITCHER_BROWSER_SWITCHER_PROXY_HTML" file="resources\browser_switcher\browser_switcher_proxy.html" compress="gzip" allowexternalscript="true" type="BINDATA" /> <include name="IDR_BROWSER_SWITCHER_BROWSER_SWITCHER_PROXY_JS" file="resources\browser_switcher\browser_switcher_proxy.js" compress="gzip" type="BINDATA" /> <include name="IDR_BROWSER_SWITCHER_BROWSER_SWITCH_HTML" file="resources\browser_switcher\browser_switcher.html" compress="gzip" allowexternalscript="true" type="BINDATA" /> + <include name="IDR_BROWSER_SWITCHER_INTERNALS_HTML" file="resources\browser_switcher\internals\browser_switcher_internals.html" compress="gzip" allowexternalscript="true" type="BINDATA" /> + <include name="IDR_BROWSER_SWITCHER_INTERNALS_JS" file="resources\browser_switcher\internals\browser_switcher_internals.js" compress="gzip" type="BINDATA" /> </if> <if expr="is_win"> <include name="IDR_ABOUT_CONFLICTS_HTML" file="resources\conflicts\about_conflicts.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index d2b8ae487..c5b8794 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -320,6 +320,8 @@ #include "media/media_buildflags.h" #include "media/mojo/buildflags.h" #include "mojo/public/cpp/bindings/binding_set.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h" #include "net/base/load_flags.h" #include "net/base/mime_util.h" @@ -1455,16 +1457,15 @@ for (size_t i = 0; i < extra_parts_.size(); ++i) extra_parts_[i]->RenderProcessWillLaunch(host); - service_manager::mojom::ServicePtr service; - *service_request = mojo::MakeRequest(&service); - service_manager::mojom::PIDReceiverPtr pid_receiver; + mojo::PendingRemote<service_manager::mojom::Service> service; + *service_request = service.InitWithNewPipeAndPassReceiver(); service_manager::Identity renderer_identity = host->GetChildIdentity(); ChromeService::GetInstance()->connector()->RegisterServiceInstance( service_manager::Identity(chrome::mojom::kRendererServiceName, renderer_identity.instance_group(), renderer_identity.instance_id(), base::Token::CreateRandom()), - std::move(service), mojo::MakeRequest(&pid_receiver)); + std::move(service), mojo::NullReceiver() /* metadata_receiver */); } GURL ChromeContentBrowserClient::GetEffectiveURL(
diff --git a/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc b/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc index e98e4f5..afa56f4b 100644 --- a/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc +++ b/chrome/browser/chromeos/arc/intent_helper/arc_external_protocol_dialog.cc
@@ -474,11 +474,11 @@ return; browser->window()->SetIntentPickerViewVisibility(/*visible=*/true); + const bool stay_in_chrome = IsChromeAnAppCandidate(handlers); browser->window()->ShowIntentPickerBubble( - std::move(app_info), IsChromeAnAppCandidate(handlers), - /*show_remember_selection=*/true, - base::Bind(OnIntentPickerClosed, render_process_host_id, routing_id, url, - safe_to_bypass_ui, base::Passed(&handlers))); + std::move(app_info), stay_in_chrome, /*show_remember_selection=*/true, + base::BindOnce(OnIntentPickerClosed, render_process_host_id, routing_id, + url, safe_to_bypass_ui, std::move(handlers))); } // Called when ARC returned a handler list for the |url|.
diff --git a/chrome/browser/chromeos/arc/print/arc_print_service.cc b/chrome/browser/chromeos/arc/print/arc_print_service.cc index d65c593..ce039a3 100644 --- a/chrome/browser/chromeos/arc/print/arc_print_service.cc +++ b/chrome/browser/chromeos/arc/print/arc_print_service.cc
@@ -255,7 +255,7 @@ return; } if (printers_manager_->IsPrinterInstalled(*printer)) { - PrinterInstalled(*printer, chromeos::kSuccess); + FetchCapabilities(*printer); return; } configurer_->SetUpPrinter( @@ -297,10 +297,13 @@ return; } printers_manager_->PrinterInstalled(printer, true /*is_automatic*/); - const std::string& printer_id = printer.id(); + FetchCapabilities(printer); + } + + void FetchCapabilities(const chromeos::Printer& printer) { base::PostTaskWithTraitsAndReplyWithResult( FROM_HERE, {base::MayBlock()}, - base::BindOnce(&FetchCapabilitiesOnBlockingTaskRunner, printer_id), + base::BindOnce(&FetchCapabilitiesOnBlockingTaskRunner, printer.id()), base::BindOnce(&PrinterDiscoverySessionHostImpl::CapabilitiesReceived, weak_ptr_factory_.GetWeakPtr(), printer)); }
diff --git a/chrome/browser/chromeos/attestation/machine_certificate_uploader.cc b/chrome/browser/chromeos/attestation/machine_certificate_uploader.cc index 1ea7baa..83b9fe6 100644 --- a/chrome/browser/chromeos/attestation/machine_certificate_uploader.cc +++ b/chrome/browser/chromeos/attestation/machine_certificate_uploader.cc
@@ -269,7 +269,9 @@ // Get the payload and check if the certificate has already been uploaded. GetKeyPayload( base::BindRepeating(&MachineCertificateUploader::CheckIfUploaded, - weak_factory_.GetWeakPtr(), pem_certificate_chain)); + weak_factory_.GetWeakPtr(), pem_certificate_chain), + base::BindRepeating(&MachineCertificateUploader::Reschedule, + weak_factory_.GetWeakPtr())); } void MachineCertificateUploader::UploadCertificate( @@ -293,16 +295,13 @@ } void MachineCertificateUploader::GetKeyPayload( - base::RepeatingCallback<void(const std::string&)> callback) { + base::RepeatingCallback<void(const std::string&)> callback, + base::RepeatingCallback<void()> on_failure) { cryptohome_client_->TpmAttestationGetKeyPayload( KEY_DEVICE, cryptohome::AccountIdentifier(), // Not used. kEnterpriseMachineKey, - base::BindRepeating( - DBusStringCallback, callback, - base::BindRepeating(&MachineCertificateUploader::Reschedule, - weak_factory_.GetWeakPtr()), - FROM_HERE)); + base::BindRepeating(DBusStringCallback, callback, on_failure, FROM_HERE)); } void MachineCertificateUploader::OnUploadComplete(bool status) { @@ -310,7 +309,8 @@ VLOG(1) << "Enterprise Machine Certificate uploaded to DMServer."; GetKeyPayload( base::BindRepeating(&MachineCertificateUploader::MarkAsUploaded, - weak_factory_.GetWeakPtr())); + weak_factory_.GetWeakPtr()), + base::DoNothing()); } std::move(callback_).Run(status); }
diff --git a/chrome/browser/chromeos/attestation/machine_certificate_uploader.h b/chrome/browser/chromeos/attestation/machine_certificate_uploader.h index cbb94214..c778eb1 100644 --- a/chrome/browser/chromeos/attestation/machine_certificate_uploader.h +++ b/chrome/browser/chromeos/attestation/machine_certificate_uploader.h
@@ -72,9 +72,10 @@ void CheckIfUploaded(const std::string& pem_certificate_chain, const std::string& key_payload); - // Gets the payload associated with the EMK and sends it to |callback|. - void GetKeyPayload( - base::RepeatingCallback<void(const std::string&)> callback); + // Gets the payload associated with the EMK and sends it to |callback|, + // or call |on_failure| with no arguments if the payload cannot be obtained. + void GetKeyPayload(base::RepeatingCallback<void(const std::string&)> callback, + base::RepeatingCallback<void()> on_failure); // Called when a certificate upload operation completes. On success, |status| // will be true.
diff --git a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc index 1f36755..dea49d8d 100644 --- a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc +++ b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.cc
@@ -1258,7 +1258,7 @@ } auto printers_manager = chromeos::CupsPrintersManager::Create( Profile::FromBrowserContext(browser_context())); - printers_manager->UpdateSavedPrinter(printer); + printers_manager->SavePrinter(printer); return RespondNow(NoArguments()); }
diff --git a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc index 0a2cfc6..45f7ef06 100644 --- a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc +++ b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc
@@ -30,23 +30,6 @@ namespace { -// Gets the file path from which easy unlock app should be loaded. -base::FilePath GetEasyUnlockAppPath() { -#if defined(GOOGLE_CHROME_BUILD) -#ifndef NDEBUG - // Only allow app path override switch for debug build. - const base::CommandLine* command_line = - base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switches::kEasyUnlockAppPath)) - return command_line->GetSwitchValuePath(switches::kEasyUnlockAppPath); -#endif // !defined(NDEBUG) - - return base::FilePath("/usr/share/chromeos-assets/easy_unlock"); -#endif // defined(GOOGLE_CHROME_BUILD) - - return base::FilePath(); -} - bool IsFeatureAllowed(content::BrowserContext* context) { return multidevice_setup::IsFeatureAllowed( multidevice_setup::mojom::Feature::kSmartLock, @@ -113,10 +96,6 @@ Profile::FromBrowserContext(context))); } - const base::FilePath app_path = app_path_for_testing_.empty() - ? GetEasyUnlockAppPath() - : app_path_for_testing_; - service->Initialize(); return service; }
diff --git a/chrome/browser/chromeos/login/lock/screen_locker.cc b/chrome/browser/chromeos/login/lock/screen_locker.cc index 8bd8291..9211aef 100644 --- a/chrome/browser/chromeos/login/lock/screen_locker.cc +++ b/chrome/browser/chromeos/login/lock/screen_locker.cc
@@ -9,7 +9,6 @@ #include "ash/public/cpp/ash_switches.h" #include "ash/public/interfaces/constants.mojom.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "base/bind.h" #include "base/command_line.h" #include "base/lazy_instance.h"
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc index 8a8b1100..a3965e61 100644 --- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc +++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
@@ -12,8 +12,7 @@ #include <vector> #include "ash/public/cpp/ash_pref_names.h" -#include "ash/public/interfaces/constants.mojom.h" -#include "ash/public/interfaces/session_controller.mojom.h" +#include "ash/public/cpp/session/session_controller.h" #include "base/bind.h" #include "base/bind_helpers.h" #include "base/command_line.h" @@ -99,9 +98,7 @@ #include "components/user_manager/user_type.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" -#include "content/public/common/service_manager_connection.h" #include "extensions/browser/device_local_account_util.h" -#include "services/service_manager/public/cpp/connector.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" #include "ui/chromeos/resources/grit/ui_chromeos_resources.h" @@ -1413,11 +1410,8 @@ void ChromeUserManagerImpl::OnUserNotAllowed(const std::string& user_email) { LOG(ERROR) << "Shutdown session because a user is not allowed to be in the " "current session"; - ash::mojom::SessionControllerPtr session_controller; - content::ServiceManagerConnection::GetForProcess() - ->GetConnector() - ->BindInterface(ash::mojom::kServiceName, &session_controller); - session_controller->ShowMultiprofilesSessionAbortedDialog(user_email); + ash::SessionController::Get()->ShowMultiprofilesSessionAbortedDialog( + user_email); chrome::RecordDialogCreation( chrome::DialogIdentifier::MULTIPROFILES_SESSION_ABORTED); }
diff --git a/chrome/browser/chromeos/printing/cups_printers_manager.cc b/chrome/browser/chromeos/printing/cups_printers_manager.cc index 07c00f0..58755e46 100644 --- a/chrome/browser/chromeos/printing/cups_printers_manager.cc +++ b/chrome/browser/chromeos/printing/cups_printers_manager.cc
@@ -114,15 +114,13 @@ } // Public API function. - void UpdateSavedPrinter(const Printer& printer) override { + void SavePrinter(const Printer& printer) override { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_); if (!native_printers_allowed_.GetValue()) { - LOG(WARNING) << "UpdateSavedPrinter() called when " + LOG(WARNING) << "SavePrinter() called when " "UserNativePrintersAllowed is set to false"; return; } - // If this is an 'add' instead of just an update, record the event. - MaybeRecordInstallation(printer, false /* is_automatic_installation */); synced_printers_manager_->UpdateSavedPrinter(printer); // Note that we will rebuild our lists when we get the observer // callback from |synced_printers_manager_|. @@ -165,8 +163,6 @@ } MaybeRecordInstallation(printer, is_automatic); MarkPrinterInstalledWithCups(printer); - - synced_printers_manager_->UpdateSavedPrinter(printer); } // Public API function. @@ -322,9 +318,9 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_); for (const PrinterDetector::DetectedPrinter& detected : detected_list) { const std::string& detected_printer_id = detected.printer.id(); - if (printers_.Get(PrinterClass::kSaved, detected_printer_id)) { - // It's already in the configured class, don't need to do anything - // else here. + if (printers_.IsPrinterInClass(PrinterClass::kSaved, + detected_printer_id)) { + // It's already in the saved class, don't need to do anything else here. continue; }
diff --git a/chrome/browser/chromeos/printing/cups_printers_manager.h b/chrome/browser/chromeos/printing/cups_printers_manager.h index 69e89f8..16a6cb0 100644 --- a/chrome/browser/chromeos/printing/cups_printers_manager.h +++ b/chrome/browser/chromeos/printing/cups_printers_manager.h
@@ -67,11 +67,9 @@ virtual std::vector<Printer> GetPrinters( PrinterClass printer_class) const = 0; - // Update or save a printer as a saved printer. If this is the same as - // an existing saved printer, the entry will be updated. If the printer - // appears in a class other than saved, it will be moved to the - // saved class. - virtual void UpdateSavedPrinter(const Printer& printer) = 0; + // Saves |printer|. If |printer| already exists in the saved class, it will + // be overwritten. + virtual void SavePrinter(const Printer& printer) = 0; // Remove the saved printer with the given id. This is a NOP if // the printer_id is not that of a saved printer. @@ -83,9 +81,7 @@ virtual void AddObserver(Observer* observer) = 0; virtual void RemoveObserver(Observer* observer) = 0; - // Record that the given printers has been installed in CUPS for usage. If - // |printer| is not a saved or enterprise printer, this will have the - // side effect of moving |printer| into the saved class. + // Record that the given printers has been installed in CUPS for usage. // Parameter |is_automatic| should be set to true if the printer was // saved automatically (without requesting additional information // from the user).
diff --git a/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc b/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc index e1b6ef1..844b5272 100644 --- a/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc +++ b/chrome/browser/chromeos/printing/cups_printers_manager_unittest.cc
@@ -200,6 +200,7 @@ }); detections_.resize(new_end - detections_.begin()); + on_printers_found_callback_.Run(detections_); } private: @@ -426,8 +427,10 @@ // classes. manager_->PrinterInstalled(Printer("DiscoveredPrinter0"), true /* is_automatic */); + manager_->SavePrinter(Printer("DiscoveredPrinter0")); manager_->PrinterInstalled(Printer("AutomaticPrinter0"), true /* is_automatic */); + manager_->SavePrinter(Printer("AutomaticPrinter0")); scoped_task_environment_.RunUntilIdle(); ExpectPrintersInClassAre(PrinterClass::kDiscovered, {"DiscoveredPrinter1"}); ExpectPrintersInClassAre(PrinterClass::kAutomatic, {"AutomaticPrinter1"}); @@ -439,7 +442,7 @@ // should propagate. Updates of printers in other classes should result in // those printers becoming saved. Updates of unknown printers should // result in a new saved printer. -TEST_F(CupsPrintersManagerTest, UpdateSavedPrinter) { +TEST_F(CupsPrintersManagerTest, SavePrinter) { // Start with a printer in each class named after the class it's in, except // Enterprise which is not relevant to this test. Printer existing_saved("Saved"); @@ -456,7 +459,7 @@ // Update the existing saved printer. Check that the new display name // propagated. existing_saved.set_display_name("New Display Name"); - manager_->UpdateSavedPrinter(existing_saved); + manager_->SavePrinter(existing_saved); scoped_task_environment_.RunUntilIdle(); ExpectPrintersInClassAre(PrinterClass::kSaved, {"Saved"}); EXPECT_EQ(manager_->GetPrinters(PrinterClass::kSaved)[0].display_name(), @@ -465,19 +468,19 @@ // Do the same thing for the Automatic and Discovered printers. // Create a configuration for the zeroconf printer, which should shift it // into the saved category. - manager_->PrinterInstalled(Printer("Automatic"), true /* is_automatic */); + manager_->SavePrinter(Printer("Automatic")); scoped_task_environment_.RunUntilIdle(); ExpectPrintersInClassAre(PrinterClass::kAutomatic, {}); ExpectPrintersInClassAre(PrinterClass::kSaved, {"Automatic", "Saved"}); - manager_->PrinterInstalled(Printer("Discovered"), true /* is_automatic */); + manager_->SavePrinter(Printer("Discovered")); scoped_task_environment_.RunUntilIdle(); ExpectPrintersInClassAre(PrinterClass::kDiscovered, {}); ExpectPrintersInClassAre(PrinterClass::kSaved, {"Automatic", "Saved", "Discovered"}); - // Update a printer we haven't seen before, which should just add it. - manager_->PrinterInstalled(Printer("NewFangled"), true /* is_automatic */); + // Save a printer we haven't seen before, which should just add it to kSaved. + manager_->SavePrinter(Printer("NewFangled")); scoped_task_environment_.RunUntilIdle(); ExpectPrintersInClassAre(PrinterClass::kSaved, {"Automatic", "Saved", "Discovered", "NewFangled"}); @@ -534,8 +537,8 @@ } // Test that if |UserNativePrintersAllowed| pref is set to false, then -// UpdateSavedPrinter() will simply do nothing. -TEST_F(CupsPrintersManagerTest, UpdateSavedPrinterUserNativePrintersDisabled) { +// SavePrinter() will simply do nothing. +TEST_F(CupsPrintersManagerTest, SavePrinterUserNativePrintersDisabled) { // Start by installing a saved printer to be used to test than any // changes made to the printer will not be propogated. Printer existing_saved("Saved"); @@ -555,7 +558,7 @@ // Update the existing saved printer. Verify that the changes did not // progogate. existing_saved.set_display_name("New Display Name"); - manager_->UpdateSavedPrinter(existing_saved); + manager_->SavePrinter(existing_saved); scoped_task_environment_.RunUntilIdle(); // Reenable user printers in order to do checking. @@ -566,14 +569,14 @@ // Attempt to update the Automatic and Discovered printers. In both cases // check that the printers do not move into the saved category. - manager_->UpdateSavedPrinter(Printer("Automatic")); + manager_->SavePrinter(Printer("Automatic")); scoped_task_environment_.RunUntilIdle(); UpdatePolicyValue(prefs::kUserNativePrintersAllowed, true); ExpectPrintersInClassAre(PrinterClass::kAutomatic, {"Automatic"}); ExpectPrintersInClassAre(PrinterClass::kSaved, {"Saved"}); UpdatePolicyValue(prefs::kUserNativePrintersAllowed, false); - manager_->UpdateSavedPrinter(Printer("Discovered")); + manager_->SavePrinter(Printer("Discovered")); scoped_task_environment_.RunUntilIdle(); UpdatePolicyValue(prefs::kUserNativePrintersAllowed, true); ExpectPrintersInClassAre(PrinterClass::kDiscovered, {"Discovered"}); @@ -582,7 +585,7 @@ // Attempt to update a printer that we haven't seen before, check that nothing // changed. - manager_->UpdateSavedPrinter(Printer("NewFangled")); + manager_->SavePrinter(Printer("NewFangled")); scoped_task_environment_.RunUntilIdle(); UpdatePolicyValue(prefs::kUserNativePrintersAllowed, true); ExpectPrintersInClassAre(PrinterClass::kSaved, {"Saved"}); @@ -676,24 +679,46 @@ EXPECT_TRUE(manager_->IsPrinterInstalled(printer)); } -// Test that calling PrinterInstalled when printer configuration change updates -// the saved printer. -TEST_F(CupsPrintersManagerTest, - PrinterInstalledUpdatesPreviouslyInstalledPrinter) { +// Test that we can save non-discovered printers. +TEST_F(CupsPrintersManagerTest, SavePrinterSucceedsOnManualPrinter) { + Printer printer(kPrinterId); + printer.set_uri("manual uri"); + manager_->SavePrinter(printer); + + auto saved_printers = manager_->GetPrinters(PrinterClass::kSaved); + ASSERT_EQ(1u, saved_printers.size()); + EXPECT_EQ(printer.uri(), saved_printers[0].uri()); +} + +// Test that installing a printer does not put it in the saved class. +TEST_F(CupsPrintersManagerTest, PrinterInstalledDoesNotSavePrinter) { Printer printer(kPrinterId); manager_->PrinterInstalled(printer, false /* is_automatic */); + + auto saved_printers = manager_->GetPrinters(PrinterClass::kSaved); + EXPECT_EQ(0u, saved_printers.size()); +} + +// Test that calling SavePrinter() when printer configuration change updates +// the saved printer but does not install the updated printer. +TEST_F(CupsPrintersManagerTest, SavePrinterUpdatesPreviouslyInstalledPrinter) { + Printer printer(kPrinterId); + manager_->PrinterInstalled(printer, false /* is_automatic */); + manager_->SavePrinter(printer); EXPECT_TRUE(manager_->IsPrinterInstalled(printer)); Printer updated(printer); updated.set_uri("different value"); EXPECT_FALSE(manager_->IsPrinterInstalled(updated)); - manager_->PrinterInstalled(updated, false /* is_automatic */); - - // The printer in saved should have the new uri, not the old uri. + manager_->SavePrinter(updated); auto saved_printers = manager_->GetPrinters(PrinterClass::kSaved); - EXPECT_EQ(1u, saved_printers.size()); + ASSERT_EQ(1u, saved_printers.size()); EXPECT_EQ(updated.uri(), saved_printers[0].uri()); + + // Even though the updated printer was saved, it still needs to be marked as + // installed again. + EXPECT_FALSE(manager_->IsPrinterInstalled(updated)); } } // namespace
diff --git a/chrome/browser/chromeos/printing/printers_map.h b/chrome/browser/chromeos/printing/printers_map.h index b1dd467..5eba874 100644 --- a/chrome/browser/chromeos/printing/printers_map.h +++ b/chrome/browser/chromeos/printing/printers_map.h
@@ -56,14 +56,14 @@ // |printer_id| doesn't exist in printer_class. void Remove(PrinterClass printer_class, const std::string& printer_id); - private: - // Returns true if |printer_class| exists and contains at least 1 printer. - bool HasPrintersInClass(PrinterClass printer_class) const; - // Returns true if the printer |printer_id| exists in |printer_class|. bool IsPrinterInClass(PrinterClass printer_class, const std::string& printer_id) const; + private: + // Returns true if |printer_class| exists and contains at least 1 printer. + bool HasPrintersInClass(PrinterClass printer_class) const; + // Returns true if |printer_id| exists in any class. Used only for DCHECKs. bool IsExistingPrinter(const std::string& printer_id) const;
diff --git a/chrome/browser/chromeos/printing/printers_map_unittest.cc b/chrome/browser/chromeos/printing/printers_map_unittest.cc index f01c7c3..1d6d46b 100644 --- a/chrome/browser/chromeos/printing/printers_map_unittest.cc +++ b/chrome/browser/chromeos/printing/printers_map_unittest.cc
@@ -343,4 +343,22 @@ EXPECT_TRUE(printers_map.Get(printer_id)); } +TEST_F(PrintersMapTest, IsPrinterInClass) { + PrintersMap printers_map; + + const std::string printer_id = "id"; + + // Returns false for non-existent printers. + EXPECT_FALSE( + printers_map.IsPrinterInClass(PrinterClass::kEnterprise, "random_id")); + + // Add an enterprise printer. It can be found as an enterprise printer, but + // not as a discovered printer. + printers_map.Insert(PrinterClass::kEnterprise, Printer(printer_id)); + EXPECT_TRUE( + printers_map.IsPrinterInClass(PrinterClass::kEnterprise, printer_id)); + EXPECT_FALSE( + printers_map.IsPrinterInClass(PrinterClass::kDiscovered, printer_id)); +} + } // namespace chromeos
diff --git a/chrome/browser/download/download_manager_utils.cc b/chrome/browser/download/download_manager_utils.cc index 8164615..7f696829 100644 --- a/chrome/browser/download/download_manager_utils.cc +++ b/chrome/browser/download/download_manager_utils.cc
@@ -6,11 +6,8 @@ #include "base/bind.h" #include "build/build_config.h" -#include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/transition_manager/full_browser_transition_manager.h" #include "components/download/public/common/in_progress_download_manager.h" -#include "content/public/browser/browser_context.h" #include "content/public/browser/download_request_utils.h" #if defined(OS_ANDROID) @@ -23,16 +20,6 @@ bool IgnoreOriginSecurityCheck(const GURL& url) { return true; } - -// Some ChromeOS browser tests doesn't initialize DownloadManager when profile -// is created, and cause the download request to fail. This method helps us -// ensure that the DownloadManager will be created after profile creation. -void GetDownloadManagerOnProfileCreation(Profile* profile) { - content::DownloadManager* manager = - content::BrowserContext::GetDownloadManager(profile); - DCHECK(manager); -} - } // namespace download::InProgressDownloadManager* @@ -52,15 +39,3 @@ base::BindRepeating(&IgnoreOriginSecurityCheck), base::BindRepeating(&content::DownloadRequestUtils::IsURLSafe)); } - -void DownloadManagerUtils::InitializeSimpleDownloadManager( - SimpleFactoryKey* key) { -#if defined(OS_ANDROID) - if (!g_browser_process) { - DownloadManagerService::GetInstance()->CreateInProgressDownloadManager(); - return; - } -#endif - FullBrowserTransitionManager::Get()->RegisterCallbackOnProfileCreation( - key, base::BindOnce(&GetDownloadManagerOnProfileCreation)); -}
diff --git a/chrome/browser/download/download_manager_utils.h b/chrome/browser/download/download_manager_utils.h index 68623c7c..460b66a 100644 --- a/chrome/browser/download/download_manager_utils.h +++ b/chrome/browser/download/download_manager_utils.h
@@ -8,7 +8,6 @@ #include "base/macros.h" class Profile; -class SimpleFactoryKey; namespace download { class InProgressDownloadManager; @@ -19,11 +18,6 @@ // Creates an InProgressDownloadManager from a profile. static download::InProgressDownloadManager* RetrieveInProgressDownloadManager( Profile* profile); - - // Initializes the SimpleDownloadManager that is associated with |key| whenver - // possible. - static void InitializeSimpleDownloadManager(SimpleFactoryKey* key); - private: DISALLOW_COPY_AND_ASSIGN(DownloadManagerUtils); };
diff --git a/chrome/browser/download/download_service_factory.cc b/chrome/browser/download/download_service_factory.cc index 75be1500..d0e92416 100644 --- a/chrome/browser/download/download_service_factory.cc +++ b/chrome/browser/download/download_service_factory.cc
@@ -17,7 +17,6 @@ #include "chrome/browser/background_fetch/background_fetch_download_client.h" #include "chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.h" #include "chrome/browser/download/deferred_client_wrapper.h" -#include "chrome/browser/download/download_manager_utils.h" #include "chrome/browser/download/download_task_scheduler_impl.h" #include "chrome/browser/download/simple_download_manager_coordinator_factory.h" #include "chrome/browser/net/system_network_context_manager.h" @@ -61,6 +60,9 @@ #if defined(CHROMEOS) std::unique_ptr<download::Client> CreatePluginVmImageDownloadClient( Profile* profile) { + content::DownloadManager* manager = + content::BrowserContext::GetDownloadManager(profile); + DCHECK(manager); return std::make_unique<plugin_vm::PluginVmImageDownloadClient>(profile); } #endif @@ -189,12 +191,6 @@ #else task_scheduler = std::make_unique<DownloadTaskSchedulerImpl>(context); #endif - // Some tests doesn't initialize DownloadManager when profile is created, - // and cause the download service to fail. Call - // InitializeSimpleDownloadManager() to initialize the DownloadManager - // whenever profile becomes available. - DownloadManagerUtils::InitializeSimpleDownloadManager( - profile->GetProfileKey()); return download::BuildDownloadService( profile->GetProfileKey(), profile->GetPrefs(), std::move(clients), content::GetNetworkConnectionTracker(),
diff --git a/chrome/browser/extensions/api/file_system/chrome_file_system_delegate.cc b/chrome/browser/extensions/api/file_system/chrome_file_system_delegate.cc index 0c631b3..8f148a77 100644 --- a/chrome/browser/extensions/api/file_system/chrome_file_system_delegate.cc +++ b/chrome/browser/extensions/api/file_system/chrome_file_system_delegate.cc
@@ -184,7 +184,7 @@ content::ChildProcessSecurityPolicy::GetInstance(); DCHECK(policy); - const auto process_id = requester->render_frame_host()->GetProcess()->GetID(); + const auto process_id = requester->source_process_id(); // Read-only permisisons. policy->GrantReadFile(process_id, volume->mount_path()); policy->GrantReadFileSystem(process_id, file_system_id);
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 5c156231..f77b22f 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -1173,6 +1173,11 @@ "expiry_milestone": 80 }, { + "name": "identity-disc", + "owners": ["//chrome/android/java/src/org/chromium/chrome/browser/toolbar/OWNERS"], + "expiry_milestone": 78 + }, + { "name": "enable-implicit-root-scroller", "owners": [ "bokan", "input-dev" ], "expiry_milestone": 75
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index f3a7941..8202b61 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2323,6 +2323,10 @@ "When NTPButton is enabled, the first tile of the Suggested Tiles will be " "used for homepage. It will not have an effect when NTPButton is disabled."; +const char kIdentityDiscName[] = "Identity Disc"; +const char kIdentityDiscDescription[] = + "Enables Identity Disc, profile avatar icon button in toolbar."; + const char kIncognitoStringsName[] = "Alternate incognito strings"; const char kIncognitoStringsDescription[] = "Show alternate incognito strings if enabled.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 000d375..c357d8d 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1396,6 +1396,9 @@ extern const char kHomepageTileName[]; extern const char kHomepageTileDescription[]; +extern const char kIdentityDiscName[]; +extern const char kIdentityDiscDescription[]; + extern const char kIncognitoStringsName[]; extern const char kIncognitoStringsDescription[];
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc index 689ab63..469ceb9ec 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -479,6 +479,7 @@ void ChromePasswordManagerClient::CheckProtectedPasswordEntry( PasswordType reused_password_type, + const std::string& username, const std::vector<std::string>& matching_domains, bool password_field_exists) { safe_browsing::PasswordProtectionService* pps = @@ -486,7 +487,7 @@ if (!pps) return; pps->MaybeStartProtectedPasswordEntryRequest( - web_contents(), GetMainFrameURL(), + web_contents(), GetMainFrameURL(), username, safe_browsing::PasswordProtectionService:: GetPasswordProtectionReusedPasswordType(reused_password_type), matching_domains, password_field_exists);
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.h b/chrome/browser/password_manager/chrome_password_manager_client.h index 8412087..8e459461 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.h +++ b/chrome/browser/password_manager/chrome_password_manager_client.h
@@ -150,6 +150,7 @@ void CheckProtectedPasswordEntry( password_manager::metrics_util::PasswordType reused_password_type, + const std::string& username, const std::vector<std::string>& matching_domains, bool password_field_exists) override;
diff --git a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc index 09a277b..f6abf5f5 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
@@ -689,21 +689,22 @@ std::unique_ptr<MockChromePasswordManagerClient> client( new MockChromePasswordManagerClient(test_web_contents.get())); - EXPECT_CALL(*client->password_protection_service(), - MaybeStartProtectedPasswordEntryRequest(_, _, _, _, true)) + EXPECT_CALL( + *client->password_protection_service(), + MaybeStartProtectedPasswordEntryRequest(_, _, "username", _, _, true)) .Times(4); client->CheckProtectedPasswordEntry( - password_manager::metrics_util::PasswordType::SAVED_PASSWORD, + password_manager::metrics_util::PasswordType::SAVED_PASSWORD, "username", std::vector<std::string>({"saved_domain.com"}), true); client->CheckProtectedPasswordEntry( - password_manager::metrics_util::PasswordType::SYNC_PASSWORD, + password_manager::metrics_util::PasswordType::SYNC_PASSWORD, "username", std::vector<std::string>({"saved_domain.com"}), true); client->CheckProtectedPasswordEntry( password_manager::metrics_util::PasswordType::OTHER_GAIA_PASSWORD, - std::vector<std::string>({"saved_domain.com"}), true); + "username", std::vector<std::string>({"saved_domain.com"}), true); client->CheckProtectedPasswordEntry( password_manager::metrics_util::PasswordType::ENTERPRISE_PASSWORD, - std::vector<std::string>({"saved_domain.com"}), true); + "username", std::vector<std::string>({"saved_domain.com"}), true); } TEST_F(ChromePasswordManagerClientTest, VerifyLogPasswordReuseDetectedEvent) {
diff --git a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc index e0a2801..67e37ae3 100644 --- a/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc +++ b/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
@@ -34,10 +34,9 @@ DCHECK(performance_manager); performance_manager->task_runner()->PostTask( - FROM_HERE, - base::BindOnce(&performance_manager::ProcessNodeImpl::AddBinding, - base::Unretained(user_data->process_node()), - std::move(request))); + FROM_HERE, base::BindOnce(&performance_manager::ProcessNodeImpl::Bind, + base::Unretained(user_data->process_node()), + std::move(request))); } } // namespace
diff --git a/chrome/browser/performance_manager/graph/frame_node_impl.cc b/chrome/browser/performance_manager/graph/frame_node_impl.cc index 3db2aad..b785bb8 100644 --- a/chrome/browser/performance_manager/graph/frame_node_impl.cc +++ b/chrome/browser/performance_manager/graph/frame_node_impl.cc
@@ -18,7 +18,8 @@ FrameNodeImpl* parent_frame_node, int frame_tree_node_id, const base::UnguessableToken& dev_tools_token) - : CoordinationUnitInterface(graph), + : TypedNodeBase(graph), + binding_(this), parent_frame_node_(parent_frame_node), page_node_(page_node), process_node_(process_node), @@ -33,6 +34,20 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } +void FrameNodeImpl::Bind( + resource_coordinator::mojom::DocumentCoordinationUnitRequest request) { + // It is possible to receive a DocumentCoordinationUnitRequest when |binding_| + // is already bound in these cases: + // - Navigation from the initial empty document to the first real document. + // - Navigation rejected by RenderFrameHostImpl::ValidateDidCommitParams(). + // See discussion: + // https://chromium-review.googlesource.com/c/chromium/src/+/1572459/6#message-bd31f3e73f96bd9f7721be81ba6ac0076d053147 + if (binding_.is_bound()) + binding_.Close(); + + binding_.Bind(std::move(request)); +} + void FrameNodeImpl::SetNetworkAlmostIdle(bool network_almost_idle) { network_almost_idle_.SetAndMaybeNotify(this, network_almost_idle); } @@ -140,11 +155,6 @@ return is_ad_frame_; } -void FrameNodeImpl::set_url(const GURL& url) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - url_ = url; -} - void FrameNodeImpl::SetIsCurrent(bool is_current) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); is_current_.SetAndMaybeNotify(this, is_current); @@ -176,6 +186,38 @@ return !parent_frame_node_; } +void FrameNodeImpl::OnNavigationCommitted(const GURL& url, bool same_document) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + url_ = url; + + if (same_document) + return; + + // Close |binding_| to ensure that messages queued by the previous document + // before the navigation commit are dropped. + // + // Note: It is guaranteed that |binding_| isn't yet bound to the new document. + // This is important because it would be incorrect to close the new + // document's binding. + // + // Renderer: blink::DocumentLoader::DidCommitNavigation + // ... content::RenderFrameImpl::DidCommitProvisionalLoad + // ... mojom::FrameHost::DidCommitProvisionalLoad + // Browser: RenderFrameHostImpl::DidCommitNavigation + // Bind the new document's interface provider [A] + // PMTabHelper::DidFinishNavigation + // (async) FrameNodeImpl::OnNavigationCommitted [B] + // Renderer: Request DocumentCoordinationUnit interface + // Browser: PMTabHelper::OnInterfaceRequestFromFrame [C] + // (async) FrameNodeImpl::Bind [D] + // + // A happens before C, because no interface request can be processed + // before the interface provider is bound. A posts B to PM sequence and + // C posts D to PM sequence, therefore B happens before D. + binding_.Close(); +} + bool FrameNodeImpl::AreAllInterventionPoliciesSet() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // The convention is that policies are first set en masse, in order. So if
diff --git a/chrome/browser/performance_manager/graph/frame_node_impl.h b/chrome/browser/performance_manager/graph/frame_node_impl.h index 839cf0f..67222ce 100644 --- a/chrome/browser/performance_manager/graph/frame_node_impl.h +++ b/chrome/browser/performance_manager/graph/frame_node_impl.h
@@ -44,10 +44,8 @@ // active frame. class FrameNodeImpl : public PublicNodeImpl<FrameNodeImpl, FrameNode>, - public CoordinationUnitInterface< - FrameNodeImpl, - resource_coordinator::mojom::DocumentCoordinationUnit, - resource_coordinator::mojom::DocumentCoordinationUnitRequest> { + public TypedNodeBase<FrameNodeImpl>, + public resource_coordinator::mojom::DocumentCoordinationUnit { public: static constexpr NodeTypeEnum Type() { return NodeTypeEnum::kFrame; } @@ -62,6 +60,9 @@ const base::UnguessableToken& dev_tools_token); ~FrameNodeImpl() override; + void Bind( + resource_coordinator::mojom::DocumentCoordinationUnitRequest request); + // resource_coordinator::mojom::DocumentCoordinationUnit implementation. void SetNetworkAlmostIdle(bool idle) override; void SetLifecycleState( @@ -90,13 +91,15 @@ bool is_ad_frame() const; // Setters are not thread safe. - void set_url(const GURL& url); void SetIsCurrent(bool is_current); // A frame is a main frame if it has no |parent_frame_node|. This can be // called from any thread. bool IsMainFrame() const; + // Invoked when a navigation is committed in the frame. + void OnNavigationCommitted(const GURL& url, bool same_document); + // Returns true if all intervention policies have been set for this frame. bool AreAllInterventionPoliciesSet() const; @@ -119,6 +122,8 @@ bool HasFrameNodeInAncestors(FrameNodeImpl* frame_node) const; bool HasFrameNodeInDescendants(FrameNodeImpl* frame_node) const; + mojo::Binding<resource_coordinator::mojom::DocumentCoordinationUnit> binding_; + FrameNodeImpl* const parent_frame_node_; PageNodeImpl* const page_node_; ProcessNodeImpl* const process_node_;
diff --git a/chrome/browser/performance_manager/graph/frame_node_impl_unittest.cc b/chrome/browser/performance_manager/graph/frame_node_impl_unittest.cc index c943b2ee..f77b99e 100644 --- a/chrome/browser/performance_manager/graph/frame_node_impl_unittest.cc +++ b/chrome/browser/performance_manager/graph/frame_node_impl_unittest.cc
@@ -58,13 +58,23 @@ EXPECT_EQ(parent_node.get(), child3_node->parent_frame_node()); } -TEST_F(FrameNodeImplTest, Url) { +TEST_F(FrameNodeImplTest, NavigationCommitted_SameDocument) { auto process = CreateNode<ProcessNodeImpl>(); auto page = CreateNode<PageNodeImpl>(); auto frame_node = CreateNode<FrameNodeImpl>(process.get(), page.get()); EXPECT_TRUE(frame_node->url().is_empty()); const GURL url("http://www.foo.com/"); - frame_node->set_url(url); + frame_node->OnNavigationCommitted(url, /* same_document */ true); + EXPECT_EQ(url, frame_node->url()); +} + +TEST_F(FrameNodeImplTest, NavigationCommitted_DifferentDocument) { + auto process = CreateNode<ProcessNodeImpl>(); + auto page = CreateNode<PageNodeImpl>(); + auto frame_node = CreateNode<FrameNodeImpl>(process.get(), page.get()); + EXPECT_TRUE(frame_node->url().is_empty()); + const GURL url("http://www.foo.com/"); + frame_node->OnNavigationCommitted(url, /* same_document */ false); EXPECT_EQ(url, frame_node->url()); }
diff --git a/chrome/browser/performance_manager/graph/node_base.h b/chrome/browser/performance_manager/graph/node_base.h index 005f673..5682e14 100644 --- a/chrome/browser/performance_manager/graph/node_base.h +++ b/chrome/browser/performance_manager/graph/node_base.h
@@ -18,7 +18,7 @@ #include "chrome/browser/performance_manager/graph/node_type.h" #include "chrome/browser/performance_manager/graph/properties.h" #include "chrome/browser/performance_manager/observers/graph_observer.h" -#include "mojo/public/cpp/bindings/binding_set.h" +#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h" @@ -119,25 +119,6 @@ DISALLOW_COPY_AND_ASSIGN(TypedNodeBase); }; -template <class NodeImplClass, class MojoInterfaceClass, class MojoRequestClass> -class CoordinationUnitInterface : public TypedNodeBase<NodeImplClass>, - public MojoInterfaceClass { - public: - explicit CoordinationUnitInterface(GraphImpl* graph) - : TypedNodeBase<NodeImplClass>(graph) {} - - ~CoordinationUnitInterface() override = default; - - void AddBinding(MojoRequestClass request) { - bindings_.AddBinding(this, std::move(request)); - } - - private: - mojo::BindingSet<MojoInterfaceClass> bindings_; - - DISALLOW_COPY_AND_ASSIGN(CoordinationUnitInterface); -}; - } // namespace performance_manager #endif // CHROME_BROWSER_PERFORMANCE_MANAGER_GRAPH_NODE_BASE_H_
diff --git a/chrome/browser/performance_manager/graph/process_node_impl.cc b/chrome/browser/performance_manager/graph/process_node_impl.cc index e5f767c6..b85a5099 100644 --- a/chrome/browser/performance_manager/graph/process_node_impl.cc +++ b/chrome/browser/performance_manager/graph/process_node_impl.cc
@@ -12,7 +12,7 @@ namespace performance_manager { ProcessNodeImpl::ProcessNodeImpl(GraphImpl* graph) - : CoordinationUnitInterface(graph) { + : TypedNodeBase(graph), binding_(this) { DETACH_FROM_SEQUENCE(sequence_checker_); } @@ -36,6 +36,13 @@ cpu_usage_ = cpu_usage; } +void ProcessNodeImpl::Bind( + resource_coordinator::mojom::ProcessCoordinationUnitRequest request) { + if (binding_.is_bound()) + binding_.Close(); + binding_.Bind(std::move(request)); +} + void ProcessNodeImpl::SetExpectedTaskQueueingDuration( base::TimeDelta duration) { expected_task_queueing_duration_.SetAndNotify(this, duration); @@ -55,6 +62,9 @@ // Close the process handle to kill the zombie. process_.Close(); + + // No more message should be received from this process. + binding_.Close(); } void ProcessNodeImpl::SetProcess(base::Process process,
diff --git a/chrome/browser/performance_manager/graph/process_node_impl.h b/chrome/browser/performance_manager/graph/process_node_impl.h index e81480e..f47beb5 100644 --- a/chrome/browser/performance_manager/graph/process_node_impl.h +++ b/chrome/browser/performance_manager/graph/process_node_impl.h
@@ -33,16 +33,17 @@ // 4. Back to 2. class ProcessNodeImpl : public PublicNodeImpl<ProcessNodeImpl, ProcessNode>, - public CoordinationUnitInterface< - ProcessNodeImpl, - resource_coordinator::mojom::ProcessCoordinationUnit, - resource_coordinator::mojom::ProcessCoordinationUnitRequest> { + public TypedNodeBase<ProcessNodeImpl>, + public resource_coordinator::mojom::ProcessCoordinationUnit { public: static constexpr NodeTypeEnum Type() { return NodeTypeEnum::kProcess; } explicit ProcessNodeImpl(GraphImpl* graph); ~ProcessNodeImpl() override; + void Bind( + resource_coordinator::mojom::ProcessCoordinationUnitRequest request); + // resource_coordinator::mojom::ProcessCoordinationUnit implementation: void SetExpectedTaskQueueingDuration(base::TimeDelta duration) override; void SetMainThreadTaskLoadIsLow(bool main_thread_task_load_is_low) override; @@ -105,6 +106,8 @@ void LeaveGraph() override; + mojo::Binding<resource_coordinator::mojom::ProcessCoordinationUnit> binding_; + base::TimeDelta cumulative_cpu_usage_; uint64_t private_footprint_kb_ = 0u;
diff --git a/chrome/browser/performance_manager/performance_manager_tab_helper.cc b/chrome/browser/performance_manager/performance_manager_tab_helper.cc index 4e0b16c2..8b40d36 100644 --- a/chrome/browser/performance_manager/performance_manager_tab_helper.cc +++ b/chrome/browser/performance_manager/performance_manager_tab_helper.cc
@@ -110,7 +110,8 @@ render_frame_host->GetDevToolsFrameToken(), base::BindOnce( [](const GURL& url, bool is_current, FrameNodeImpl* frame_node) { - frame_node->set_url(url); + if (!url.is_empty()) + frame_node->OnNavigationCommitted(url, /* same_document */ false); frame_node->SetIsCurrent(is_current); }, render_frame_host->GetLastCommittedURL(), @@ -213,7 +214,8 @@ // Notify the frame of the committed URL. GURL url = navigation_handle->GetURL(); - PostToGraph(FROM_HERE, &FrameNodeImpl::set_url, frame_node, url); + PostToGraph(FROM_HERE, &FrameNodeImpl::OnNavigationCommitted, frame_node, url, + navigation_handle->IsSameDocument()); if (navigation_handle->IsSameDocument() || !navigation_handle->IsInMainFrame()) { @@ -257,7 +259,7 @@ auto it = frames_.find(render_frame_host); DCHECK(it != frames_.end()); - PostToGraph(FROM_HERE, &FrameNodeImpl::AddBinding, it->second.get(), + PostToGraph(FROM_HERE, &FrameNodeImpl::Bind, it->second.get(), resource_coordinator::mojom::DocumentCoordinationUnitRequest( std::move(*interface_pipe))); }
diff --git a/chrome/browser/performance_manager/webui_graph_dump_impl_unittest.cc b/chrome/browser/performance_manager/webui_graph_dump_impl_unittest.cc index 9c9e9138..2e17749 100644 --- a/chrome/browser/performance_manager/webui_graph_dump_impl_unittest.cc +++ b/chrome/browser/performance_manager/webui_graph_dump_impl_unittest.cc
@@ -27,7 +27,7 @@ mock_graph.other_page->OnMainFrameNavigationCommitted(now, 2, kExampleUrl); auto* main_frame = mock_graph.page->GetMainFrameNode(); - main_frame->set_url(kExampleUrl); + main_frame->OnNavigationCommitted(kExampleUrl, /* same_document */ false); WebUIGraphDumpImpl impl(&graph);
diff --git a/chrome/browser/previews/previews_offline_helper.cc b/chrome/browser/previews/previews_offline_helper.cc index 836b5d5..d0b16dd 100644 --- a/chrome/browser/previews/previews_offline_helper.cc +++ b/chrome/browser/previews/previews_offline_helper.cc
@@ -11,6 +11,7 @@ #include "base/bind.h" #include "base/feature_list.h" #include "base/hash/hash.h" +#include "base/metrics/histogram_macros.h" #include "base/optional.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" @@ -28,6 +29,11 @@ // Pref key for the available hashed pages kept in class. const char kHashedAvailablePages[] = "previews.offline_helper.available_pages"; +void RecordShouldAttemptOfflinePreviewResult(bool result) { + UMA_HISTOGRAM_BOOLEAN("Previews.Offline.FalsePositivePrevention.Allowed", + result); +} + std::string HashURL(const GURL& url) { // We are ok with some hash collisions in exchange for non-arbitrary key // lengths (as in using the url.spec()). Therefore, use a hash and return that @@ -163,17 +169,22 @@ std::string hashed_url = HashURL(url); base::Value* value = available_pages_->FindKey(hashed_url); - if (!value) + if (!value) { + RecordShouldAttemptOfflinePreviewResult(false); return false; + } if (!value->is_string()) { NOTREACHED(); + RecordShouldAttemptOfflinePreviewResult(false); return false; } base::Optional<base::Time> time_value = TimeFromDictionaryValue(value->GetString()); - if (!time_value.has_value()) + if (!time_value.has_value()) { + RecordShouldAttemptOfflinePreviewResult(false); return false; + } base::Time expiry = time_value.value() + previews::params::OfflinePreviewFreshnessDuration(); @@ -183,6 +194,7 @@ UpdatePref(); } + RecordShouldAttemptOfflinePreviewResult(!is_expired); return !is_expired; } @@ -206,6 +218,9 @@ AddSingleOfflineItemEntry(available_pages_.get(), page); RemoveStaleOfflinePageEntries(available_pages_.get()); UpdatePref(); + + UMA_HISTOGRAM_COUNTS_100("Previews.Offline.FalsePositivePrevention.PrefSize", + available_pages_->size()); } void PreviewsOfflineHelper::OfflinePageModelLoaded(
diff --git a/chrome/browser/previews/previews_offline_helper_unittest.cc b/chrome/browser/previews/previews_offline_helper_unittest.cc index bcffb95..9ea8654 100644 --- a/chrome/browser/previews/previews_offline_helper_unittest.cc +++ b/chrome/browser/previews/previews_offline_helper_unittest.cc
@@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "base/time/time.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" @@ -177,6 +178,8 @@ for (const TestCase& test_case : kTestCases) { SCOPED_TRACE(test_case.msg); + base::HistogramTester histogram_tester; + base::test::ScopedFeatureList scoped_feature_list; scoped_feature_list.InitWithFeatureState( previews::features::kOfflinePreviewsFalsePositivePrevention, @@ -213,6 +216,23 @@ for (const std::string not_want : test_case.not_want_pages) { EXPECT_FALSE(helper->ShouldAttemptOfflinePreview(GURL(not_want))); } + + histogram_tester.ExpectTotalCount( + "Previews.Offline.FalsePositivePrevention.Allowed", + test_case.enable_feature + ? test_case.not_want_pages.size() + test_case.want_pages.size() + : 0); + + if (test_case.enable_feature && test_case.not_want_pages.size() > 0) { + histogram_tester.ExpectBucketCount( + "Previews.Offline.FalsePositivePrevention.Allowed", false, + test_case.not_want_pages.size()); + } + if (test_case.enable_feature && test_case.want_pages.size() > 0) { + histogram_tester.ExpectBucketCount( + "Previews.Offline.FalsePositivePrevention.Allowed", true, + test_case.want_pages.size()); + } } } @@ -245,6 +265,8 @@ scoped_feature_list.InitAndEnableFeature( previews::features::kOfflinePreviewsFalsePositivePrevention); + base::HistogramTester histogram_tester; + PreviewsOfflineHelper* helper = NewHelper(); base::Time now = base::Time::Now(); base::Time expired = now - @@ -263,4 +285,7 @@ EXPECT_TRUE(helper->ShouldAttemptOfflinePreview(GURL("http://new.com"))); EXPECT_TRUE(helper->ShouldAttemptOfflinePreview(GURL("http://new2.com"))); EXPECT_FALSE(helper->ShouldAttemptOfflinePreview(GURL("http://expired.com"))); + + histogram_tester.ExpectUniqueSample( + "Previews.Offline.FalsePositivePrevention.PrefSize", 2, 1); }
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.cc b/chrome/browser/push_messaging/push_messaging_notification_manager.cc index 9183dc26..3175574 100644 --- a/chrome/browser/push_messaging/push_messaging_notification_manager.cc +++ b/chrome/browser/push_messaging/push_messaging_notification_manager.cc
@@ -101,17 +101,18 @@ Profile* profile) : profile_(profile), budget_database_(profile), weak_factory_(this) {} -PushMessagingNotificationManager::~PushMessagingNotificationManager() {} +PushMessagingNotificationManager::~PushMessagingNotificationManager() = default; void PushMessagingNotificationManager::EnforceUserVisibleOnlyRequirements( const GURL& origin, int64_t service_worker_registration_id, - base::OnceClosure message_handled_closure) { + EnforceRequirementsCallback message_handled_callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); #if defined(OS_CHROMEOS) if (ShouldSkipUserVisibleOnlyRequirements(origin)) { - std::move(message_handled_closure).Run(); + std::move(message_handled_callback) + .Run(/* did_show_generic_notification= */ false); return; } #endif @@ -125,13 +126,13 @@ base::BindOnce( &PushMessagingNotificationManager::DidGetNotificationsFromDatabase, weak_factory_.GetWeakPtr(), origin, service_worker_registration_id, - std::move(message_handled_closure))); + std::move(message_handled_callback))); } void PushMessagingNotificationManager::DidGetNotificationsFromDatabase( const GURL& origin, int64_t service_worker_registration_id, - base::OnceClosure message_handled_closure, + EnforceRequirementsCallback message_handled_callback, bool success, const std::vector<NotificationDatabaseData>& data) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -165,8 +166,9 @@ if (notification_count >= 2) { for (const auto& notification_database_data : data) { if (notification_database_data.notification_data.tag != - kPushMessagingForcedNotificationTag) + kPushMessagingForcedNotificationTag) { continue; + } PlatformNotificationServiceFactory::GetForProfile(profile_) ->ClosePersistentNotification( @@ -183,7 +185,7 @@ base::BindOnce(&PushMessagingNotificationManager::ProcessSilentPush, weak_factory_.GetWeakPtr(), origin, service_worker_registration_id, - std::move(message_handled_closure))); + std::move(message_handled_callback))); return; } @@ -198,7 +200,8 @@ blink::mojom::PushUserVisibleStatus::NOT_REQUIRED_BUT_SHOWN); } - std::move(message_handled_closure).Run(); + std::move(message_handled_callback) + .Run(/* did_show_generic_notification= */ false); } bool PushMessagingNotificationManager::IsTabVisible( @@ -237,7 +240,7 @@ void PushMessagingNotificationManager::ProcessSilentPush( const GURL& origin, int64_t service_worker_registration_id, - base::OnceClosure message_handled_closure, + EnforceRequirementsCallback message_handled_callback, bool silent_push_allowed) { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -245,7 +248,8 @@ if (silent_push_allowed) { RecordUserVisibleStatus( blink::mojom::PushUserVisibleStatus::REQUIRED_BUT_NOT_SHOWN_USED_GRACE); - std::move(message_handled_closure).Run(); + std::move(message_handled_callback) + .Run(/* did_show_generic_notification= */ false); return; } @@ -271,18 +275,19 @@ database_data, base::BindOnce( &PushMessagingNotificationManager::DidWriteNotificationData, - weak_factory_.GetWeakPtr(), std::move(message_handled_closure))); + weak_factory_.GetWeakPtr(), std::move(message_handled_callback))); } void PushMessagingNotificationManager::DidWriteNotificationData( - base::OnceClosure message_handled_closure, + EnforceRequirementsCallback message_handled_callback, bool success, const std::string& notification_id) { DCHECK_CURRENTLY_ON(BrowserThread::UI); if (!success) DLOG(ERROR) << "Writing forced notification to database should not fail"; - std::move(message_handled_closure).Run(); + std::move(message_handled_callback) + .Run(/* did_show_generic_notification= */ true); } #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.h b/chrome/browser/push_messaging/push_messaging_notification_manager.h index fe054ef0..41bd07a8 100644 --- a/chrome/browser/push_messaging/push_messaging_notification_manager.h +++ b/chrome/browser/push_messaging/push_messaging_notification_manager.h
@@ -41,6 +41,9 @@ // https://crbug.com/437277 class PushMessagingNotificationManager { public: + using EnforceRequirementsCallback = + base::OnceCallback<void(bool did_show_generic_notification)>; + explicit PushMessagingNotificationManager(Profile* profile); ~PushMessagingNotificationManager(); @@ -49,7 +52,7 @@ void EnforceUserVisibleOnlyRequirements( const GURL& origin, int64_t service_worker_registration_id, - base::OnceClosure message_handled_closure); + EnforceRequirementsCallback message_handled_callback); private: FRIEND_TEST_ALL_PREFIXES(PushMessagingNotificationManagerTest, IsTabVisible); @@ -62,7 +65,7 @@ void DidGetNotificationsFromDatabase( const GURL& origin, int64_t service_worker_registration_id, - base::OnceClosure message_handled_closure, + EnforceRequirementsCallback message_handled_callback, bool success, const std::vector<content::NotificationDatabaseData>& data); @@ -75,12 +78,13 @@ void ProcessSilentPush(const GURL& origin, int64_t service_worker_registration_id, - base::OnceClosure message_handled_closure, + EnforceRequirementsCallback message_handled_callback, bool silent_push_allowed); - void DidWriteNotificationData(base::OnceClosure message_handled_closure, - bool success, - const std::string& notification_id); + void DidWriteNotificationData( + EnforceRequirementsCallback message_handled_callback, + bool success, + const std::string& notification_id); #if defined(OS_CHROMEOS) bool ShouldSkipUserVisibleOnlyRequirements(const GURL& origin);
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager_unittest.cc b/chrome/browser/push_messaging/push_messaging_notification_manager_unittest.cc index a18ca99c..d6972b0 100644 --- a/chrome/browser/push_messaging/push_messaging_notification_manager_unittest.cc +++ b/chrome/browser/push_messaging/push_messaging_notification_manager_unittest.cc
@@ -76,8 +76,11 @@ bool was_called = false; manager.EnforceUserVisibleOnlyRequirements( app_url.GetOrigin(), 0l, - base::BindRepeating([](bool* was_called) { *was_called = true; }, - &was_called)); + base::BindRepeating( + [](bool* was_called, bool did_show_generic_notification) { + *was_called = true; + }, + &was_called)); EXPECT_TRUE(was_called); } #endif
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc index 8476aa2..1103e3d5 100644 --- a/chrome/browser/push_messaging/push_messaging_service_impl.cc +++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -300,11 +300,12 @@ RecordDeliveryStatus(status); - base::Closure completion_closure = - base::Bind(&PushMessagingServiceImpl::DidHandleMessage, - weak_factory_.GetWeakPtr(), app_id, message_handled_closure); - // The completion_closure should run by default at the end of this function, - // unless it is explicitly passed to another function. + base::RepeatingClosure completion_closure = base::BindRepeating( + &PushMessagingServiceImpl::DidHandleMessage, weak_factory_.GetWeakPtr(), + app_id, message_handled_closure, + false /* did_show_generic_notification */); + // The |completion_closure| should run by default at the end of this function, + // unless it is explicitly passed to another function or disabled. base::ScopedClosureRunner completion_closure_runner(completion_closure); // A reason to automatically unsubscribe. UNKNOWN means do not unsubscribe. @@ -330,7 +331,11 @@ switches::kAllowSilentPush)) { notification_manager_.EnforceUserVisibleOnlyRequirements( requesting_origin, service_worker_registration_id, - completion_closure_runner.Release()); + base::BindOnce(&PushMessagingServiceImpl::DidHandleMessage, + weak_factory_.GetWeakPtr(), app_id, + message_handled_closure)); + // Disable the default completion closure. + completion_closure_runner.ReplaceClosure(base::DoNothing()); } break; case blink::mojom::PushDeliveryStatus::SERVICE_WORKER_ERROR: @@ -367,7 +372,8 @@ void PushMessagingServiceImpl::DidHandleMessage( const std::string& app_id, - const base::Closure& message_handled_closure) { + const base::RepeatingClosure& message_handled_closure, + bool did_show_generic_notification) { auto in_flight_iterator = in_flight_message_deliveries_.find(app_id); DCHECK(in_flight_iterator != in_flight_message_deliveries_.end());
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.h b/chrome/browser/push_messaging/push_messaging_service_impl.h index af7ee439..1d03322 100644 --- a/chrome/browser/push_messaging/push_messaging_service_impl.h +++ b/chrome/browser/push_messaging/push_messaging_service_impl.h
@@ -153,7 +153,8 @@ blink::mojom::PushDeliveryStatus status); void DidHandleMessage(const std::string& app_id, - const base::Closure& completion_closure); + const base::RepeatingClosure& completion_closure, + bool did_show_generic_notification); // Subscribe methods ---------------------------------------------------------
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn index c645a755..8fe598c 100644 --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn
@@ -58,6 +58,9 @@ if (!is_android) { deps += [ "app_management:closure_compile" ] } + if (is_win || is_mac || is_desktop_linux) { + deps += [ "browser_switcher:closure_compile" ] + } } }
diff --git a/chrome/browser/resources/browser_switcher/BUILD.gn b/chrome/browser/resources/browser_switcher/BUILD.gn index d837061..8e1af835 100644 --- a/chrome/browser/resources/browser_switcher/BUILD.gn +++ b/chrome/browser/resources/browser_switcher/BUILD.gn
@@ -7,20 +7,18 @@ js_type_check("closure_compile") { deps = [ ":app", - ":browser_switcher", ":browser_switcher_proxy", + "internals:browser_switcher_internals", ] } js_library("app") { deps = [ "//ui/webui/resources/js:cr", + "//ui/webui/resources/js:i18n_behavior", ] } -js_library("browser_switcher") { -} - js_library("browser_switcher_proxy") { deps = [ "//ui/webui/resources/js:cr",
diff --git a/chrome/browser/resources/browser_switcher/browser_switcher_proxy.js b/chrome/browser/resources/browser_switcher/browser_switcher_proxy.js index 4c38e59..3611939 100644 --- a/chrome/browser/resources/browser_switcher/browser_switcher_proxy.js +++ b/chrome/browser/resources/browser_switcher/browser_switcher_proxy.js
@@ -15,7 +15,7 @@ gotoNewTabPage() {} } - /** @implements {settings.BrowserSwitcherProxy} */ + /** @implements {browser_switcher.BrowserSwitcherProxy} */ class BrowserSwitcherProxyImpl { /** @override */ launchAlternativeBrowserAndCloseTab(url) {
diff --git a/chrome/browser/resources/browser_switcher/internals/BUILD.gn b/chrome/browser/resources/browser_switcher/internals/BUILD.gn new file mode 100644 index 0000000..6d3279dc --- /dev/null +++ b/chrome/browser/resources/browser_switcher/internals/BUILD.gn
@@ -0,0 +1,18 @@ +# Copyright 2019 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. + +import("//third_party/closure_compiler/compile_js.gni") + +js_type_check("closure_compile") { + deps = [ + ":browser_switcher_internals", + ] +} + +js_library("browser_switcher_internals") { + deps = [ + "//ui/webui/resources/js:cr", + "//ui/webui/resources/js:util", + ] +}
diff --git a/chrome/browser/resources/browser_switcher/internals/browser_switcher_internals.html b/chrome/browser/resources/browser_switcher/internals/browser_switcher_internals.html new file mode 100644 index 0000000..6ac61de0 --- /dev/null +++ b/chrome/browser/resources/browser_switcher/internals/browser_switcher_internals.html
@@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Legacy Browser Support Internals</title> + + <script src="chrome://resources/js/promise_resolver.js"></script> + <script src="chrome://resources/js/cr.js"></script> + <script src="chrome://resources/js/util.js"></script> + + <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> + + <style> + table { + border-collapse: collapse; + font-family: monospace; + font-size: 1.25em; + } + + th { + background: black; + color: white; + } + + th, + td { + border: 1px solid black; + padding: 6px 10px; + text-align: center; + } + + .url { + text-align: start; + } + </style> +</head> +<body> + <h1>Legacy Browser Support Internals</h1> + + <!-- TODO(crbug/959379): Hide all this and show a message if + BrowserSwitcherEnabled is false. --> + + <h2>Sitelist</h2> + <table id="sitelist"></table> + + <h2>Greylist</h2> + <table id="greylist"></table> + + <template id="header-row-template"> + <tr> + <th>Rule</th> + <th>Source</th> + <th>Type</th> + <th>Inverted?</th> + </tr> + </template> + + <template id="rule-row-template"> + <tr> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + </template> + + <script src="/internals/browser_switcher_internals.js"></script> +</body> +</html>
diff --git a/chrome/browser/resources/browser_switcher/internals/browser_switcher_internals.js b/chrome/browser/resources/browser_switcher/internals/browser_switcher_internals.js new file mode 100644 index 0000000..7ec8fb5b --- /dev/null +++ b/chrome/browser/resources/browser_switcher/internals/browser_switcher_internals.js
@@ -0,0 +1,83 @@ +// Copyright 2019 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. + +'use strict'; + +/** + * @typedef {{ + * sitelist: Array<string>, + * greylist: Array<string>, + * }} + */ +let RuleSet; + +/** + * @typedef {{ + * gpo: RuleSet, + * ieem: (RuleSet|undefined), + * external: (RuleSet|undefined), + * }} + */ +let RuleSetList; + +/** + * Clears the table, and inserts a header row. + * @param {HTMLTableElement} table + */ +function clearTable(table) { + table.innerHTML = ''; + const headerRow = document.importNode($('header-row-template').content, true); + table.appendChild(headerRow); +} + +/** + * @param {string} rule + * @return {string} String describing the rule type. + */ +function getRuleType(rule) { + if (rule == '*') { + return 'wildcard'; + } + if (rule.includes('/')) { + return 'prefix'; + } + return 'hostname'; +} + +/** + * Creates and returns a <tr> element for the given rule. + * @param {string} rule + * @param {string} rulesetName + * @return {HTMLTableRowElement} + */ +function createRowForRule(rule, rulesetName) { + const row = document.importNode($('rule-row-template').content, true); + const cells = row.querySelectorAll('td'); + cells[0].innerText = rule; + cells[0].className = 'url'; + cells[1].innerText = rulesetName; + cells[2].innerText = getRuleType(rule); + cells[3].innerText = /^!/.test(rule) ? 'yes' : 'no'; + return /** @type {HTMLTableRowElement} */ (row); +} + +/** + * Updates the content of all tables after receiving data from the backend. + * @param {RuleSetList} rulesets + */ +function updateTables(rulesets) { + clearTable(/** @type {HTMLTableElement} */ ($('sitelist'))); + clearTable(/** @type {HTMLTableElement} */ ($('greylist'))); + + for (const [rulesetName, ruleset] of Object.entries(rulesets)) { + for (const [listName, rules] of Object.entries(ruleset)) { + const table = $(listName); + for (const rule of rules) { + table.appendChild(createRowForRule(rule, rulesetName)); + } + } + } +} + +cr.sendWithPromise('getAllRulesets').then(updateTables);
diff --git a/chrome/browser/resources/downloads/manager.js b/chrome/browser/resources/downloads/manager.js index 2bbf5ae..046603a7 100644 --- a/chrome/browser/resources/downloads/manager.js +++ b/chrome/browser/resources/downloads/manager.js
@@ -117,10 +117,6 @@ /** @private */ hasDownloadsChanged_: function() { - if (loadTimeData.getBoolean('allowDeletingHistory')) { - this.$.toolbar.downloadsShowing = this.hasDownloads_; - } - if (this.hasDownloads_) { this.$.downloadsList.fire('iron-resize'); } @@ -156,6 +152,12 @@ /** @private */ itemsChanged_: function() { this.hasDownloads_ = this.items_.length > 0; + this.$.toolbar.hasClearableDownloads = + loadTimeData.getBoolean('allowDeletingHistory') && + this.items_.some( + ({state}) => state != downloads.States.DANGEROUS && + state != downloads.States.IN_PROGRESS && + state != downloads.States.PAUSED); if (this.inSearchMode_) { Polymer.IronA11yAnnouncer.requestAvailability();
diff --git a/chrome/browser/resources/downloads/toolbar.html b/chrome/browser/resources/downloads/toolbar.html index d07eb81..42d38f18 100644 --- a/chrome/browser/resources/downloads/toolbar.html +++ b/chrome/browser/resources/downloads/toolbar.html
@@ -44,12 +44,10 @@ </cr-toolbar> <cr-action-menu id="moreActionsMenu" aria-label="$i18n{actionMenuDescription}"> - <button class="dropdown-item clear-all" - on-click="onClearAllTap_"> + <button class="dropdown-item clear-all" on-click="onClearAllTap_"> $i18n{clearAll} </button> - <button class="dropdown-item" - on-click="onOpenDownloadsFolderTap_"> + <button class="dropdown-item" on-click="onOpenDownloadsFolderTap_"> $i18n{openDownloadsFolder} </button> </cr-action-menu>
diff --git a/chrome/browser/resources/downloads/toolbar.js b/chrome/browser/resources/downloads/toolbar.js index 5ab454a..b096dbb 100644 --- a/chrome/browser/resources/downloads/toolbar.js +++ b/chrome/browser/resources/downloads/toolbar.js
@@ -7,11 +7,10 @@ is: 'downloads-toolbar', properties: { - downloadsShowing: { - reflectToAttribute: true, + hasClearableDownloads: { type: Boolean, value: false, - observer: 'downloadsShowingChanged_', + observer: 'updateClearAll_', }, spinnerActive: { @@ -35,7 +34,7 @@ /** @return {boolean} Whether "Clear all" should be allowed. */ canClearAll: function() { - return this.getSearchText().length == 0 && this.downloadsShowing; + return this.getSearchText().length == 0 && this.hasClearableDownloads; }, /** @return {string} The full text being searched. */ @@ -52,11 +51,6 @@ }, /** @private */ - downloadsShowingChanged_: function() { - this.updateClearAll_(); - }, - - /** @private */ onClearAllTap_: function() { assert(this.canClearAll()); this.mojoHandler_.clearAll();
diff --git a/chrome/browser/resources/local_ntp/custom_backgrounds.css b/chrome/browser/resources/local_ntp/custom_backgrounds.css index b4f3a049..c719258 100644 --- a/chrome/browser/resources/local_ntp/custom_backgrounds.css +++ b/chrome/browser/resources/local_ntp/custom_backgrounds.css
@@ -456,10 +456,6 @@ margin-inline-end: 8px; } -#bg-sel-footer-toggle-text { - padding: 24px 0 0 16px; -} - .bg-sel-tile { background-size: cover; height: 100%; @@ -603,42 +599,6 @@ width: 118px; } -#bg-daily-refresh { - margin: 23px 0 0 16px; -} - -.is-img-sel #bg-daily-refresh { - display: none; -} - -.is-col-sel #bg-daily-refresh { - display: none; -} - -.is-img-sel #bg-sel-refresh-text { - display: none; - margin: 24px 0 0 64px; -} - -.is-col-sel #bg-sel-refresh-text { - display: none; -} - -.plus-icon { - background: url(icons/add.svg); - background-size: 22px 22px; - height: 22px; - left: 67px; - position: absolute; - top: 47px; - width: 22px; -} - -html[dir=rtl] .plus-icon { - left: auto; - right: 67px; -} - #custom-bg-attr { border-radius: 8px; bottom: 16px;
diff --git a/chrome/browser/resources/local_ntp/custom_backgrounds.js b/chrome/browser/resources/local_ntp/custom_backgrounds.js index ec0438ab..256fe84c 100644 --- a/chrome/browser/resources/local_ntp/custom_backgrounds.js +++ b/chrome/browser/resources/local_ntp/custom_backgrounds.js
@@ -72,7 +72,6 @@ ATTR1: 'attr1', ATTR2: 'attr2', ATTRIBUTIONS: 'custom-bg-attr', - BACK: 'bg-sel-back', BACK_CIRCLE: 'bg-sel-back-circle', CANCEL: 'bg-sel-footer-cancel', CUSTOMIZATION_MENU: 'customization-menu', @@ -88,17 +87,11 @@ EDIT_BG_MENU: 'edit-bg-menu', EDIT_BG_TEXT: 'edit-bg-text', MENU_CANCEL: 'menu-cancel', - MSG_BOX: 'message-box', - MSG_BOX_MSG: 'message-box-message', - MSG_BOX_LINK: 'message-box-link', - MSG_BOX_CONTAINER: 'message-box-container', LINK_ICON: 'link-icon', MENU: 'bg-sel-menu', OPTIONS_TITLE: 'edit-bg-title', RESTORE_DEFAULT: 'edit-bg-restore-default', RESTORE_DEFAULT_TEXT: 'edit-bg-restore-default-text', - REFRESH_TEXT: 'bg-sel-refresh-text', - REFRESH_TOGGLE: 'bg-daily-refresh', UPLOAD_IMAGE: 'edit-bg-upload-image', UPLOAD_IMAGE_TEXT: 'edit-bg-upload-image-text', TILES: 'bg-sel-tiles', @@ -119,16 +112,11 @@ COLLECTION_TILE: 'bg-sel-tile', // Preview tile for background customization COLLECTION_TILE_BG: 'bg-sel-tile-bg', COLLECTION_TITLE: 'bg-sel-tile-title', // Title of a background image - DONE_AVAILABLE: 'done-available', // Extended and elevated style for entry point. ENTRY_POINT_ENHANCED: 'ep-enhanced', - FLOAT_UP: 'float-up', - HAS_LINK: 'has-link', - HIDE_MSG_BOX: 'message-box-hide', IMAGE_DIALOG: 'is-img-sel', OPTION: 'bg-option', OPTION_DISABLED: 'bg-option-disabled', // The menu option is disabled. - PLUS_ICON: 'plus-icon', MOUSE_NAV: 'using-mouse-nav', SELECTED_BORDER: 'selected-border', SELECTED_CHECK: 'selected-check', @@ -603,7 +591,6 @@ $(customBackgrounds.IDS.DONE).tabIndex = 0; // Turn toggle off when an image is selected. - $(customBackgrounds.IDS.REFRESH_TOGGLE).children[0].checked = false; $(customBackgrounds.IDS.DONE).disabled = false; ntpApiHandle.logEvent(BACKGROUND_CUSTOMIZATION_LOG_TYPE .NTP_CUSTOMIZE_CHROME_BACKGROUND_SELECT_IMAGE); @@ -955,8 +942,6 @@ configData.translatedStrings.uploadImage; $(customBackgrounds.IDS.RESTORE_DEFAULT_TEXT).textContent = configData.translatedStrings.restoreDefaultBackground; - $(customBackgrounds.IDS.REFRESH_TEXT).textContent = - configData.translatedStrings.dailyRefresh; $(customBackgrounds.IDS.DONE).textContent = configData.translatedStrings.selectionDone; $(customBackgrounds.IDS.CANCEL).textContent = @@ -1178,15 +1163,6 @@ } }; - // Interactions with the "Daily refresh" toggle. - $(customBackgrounds.IDS.REFRESH_TOGGLE).onclick = function(event) { - if (customBackgrounds.selectedTile) { - customBackgrounds.removeSelectedState(customBackgrounds.selectedTile); - customBackgrounds.selectedTile = null; - } - $(customBackgrounds.IDS.DONE).disabled = false; - }; - // On any arrow key event in the tiles area, focus the first tile. $(customBackgrounds.IDS.TILES).onkeydown = function(event) { if (event.keyCode === customBackgrounds.KEYCODES.LEFT ||
diff --git a/chrome/browser/resources/local_ntp/local_ntp.html b/chrome/browser/resources/local_ntp/local_ntp.html index ec3fa92..9615ac8d 100644 --- a/chrome/browser/resources/local_ntp/local_ntp.html +++ b/chrome/browser/resources/local_ntp/local_ntp.html
@@ -162,11 +162,6 @@ </div> <div id="bg-sel-tiles" tabindex="0"></div> <div id="bg-sel-footer"> - <label id="bg-daily-refresh" class="switch"> - <input type="checkbox"> - <span class="toggle"></span> - </label> - <div id="bg-sel-refresh-text"></div> <button id="bg-sel-footer-cancel" class="bg-sel-footer-button paper secondary ripple" tabindex="0"></button> <button id="bg-sel-footer-done" class="bg-sel-footer-button paper primary ripple"
diff --git a/chrome/browser/resources/settings/appearance_page/appearance_page.js b/chrome/browser/resources/settings/appearance_page/appearance_page.js index 3c0647d..9fa3b60a 100644 --- a/chrome/browser/resources/settings/appearance_page/appearance_page.js +++ b/chrome/browser/resources/settings/appearance_page/appearance_page.js
@@ -12,6 +12,11 @@ */ const SIZE_DIFFERENCE_FIXED_STANDARD = 3; +/** + * ID for autogenerated themes. Should match + * |ThemeService::kAutogeneratedThemeID|. + */ +const AUTOGENERATED_THEME_ID = 'autogenerated_theme_id'; /** * 'settings-appearance-page' is the settings page containing appearance @@ -280,7 +285,7 @@ return; } - if (themeId.length > 0) { + if (themeId.length > 0 && themeId != AUTOGENERATED_THEME_ID) { assert(!useSystemTheme); this.browserProxy_.getThemeInfo(themeId).then(info => { @@ -291,6 +296,13 @@ return; } + this.themeUrl_ = ''; + + if (themeId == AUTOGENERATED_THEME_ID) { + this.themeSublabel_ = this.i18n('chromeColors'); + return; + } + let i18nId; // <if expr="is_linux and not chromeos"> i18nId = useSystemTheme ? 'systemTheme' : 'classicTheme'; @@ -299,7 +311,6 @@ i18nId = 'chooseFromWebStore'; // </if> this.themeSublabel_ = this.i18n(i18nId); - this.themeUrl_ = ''; }, /** @private */
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html index c9e4d46..22fc385 100644 --- a/chrome/browser/resources/settings/basic_page/basic_page.html +++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -325,7 +325,9 @@ restamp> <settings-section page-title="$i18n{resetPageTitle}" section="reset"> - <settings-reset-page prefs="{{prefs}}"></settings-reset-page> + <settings-reset-page prefs="{{prefs}}" + page-visibility="[[pageVisibility.reset]]"> + </settings-reset-page> </settings-section> </template> </div>
diff --git a/chrome/browser/resources/settings/chromeos/BUILD.gn b/chrome/browser/resources/settings/chromeos/BUILD.gn index 2a1b1036..5dbff8e1 100644 --- a/chrome/browser/resources/settings/chromeos/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/BUILD.gn
@@ -64,6 +64,7 @@ deps = [ "os_people_page:closure_compile", "os_privacy_page:closure_compile", + "os_reset_page:closure_compile", "os_settings_main:closure_compile", "os_settings_menu:closure_compile", "os_settings_page:closure_compile",
diff --git a/chrome/browser/resources/settings/chromeos/lazy_load.html b/chrome/browser/resources/settings/chromeos/lazy_load.html index 278048b7..8309a33 100644 --- a/chrome/browser/resources/settings/chromeos/lazy_load.html +++ b/chrome/browser/resources/settings/chromeos/lazy_load.html
@@ -6,7 +6,7 @@ <link rel="import" href="../downloads_page/downloads_page.html"> <link rel="import" href="../languages_page/languages_page.html"> <link rel="import" href="../printing_page/printing_page.html"> - <link rel="import" href="../reset_page/reset_page.html"> + <link rel="import" href="os_reset_page/os_reset_page.html"> <link rel="import" href="os_privacy_page/os_privacy_page.html"> </body> </html>
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_reset_page/BUILD.gn new file mode 100644 index 0000000..85fc4d8 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/BUILD.gn
@@ -0,0 +1,36 @@ +# Copyright 2018 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. + +import("//third_party/closure_compiler/compile_js.gni") + +js_type_check("closure_compile") { + deps = [ + ":os_powerwash_dialog", + ":os_reset_page", + ":reset_os_proxy", + ] +} + +js_library("os_powerwash_dialog") { + deps = [ + ":reset_os_proxy", + "../..:lifetime_browser_proxy", + ] +} + +js_library("os_reset_page") { + deps = [ + "../..:page_visibility", + "//ui/webui/resources/js:assert", + "//ui/webui/resources/js:cr", + "//ui/webui/resources/js/cr/ui:focus_without_ink", + ] +} + +js_library("reset_os_proxy") { + deps = [ + "//ui/webui/resources/js:cr", + ] + externs_list = [ "$externs_path/chrome_send.js" ] +}
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.html b/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.html new file mode 100644 index 0000000..4fd8ff17 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.html
@@ -0,0 +1,33 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + +<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html"> +<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html"> +<link rel="import" href="reset_os_proxy.html"> +<link rel="import" href="../../lifetime_browser_proxy.html"> +<link rel="import" href="../../settings_shared_css.html"> + +<dom-module id="os-settings-powerwash-dialog"> + <template> + <style include="settings-shared"> + </style> + <cr-dialog id="dialog" close-text="$i18n{close}" + ignore-enter-key> + <div slot="title">$i18n{powerwashDialogTitle}</div> + <div slot="body"> + <span> + $i18n{powerwashDialogExplanation} + <a href="$i18nRaw{powerwashLearnMoreUrl}" target="_blank"> + $i18n{learnMore} + </a> + </span> + </div> + <div slot="button-container"> + <paper-button class="cancel-button" on-click="onCancelTap_" + id="cancel">$i18n{cancel}</paper-button> + <paper-button class="action-button" id="powerwash" + on-click="onRestartTap_">$i18n{powerwashDialogButton}</paper-button> + </div> + </cr-dialog> + </template> + <script src="os_powerwash_dialog.js"></script> +</dom-module>
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.js b/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.js new file mode 100644 index 0000000..809b25e --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/os_powerwash_dialog.js
@@ -0,0 +1,37 @@ +// Copyright 2019 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. + +/** + * @fileoverview + * 'os-settings-powerwash-dialog' is a dialog shown to request confirmation + * from the user for a device reset (aka powerwash). + */ +Polymer({ + is: 'os-settings-powerwash-dialog', + + properties: { + /** @public */ + requestTpmFirmwareUpdate: { + type: Boolean, + value: false, + } + }, + + /** @override */ + attached: function() { + settings.ResetOsProxyImpl.getInstance().onPowerwashDialogShow(); + this.$.dialog.showModal(); + }, + + /** @private */ + onCancelTap_: function() { + this.$.dialog.close(); + }, + + /** @private */ + onRestartTap_: function() { + settings.LifetimeBrowserProxyImpl.getInstance().factoryReset( + this.requestTpmFirmwareUpdate); + }, +});
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.html b/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.html new file mode 100644 index 0000000..79d46be --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.html
@@ -0,0 +1,20 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + +<link rel="import" href="chrome://resources/html/assert.html"> +<link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html"> +<link rel="import" href="os_powerwash_dialog.html"> +<link rel="import" href="../../i18n_setup.html"> + +<dom-module id="os-settings-reset-page"> + <template> + <cr-link-row class="hr" id="powerwash" + label="$i18n{powerwashTitle}" on-click="onShowPowerwashDialog_" + sub-label="$i18n{powerwashDescription}"></cr-link-row> + <template is="dom-if" if="[[showPowerwashDialog_]]" restamp> + <settings-powerwash-dialog on-close="onPowerwashDialogClose_"> + </settings-powerwash-dialog> + </template> + </template> + <script src="os_reset_page.js"></script> +</dom-module>
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.js b/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.js new file mode 100644 index 0000000..12a8142 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/os_reset_page.js
@@ -0,0 +1,34 @@ +// Copyright 2019 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. + +/** + * @fileoverview + * 'os-settings-reset-page' is the OS settings page containing reset + * settings. + */ +Polymer({ + is: 'os-settings-reset-page', + + + properties: { + /** @private */ + showPowerwashDialog_: Boolean, + }, + + /** @private */ + /** + * @param {!Event} e + * @private + */ + onShowPowerwashDialog_: function(e) { + e.preventDefault(); + this.showPowerwashDialog_ = true; + }, + + /** @private */ + onPowerwashDialogClose_: function() { + this.showPowerwashDialog_ = false; + cr.ui.focusWithoutInk(assert(this.$.powerwash)); + }, +});
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/reset_os_proxy.html b/chrome/browser/resources/settings/chromeos/os_reset_page/reset_os_proxy.html new file mode 100644 index 0000000..77b9e53 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/reset_os_proxy.html
@@ -0,0 +1,2 @@ +<link rel="import" href="chrome://resources/html/cr.html"> +<script src="reset_os_proxy.js"></script>
diff --git a/chrome/browser/resources/settings/chromeos/os_reset_page/reset_os_proxy.js b/chrome/browser/resources/settings/chromeos/os_reset_page/reset_os_proxy.js new file mode 100644 index 0000000..83929c9 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/os_reset_page/reset_os_proxy.js
@@ -0,0 +1,40 @@ +// Copyright 2019 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. + +cr.define('settings', function() { + /** @interface */ + class ResetOsProxy { + /** + * A method to be called when the reset powerwash dialog is shown. + */ + onPowerwashDialogShow() {} + + /** + * Initiates a factory reset and restarts ChromeOS. + */ + requestFactoryResetRestart() {} + } + + /** + * @implements {settings.ResetOsProxy} + */ + class ResetOsProxyImpl { + /** @override */ + onPowerwashDialogShow() { + chrome.send('onPowerwashDialogShow'); + } + + /** @override */ + requestFactoryResetRestart() { + chrome.send('requestFactoryResetRestart'); + } + } + + cr.addSingletonGetter(ResetOsProxyImpl); + + return { + ResetOsProxy: ResetOsProxy, + ResetOsProxyImpl: ResetOsProxyImpl, + }; +});
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html index 099dd4ac..6824edc 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html +++ b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.html
@@ -83,10 +83,6 @@ <template is="dom-if" if="[[showBasicPage_( currentRoute_, inSearchMode, hasExpandedSection_)]]"> <div id="basicPage"> - <template is="dom-if" if="[[showResetProfileBanner_]]" restamp> - <settings-reset-profile-banner on-close="onResetProfileBannerClosed_"> - </settings-reset-profile-banner> - </template> <div id="secondaryUserBanner" hidden="[[!showSecondaryUserBanner_]]"> <div id="secondaryUserIcon"></div> <div class="flex">$i18n{secondaryUserBannerText}</div> @@ -267,7 +263,7 @@ restamp> <settings-section page-title="$i18n{resetPageTitle}" section="reset"> - <settings-reset-page prefs="{{prefs}}"></settings-reset-page> + <os-settings-reset-page></os-settings-reset-page> </settings-section> </template> </div>
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.js b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.js index 024e64d..f6591654 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.js +++ b/chrome/browser/resources/settings/chromeos/os_settings_page/os_settings_page.js
@@ -67,18 +67,6 @@ }, /** - * True if the basic page should currently display the reset profile banner. - * @private {boolean} - */ - showResetProfileBanner_: { - type: Boolean, - value: function() { - return loadTimeData.getBoolean('showResetProfileBanner'); - }, - }, - - // <if expr="chromeos"> - /** * Whether the user is a secondary user. Computed so that it is calculated * correctly after loadTimeData is available. * @private @@ -87,7 +75,6 @@ type: Boolean, computed: 'computeShowSecondaryUserBanner_(hasExpandedSection_)', }, - // </if> /** @private {!settings.Route|undefined} */ currentRoute_: Object, @@ -207,7 +194,6 @@ }); }, - // <if expr="chromeos"> /** * @return {boolean} * @private @@ -216,12 +202,6 @@ return !this.hasExpandedSection_ && loadTimeData.getBoolean('isSecondaryUser'); }, - // </if> - - /** @private */ - onResetProfileBannerClosed_: function() { - this.showResetProfileBanner_ = false; - }, /** * @param {!AndroidAppsInfo} info
diff --git a/chrome/browser/resources/settings/languages_page/languages_page.js b/chrome/browser/resources/settings/languages_page/languages_page.js index 6cc513fe..649d7ae 100644 --- a/chrome/browser/resources/settings/languages_page/languages_page.js +++ b/chrome/browser/resources/settings/languages_page/languages_page.js
@@ -60,6 +60,9 @@ return []; }, }, + + /** @private {string|undefined} */ + languageSyncedWithBrowserEnableSpellchecking_: String, // </if> /** @@ -552,15 +555,40 @@ `spellCheckLanguages_.${i}.downloadDictionaryFailureCount`); } - this.hideSpellCheckLanguages_ = this.spellCheckLanguages_.length === 1 && - !!this.spellCheckLanguages_[0].spellCheckEnabled && - !!this.getPref('browser.enable_spellchecking').value; - if (this.spellCheckLanguages_.length === 0) { // If there are no supported spell check languages, automatically turn // off spell check to indicate no spell check will happen. this.setPrefValue('browser.enable_spellchecking', false); } + + if (this.spellCheckLanguages_.length === 1) { + const singleLanguage = this.spellCheckLanguages_[0]; + + // Hide list of spell check languages if there is only 1 language + // and we don't need to display any errors for that language + this.hideSpellCheckLanguages_ = !singleLanguage.isManaged && + singleLanguage.downloadDictionaryFailureCount === 0; + + // Turn off spell check if spell check for the 1 remaining language is off + if (!singleLanguage.spellCheckEnabled) { + this.setPrefValue('browser.enable_spellchecking', false); + this.languageSyncedWithBrowserEnableSpellchecking_ = + singleLanguage.language.code; + } + + // Undo the sync if spell check appeared as turned off for the language + // because a download was still in progress. This only occurs when + // Settings is loaded for the very first time and dictionaries have not + // been downloaded yet. + if (this.languageSyncedWithBrowserEnableSpellchecking_ === + singleLanguage.language.code && + singleLanguage.spellCheckEnabled) { + this.setPrefValue('browser.enable_spellchecking', true); + } + } else { + this.hideSpellCheckLanguages_ = false; + this.languageSyncedWithBrowserEnableSpellchecking_ = undefined; + } }, /** @private */ @@ -569,6 +597,16 @@ return; } + // If there is only 1 language, we hide the list of languages so users + // are unable to toggle on/off spell check specifically for the 1 language. + // Therefore, we need to treat the toggle for `browser.enable_spellchecking` + // as the toggle for the 1 language as well. + if (this.spellCheckLanguages_.length === 1) { + this.languageHelper.toggleSpellCheck( + this.spellCheckLanguages_[0].language.code, + !!this.getPref('browser.enable_spellchecking').value); + } + // <if expr="_google_chrome"> // When spell check is disabled, automatically disable using the spelling // service. This resets the spell check option to 'Use basic spell check'
diff --git a/chrome/browser/resources/settings/os_settings_resources.grd b/chrome/browser/resources/settings/os_settings_resources.grd index 25d5096..11f31e9 100644 --- a/chrome/browser/resources/settings/os_settings_resources.grd +++ b/chrome/browser/resources/settings/os_settings_resources.grd
@@ -464,37 +464,23 @@ type="chrome_html" preprocess="true" /> <structure name="IDR_OS_SETTINGS_POWERWASH_DIALOG_HTML" - file="reset_page/powerwash_dialog.html" + file="chromeos/os_reset_page/os_powerwash_dialog.html" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_POWERWASH_DIALOG_JS" - file="reset_page/powerwash_dialog.js" + file="chromeos/os_reset_page/os_powerwash_dialog.js" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_RESET_PAGE_HTML" - file="reset_page/reset_page.html" + file="chromeos/os_reset_page/os_reset_page.html" type="chrome_html" preprocess="true" /> <structure name="IDR_OS_SETTINGS_RESET_PAGE_JS" - file="reset_page/reset_page.js" - preprocess="true" + file="chromeos/os_reset_page/os_reset_page.js" type="chrome_html" /> - <structure name="IDR_OS_SETTINGS_RESET_PROFILE_DIALOG_HTML" - file="reset_page/reset_profile_dialog.html" + <structure name="IDR_OS_SETTINGS_RESET_OS_PROXY_JS" + file="chromeos/os_reset_page/reset_os_proxy.js" type="chrome_html" /> - <structure name="IDR_OS_SETTINGS_RESET_PROFILE_DIALOG_JS" - file="reset_page/reset_profile_dialog.js" - type="chrome_html" /> - <structure name="IDR_OS_SETTINGS_RESET_PROFILE_BANNER_HTML" - file="reset_page/reset_profile_banner.html" - type="chrome_html" /> - <structure name="IDR_OS_SETTINGS_RESET_PROFILE_BANNER_JS" - file="reset_page/reset_profile_banner.js" - type="chrome_html"/> - <structure name="IDR_OS_SETTINGS_RESET_BROWSER_PROXY_JS" - file="reset_page/reset_browser_proxy.js" - preprocess="true" - type="chrome_html" /> - <structure name="IDR_OS_SETTINGS_RESET_BROWSER_PROXY_HTML" - file="reset_page/reset_browser_proxy.html" + <structure name="IDR_OS_SETTINGS_RESET_OS_PROXY_HTML" + file="chromeos/os_reset_page/reset_os_proxy.html" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_LANGUAGES_HTML" file="languages_page/languages.html"
diff --git a/chrome/browser/resources/settings/page_visibility.js b/chrome/browser/resources/settings/page_visibility.js index 823fb641..ab17349 100644 --- a/chrome/browser/resources/settings/page_visibility.js +++ b/chrome/browser/resources/settings/page_visibility.js
@@ -21,7 +21,7 @@ * onStartup: (boolean|undefined), * people: (boolean|undefined|PeoplePageVisibility), * privacy: (boolean|undefined|PrivacyPageVisibility), - * reset:(boolean|undefined), + * reset:(boolean|undefined|ResetPageVisibility), * }} */ let PageVisibility; @@ -63,6 +63,13 @@ */ let PrivacyPageVisibility; +/** + * @typedef {{ + * powerwash: boolean, + * }} + */ +let ResetPageVisibility; + cr.define('settings', function() { /** * Dictionary defining page visibility. @@ -95,7 +102,9 @@ autofill: false, people: false, onStartup: false, - reset: false, + reset: { + powerwash: false, + }, appearance: { setWallpaper: false, setTheme: false, @@ -133,7 +142,9 @@ manageUsers: showOSSettings, }, onStartup: true, - reset: true, + reset: { + powerwash: showOSSettings, + }, appearance: { setWallpaper: showOSSettings, setTheme: true,
diff --git a/chrome/browser/resources/settings/reset_page/BUILD.gn b/chrome/browser/resources/settings/reset_page/BUILD.gn index 53cc82a..e8ce13f 100644 --- a/chrome/browser/resources/settings/reset_page/BUILD.gn +++ b/chrome/browser/resources/settings/reset_page/BUILD.gn
@@ -23,6 +23,7 @@ js_library("reset_page") { deps = [ ":reset_profile_dialog", + "..:page_visibility", "..:route", "//ui/webui/resources/cr_elements/cr_lazy_render:cr_lazy_render", "//ui/webui/resources/js:assert",
diff --git a/chrome/browser/resources/settings/reset_page/reset_page.js b/chrome/browser/resources/settings/reset_page/reset_page.js index 22cf6ae..2d1606c 100644 --- a/chrome/browser/resources/settings/reset_page/reset_page.js +++ b/chrome/browser/resources/settings/reset_page/reset_page.js
@@ -25,15 +25,20 @@ prefs: Object, // <if expr="chromeos"> - /** @private */ - showPowerwashDialog_: Boolean, - // </if> + /** + * Dictionary defining page visibility. + * @type {!ResetPageVisibility} + */ + pageVisibility: Object, /** @private */ - allowPowerwash_: { - type: Boolean, - value: cr.isChromeOS ? loadTimeData.getBoolean('allowPowerwash') : false - }, + showPowerwashDialog_: Boolean, + + /** @private */ + allowPowerwash_: + {type: Boolean, value: loadTimeData.getBoolean('allowPowerwash')}, + // </if> + // <if expr="_google_chrome and is_win"> /** @private */ @@ -46,6 +51,15 @@ // </if> }, + // <if expr="chromeos"> + /** @override */ + ready: function() { + // TODO(hsuregan): Remove when OS settings migration is complete. + this.allowPowerwash_ = + this.allowPowerwash_ && this.pageVisibility.powerwash; + }, + // </if> + /** * settings.RouteObserverBehavior * @param {!settings.Route} route
diff --git a/chrome/browser/resources/welcome/onboarding_welcome/onboarding_welcome_resources.grd b/chrome/browser/resources/welcome/onboarding_welcome/onboarding_welcome_resources.grd index 0eca6cf..bfe9cd0 100644 --- a/chrome/browser/resources/welcome/onboarding_welcome/onboarding_welcome_resources.grd +++ b/chrome/browser/resources/welcome/onboarding_welcome/onboarding_welcome_resources.grd
@@ -6,9 +6,9 @@ <emit emit_type='prepend'></emit> </output> <output filename="grit/onboarding_welcome_resources_map.cc" - type="gzipped_resource_file_map_source" /> + type="resource_file_map_source" /> <output filename="grit/onboarding_welcome_resources_map.h" - type="gzipped_resource_map_header" /> + type="resource_map_header" /> <output filename="onboarding_welcome_resources.pak" type="data_package" /> </outputs>
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.cc b/chrome/browser/safe_browsing/chrome_password_protection_service.cc index 10c33b6..b00c0b02 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service.cc +++ b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
@@ -1240,15 +1240,26 @@ void ChromePasswordProtectionService::MaybeReportPasswordReuseDetected( content::WebContents* web_contents, + const std::string& username, ReusedPasswordType reused_password_type, bool is_phishing_url) { + // When a PasswordFieldFocus event is sent, a PasswordProtectionRequest is + // sent which means the password reuse type is unknown. We do not want to + // report these events as PasswordReuse events. Also do not send reports for + // Gmail accounts. bool can_log_password_reuse_event = (reused_password_type == PasswordReuseEvent::ENTERPRISE_PASSWORD || - GetSyncAccountType() == PasswordReuseEvent::GSUITE); + GetSyncAccountType() == PasswordReuseEvent::GSUITE) && + (reused_password_type != + PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN); if (!IsIncognito() && can_log_password_reuse_event) { + // User name should only be empty when MaybeStartPasswordFieldOnFocusRequest + // is called. + std::string username_or_email = + username.empty() ? GetAccountInfo().email : username; extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile(profile_) ->OnPolicySpecifiedPasswordReuseDetected( - web_contents->GetLastCommittedURL(), GetAccountInfo().email, + web_contents->GetLastCommittedURL(), username_or_email, is_phishing_url); } }
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.h b/chrome/browser/safe_browsing/chrome_password_protection_service.h index e0632a3e..6a546d8d 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service.h +++ b/chrome/browser/safe_browsing/chrome_password_protection_service.h
@@ -176,7 +176,10 @@ // If the browser is not incognito and the user is reusing their enterprise // password or is a GSuite user, triggers // safeBrowsingPrivate.OnPolicySpecifiedPasswordReuseDetected. + // |username| can be an email address or a username for a non-GAIA or + // saved-password reuse. No validation has been done on it. void MaybeReportPasswordReuseDetected(content::WebContents* web_contents, + const std::string& username, ReusedPasswordType reused_password_type, bool is_phishing_url) override;
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc b/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc index 2e88050..bfc4178 100644 --- a/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc +++ b/chrome/browser/safe_browsing/chrome_password_protection_service_unittest.cc
@@ -69,6 +69,7 @@ const char kTestEmail[] = "foo@example.com"; const char kTestGmail[] = "foo@gmail.com"; const char kRedirectURL[] = "http://redirect.com"; +const char kUserName[] = "username"; BrowserContextKeyedServiceFactory::TestingFactory GetFakeUserEventServiceFactory() { @@ -211,7 +212,7 @@ PasswordReuseEvent::ReusedPasswordType reused_password_type) { if (trigger_type == LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE) { request_ = new PasswordProtectionRequest( - web_contents(), GURL(kPhishingURL), GURL(), GURL(), + web_contents(), GURL(kPhishingURL), GURL(), GURL(), kUserName, PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, std::vector<std::string>({"somedomain.com"}), trigger_type, true, service_.get(), 0); @@ -219,7 +220,7 @@ ASSERT_EQ(LoginReputationClientRequest::PASSWORD_REUSE_EVENT, trigger_type); request_ = new PasswordProtectionRequest( - web_contents(), GURL(kPhishingURL), GURL(), GURL(), + web_contents(), GURL(kPhishingURL), GURL(), GURL(), kUserName, reused_password_type, std::vector<std::string>(), trigger_type, true, service_.get(), 0); } @@ -235,7 +236,8 @@ std::unique_ptr<LoginReputationClientResponse> verdict = std::make_unique<LoginReputationClientResponse>(); verdict->set_verdict_type(verdict_type); - service_->RequestFinished(request_.get(), false, std::move(verdict)); + service_->RequestFinished(request_.get(), RequestOutcome::SUCCEEDED, + std::move(verdict)); } CoreAccountInfo SetPrimaryAccount(const std::string& email) { @@ -1004,7 +1006,7 @@ NavigateAndCommit(GURL(kPasswordReuseURL)); service_->MaybeReportPasswordReuseDetected( - web_contents(), PasswordReuseEvent::ENTERPRISE_PASSWORD, + web_contents(), kUserName, PasswordReuseEvent::ENTERPRISE_PASSWORD, /*is_phishing_url =*/true); base::RunLoop().RunUntilIdle(); @@ -1012,23 +1014,32 @@ OnPolicySpecifiedPasswordReuseDetected::kEventName)); auto captured_args = event_observer.PassEventArgs().GetList()[0].Clone(); EXPECT_EQ(kPasswordReuseURL, captured_args.FindKey("url")->GetString()); - EXPECT_EQ("foo@example.com", captured_args.FindKey("userName")->GetString()); + EXPECT_EQ(kUserName, captured_args.FindKey("userName")->GetString()); EXPECT_TRUE(captured_args.FindKey("isPhishingUrl")->GetBool()); // If the reused password is not Enterprise password but the account is // GSuite, event should be sent. service_->MaybeReportPasswordReuseDetected( - web_contents(), PasswordReuseEvent::OTHER_GAIA_PASSWORD, + web_contents(), kUserName, PasswordReuseEvent::OTHER_GAIA_PASSWORD, /*is_phishing_url =*/true); base::RunLoop().RunUntilIdle(); ASSERT_EQ(2, test_event_router_->GetEventCount( OnPolicySpecifiedPasswordReuseDetected::kEventName)); + // If no password is used , no event should be sent. + service_->MaybeReportPasswordReuseDetected( + web_contents(), kUserName, + PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, + /*is_phishing_url =*/true); + base::RunLoop().RunUntilIdle(); + EXPECT_EQ(2, test_event_router_->GetEventCount( + OnPolicySpecifiedPasswordReuseDetected::kEventName)); + // If user is in incognito mode, no event should be sent. service_->ConfigService(true /*incognito*/, false /*SBER*/); service_->MaybeReportPasswordReuseDetected( - web_contents(), PasswordReuseEvent::ENTERPRISE_PASSWORD, + web_contents(), kUserName, PasswordReuseEvent::ENTERPRISE_PASSWORD, /*is_phishing_url =*/true); base::RunLoop().RunUntilIdle(); EXPECT_EQ(2, test_event_router_->GetEventCount( @@ -1048,7 +1059,7 @@ NavigateAndCommit(GURL(kPasswordReuseURL)); service_->MaybeReportPasswordReuseDetected( - web_contents(), PasswordReuseEvent::ENTERPRISE_PASSWORD, + web_contents(), kUserName, PasswordReuseEvent::ENTERPRISE_PASSWORD, /*is_phishing_url =*/true); base::RunLoop().RunUntilIdle(); EXPECT_EQ(1, test_event_router_->GetEventCount( @@ -1057,7 +1068,16 @@ // If user is a Gmail user and not an enterprise password is used , no event // should be sent. service_->MaybeReportPasswordReuseDetected( - web_contents(), PasswordReuseEvent::OTHER_GAIA_PASSWORD, + web_contents(), kUserName, PasswordReuseEvent::OTHER_GAIA_PASSWORD, + /*is_phishing_url =*/true); + base::RunLoop().RunUntilIdle(); + EXPECT_EQ(1, test_event_router_->GetEventCount( + OnPolicySpecifiedPasswordReuseDetected::kEventName)); + + // If user is a Gmail user and no password is used , no event should be sent. + service_->MaybeReportPasswordReuseDetected( + web_contents(), kUserName, + PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, /*is_phishing_url =*/true); base::RunLoop().RunUntilIdle(); EXPECT_EQ(1, test_event_router_->GetEventCount(
diff --git a/chrome/browser/signin/chrome_signin_helper.cc b/chrome/browser/signin/chrome_signin_helper.cc index 8d0f849..51649b88 100644 --- a/chrome/browser/signin/chrome_signin_helper.cc +++ b/chrome/browser/signin/chrome_signin_helper.cc
@@ -216,8 +216,8 @@ if (!chrome::FindBrowserWithWebContents(web_contents)) return; - chrome::SettingsWindowManager::GetInstance()->ShowChromePageForProfile( - profile, GURL("chrome://settings/accountManager")); + chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( + profile, chrome::kAccountManagerSubPage); return; }
diff --git a/chrome/browser/signin/signin_error_notifier_ash.cc b/chrome/browser/signin/signin_error_notifier_ash.cc index 15fe137a..5cf827d 100644 --- a/chrome/browser/signin/signin_error_notifier_ash.cc +++ b/chrome/browser/signin/signin_error_notifier_ash.cc
@@ -194,8 +194,9 @@ // times already). Take users to Account Manager UI directly. // Note: If the welcome dialog was shown, we don't need to do anything. // Closing that dialog takes users to Account Manager UI. - chrome::SettingsWindowManager::GetInstance()->ShowChromePageForProfile( - profile_, GURL("chrome://settings/accountManager")); + + chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( + profile_, chrome::kAccountManagerSubPage); } }
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc index 822baaf3..ce35848c 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
@@ -40,7 +40,6 @@ #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_test_util.h" #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h" #include "chrome/browser/ui/ash/launcher/launcher_context_menu.h" -#include "chrome/browser/ui/ash/session_controller_client_impl.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_dialogs.h" @@ -187,9 +186,6 @@ ~LauncherPlatformAppBrowserTest() override {} void SetUpOnMainThread() override { - // Ensure ash starts the session and creates the shelf and controller. - SessionControllerClientImpl::FlushForTesting(); - controller_ = ChromeLauncherController::instance(); ASSERT_TRUE(controller_); extensions::PlatformAppBrowserTest::SetUpOnMainThread(); @@ -237,9 +233,6 @@ ash::ShelfModel* shelf_model() { return controller_->shelf_model(); } void SetUpOnMainThread() override { - // Ensure ash starts the session and creates the shelf and controller. - SessionControllerClientImpl::FlushForTesting(); - controller_ = ChromeLauncherController::instance(); ASSERT_TRUE(controller_); extensions::ExtensionBrowserTest::SetUpOnMainThread();
diff --git a/chrome/browser/ui/ash/session_controller_client_impl.cc b/chrome/browser/ui/ash/session_controller_client_impl.cc index 36516efb2..df53ce8 100644 --- a/chrome/browser/ui/ash/session_controller_client_impl.cc +++ b/chrome/browser/ui/ash/session_controller_client_impl.cc
@@ -217,9 +217,9 @@ } void SessionControllerClientImpl::Init() { - ash::SessionController::Get()->SetClient(this); + session_controller_ = ash::SessionController::Get(); + session_controller_->SetClient(this); - ConnectToSessionController(); SendSessionInfoIfChanged(); SendSessionLengthLimit(); // User sessions and their order will be sent via UserSessionStateObserver @@ -465,11 +465,6 @@ DoSwitchActiveUser(account_id); } -// static -void SessionControllerClientImpl::FlushForTesting() { - g_session_controller_client_instance->session_controller_.FlushForTesting(); -} - void SessionControllerClientImpl::OnSessionStateChanged() { // Sent the primary user metadata and user session order that are deferred // from ActiveUserChanged before update session state. @@ -572,12 +567,6 @@ SendUserSession(*user); } -void SessionControllerClientImpl::ConnectToSessionController() { - content::ServiceManagerConnection::GetForProcess() - ->GetConnector() - ->BindInterface(ash::mojom::kServiceName, &session_controller_); -} - void SessionControllerClientImpl::SendSessionInfoIfChanged() { SessionManager* const session_manager = SessionManager::Get(); @@ -594,7 +583,7 @@ return; last_sent_session_info_ = std::move(info); - ash::SessionController::Get()->SetSessionInfo(*last_sent_session_info_); + session_controller_->SetSessionInfo(*last_sent_session_info_); } void SessionControllerClientImpl::SendUserSession(const User& user) { @@ -611,7 +600,7 @@ return; last_sent_user_session_ = std::move(user_session); - ash::SessionController::Get()->UpdateUserSession(*last_sent_user_session_); + session_controller_->UpdateUserSession(*last_sent_user_session_); } void SessionControllerClientImpl::SendUserSessionOrder() { @@ -625,7 +614,7 @@ user_session_ids.push_back(user_session_id); } - ash::SessionController::Get()->SetUserSessionOrder(user_session_ids); + session_controller_->SetUserSessionOrder(user_session_ids); } void SessionControllerClientImpl::SendSessionLengthLimit() {
diff --git a/chrome/browser/ui/ash/session_controller_client_impl.h b/chrome/browser/ui/ash/session_controller_client_impl.h index 63edf67..111f950b 100644 --- a/chrome/browser/ui/ash/session_controller_client_impl.h +++ b/chrome/browser/ui/ash/session_controller_client_impl.h
@@ -9,7 +9,6 @@ #include <vector> #include "ash/public/cpp/session/session_controller_client.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "base/callback_forward.h" #include "base/gtest_prod_util.h" #include "base/macros.h" @@ -118,9 +117,6 @@ static void DoSwitchActiveUser(const AccountId& account_id); static void DoCycleActiveUser(ash::CycleUserDirection direction); - // Flushes the mojo pipe to ash. - static void FlushForTesting(); - private: FRIEND_TEST_ALL_PREFIXES(SessionControllerClientImplTest, CyclingThreeUsers); FRIEND_TEST_ALL_PREFIXES(SessionControllerClientImplTest, SendUserSession); @@ -137,9 +133,6 @@ // Sends the user session info for a given profile. void SendUserSessionForProfile(Profile* profile); - // Connects to the |session_controller_| interface. - void ConnectToSessionController(); - // Sends session info to ash. void SendSessionInfoIfChanged(); @@ -158,9 +151,8 @@ // policy. void SendSessionLengthLimit(); - // SessionController interface in ash. Holding the interface pointer keeps the - // pipe alive to receive mojo return values. - ash::mojom::SessionControllerPtr session_controller_; + // SessionController instance in ash. + ash::SessionController* session_controller_ = nullptr; // Whether the primary user session info is sent to ash. bool primary_user_session_sent_ = false;
diff --git a/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc b/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc index 766739460..123708c 100644 --- a/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc +++ b/chrome/browser/ui/ash/session_controller_client_impl_unittest.cc
@@ -237,31 +237,24 @@ UserAddedToSession(second_user); UserAddedToSession(third_user); user_manager()->SwitchActiveUser(first_user); - SessionControllerClientImpl::FlushForTesting(); // Cycle forward. const ash::CycleUserDirection forward = ash::CycleUserDirection::NEXT; EXPECT_EQ("firstuser@test.com", GetActiveUserEmail()); SessionControllerClientImpl::DoCycleActiveUser(forward); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ("seconduser@test.com", GetActiveUserEmail()); SessionControllerClientImpl::DoCycleActiveUser(forward); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ("thirduser@test.com", GetActiveUserEmail()); SessionControllerClientImpl::DoCycleActiveUser(forward); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ("firstuser@test.com", GetActiveUserEmail()); // Cycle backwards. const ash::CycleUserDirection backward = ash::CycleUserDirection::PREVIOUS; SessionControllerClientImpl::DoCycleActiveUser(backward); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ("thirduser@test.com", GetActiveUserEmail()); SessionControllerClientImpl::DoCycleActiveUser(backward); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ("seconduser@test.com", GetActiveUserEmail()); SessionControllerClientImpl::DoCycleActiveUser(backward); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ("firstuser@test.com", GetActiveUserEmail()); } @@ -406,7 +399,6 @@ SessionControllerClientImpl client; TestSessionController session_controller; client.Init(); - SessionControllerClientImpl::FlushForTesting(); // No user session sent yet. EXPECT_EQ(0, session_controller.update_user_session_count()); @@ -422,7 +414,6 @@ account_id.GetUserEmail()), false); session_manager_.SetSessionState(SessionState::ACTIVE); - SessionControllerClientImpl::FlushForTesting(); // User session was sent. EXPECT_EQ(1, session_controller.update_user_session_count()); @@ -433,7 +424,6 @@ // Simulate a request for an update where nothing changed. client.SendUserSession(*user_manager()->GetLoggedInUsers()[0]); - SessionControllerClientImpl::FlushForTesting(); // Session was not updated because nothing changed. EXPECT_EQ(1, session_controller.update_user_session_count()); @@ -444,7 +434,6 @@ SessionControllerClientImpl client; TestSessionController session_controller; client.Init(); - SessionControllerClientImpl::FlushForTesting(); // Simulate the login screen. No user session yet. session_manager_.SetSessionState(SessionState::LOGIN_PRIMARY); @@ -464,7 +453,6 @@ "child@test.com"), false); session_manager_.SetSessionState(SessionState::ACTIVE); - SessionControllerClientImpl::FlushForTesting(); // The session controller received session info and user session. EXPECT_LT(0u, session_controller.last_user_session()->session_id); @@ -494,7 +482,6 @@ // Simulate an update to the custodian information. prefs->SetString(prefs::kSupervisedUserCustodianEmail, "parent3@test.com"); client.OnCustodianInfoChanged(); - SessionControllerClientImpl::FlushForTesting(); // The updated custodian was sent over the mojo interface. EXPECT_EQ("parent3@test.com", @@ -513,12 +500,10 @@ AccountId::FromUserEmailGaiaId("user@test.com", "2222222222"); user_manager()->SetOwnerId(owner); UserAddedToSession(owner); - SessionControllerClientImpl::FlushForTesting(); EXPECT_TRUE( session_controller.last_user_session()->user_info.is_device_owner); UserAddedToSession(normal_user); - SessionControllerClientImpl::FlushForTesting(); EXPECT_FALSE( session_controller.last_user_session()->user_info.is_device_owner); } @@ -532,13 +517,11 @@ const AccountId owner = AccountId::FromUserEmailGaiaId("owner@test.com", "1111111111"); UserAddedToSession(owner); - SessionControllerClientImpl::FlushForTesting(); // The device owner is empty, the current session shouldn't be the owner. EXPECT_FALSE( session_controller.last_user_session()->user_info.is_device_owner); user_manager()->SetOwnerId(owner); - SessionControllerClientImpl::FlushForTesting(); EXPECT_TRUE( session_controller.last_user_session()->user_info.is_device_owner); } @@ -548,7 +531,6 @@ SessionControllerClientImpl client; TestSessionController session_controller; client.Init(); - SessionControllerClientImpl::FlushForTesting(); // Simulate login. const AccountId account_id( @@ -560,7 +542,6 @@ account_id.GetUserEmail()), false); session_manager_.SetSessionState(SessionState::ACTIVE); - SessionControllerClientImpl::FlushForTesting(); // Simulate the notification that the profile is ready. TestingProfile* const user_profile = CreateTestingProfile(user); @@ -570,17 +551,13 @@ PrefService* const user_prefs = user_profile->GetPrefs(); user_prefs->SetBoolean(ash::prefs::kAllowScreenLock, true); - SessionControllerClientImpl::FlushForTesting(); EXPECT_TRUE(session_controller.last_session_info()->can_lock_screen); user_prefs->SetBoolean(ash::prefs::kAllowScreenLock, false); - SessionControllerClientImpl::FlushForTesting(); EXPECT_FALSE(session_controller.last_session_info()->can_lock_screen); user_prefs->SetBoolean(ash::prefs::kEnableAutoScreenLock, true); - SessionControllerClientImpl::FlushForTesting(); EXPECT_TRUE( session_controller.last_session_info()->should_lock_screen_automatically); user_prefs->SetBoolean(ash::prefs::kEnableAutoScreenLock, false); - SessionControllerClientImpl::FlushForTesting(); EXPECT_FALSE( session_controller.last_session_info()->should_lock_screen_automatically); } @@ -590,7 +567,6 @@ SessionControllerClientImpl client; TestSessionController session_controller; client.Init(); - SessionControllerClientImpl::FlushForTesting(); // By default there is no session length limit. EXPECT_TRUE(session_controller.last_session_length_limit().is_zero()); @@ -603,7 +579,6 @@ local_state->SetInteger(prefs::kSessionLengthLimit, length_limit.InMilliseconds()); local_state->SetInt64(prefs::kSessionStartTime, start_time.ToInternalValue()); - SessionControllerClientImpl::FlushForTesting(); EXPECT_EQ(length_limit, session_controller.last_session_length_limit()); EXPECT_EQ(start_time, session_controller.last_session_start_time()); }
diff --git a/chrome/browser/ui/ash/test_session_controller.cc b/chrome/browser/ui/ash/test_session_controller.cc index b36722c..6afab34 100644 --- a/chrome/browser/ui/ash/test_session_controller.cc +++ b/chrome/browser/ui/ash/test_session_controller.cc
@@ -6,31 +6,8 @@ #include <utility> -#include "ash/public/interfaces/constants.mojom.h" -#include "content/public/common/service_manager_connection.h" -#include "services/service_manager/public/cpp/connector.h" -#include "services/service_manager/public/cpp/service_filter.h" - -TestSessionController::TestSessionController() { - CHECK(content::ServiceManagerConnection::GetForProcess()) - << "ServiceManager is uninitialized. Did you forget to create a " - "content::TestServiceManagerContext?"; - content::ServiceManagerConnection::GetForProcess() - ->GetConnector() - ->OverrideBinderForTesting( - service_manager::ServiceFilter::ByName(ash::mojom::kServiceName), - ash::mojom::SessionController::Name_, - base::BindRepeating(&TestSessionController::Bind, - base::Unretained(this))); -} - -TestSessionController::~TestSessionController() { - content::ServiceManagerConnection::GetForProcess() - ->GetConnector() - ->ClearBinderOverrideForTesting( - service_manager::ServiceFilter::ByName(ash::mojom::kServiceName), - ash::mojom::SessionController::Name_); -} +TestSessionController::TestSessionController() = default; +TestSessionController::~TestSessionController() = default; void TestSessionController::SetClient(ash::SessionControllerClient* client) {} @@ -92,8 +69,8 @@ void TestSessionController::AddSessionActivationObserverForAccountId( const AccountId& account_id, - ash::mojom::SessionActivationObserverPtr observer) {} + ash::SessionActivationObserver* observer) {} -void TestSessionController::Bind(mojo::ScopedMessagePipeHandle handle) { - binding_.Bind(ash::mojom::SessionControllerRequest(std::move(handle))); -} +void TestSessionController::RemoveSessionActivationObserverForAccountId( + const AccountId& account_id, + ash::SessionActivationObserver* observer) {}
diff --git a/chrome/browser/ui/ash/test_session_controller.h b/chrome/browser/ui/ash/test_session_controller.h index 212c2c7..0cefb56 100644 --- a/chrome/browser/ui/ash/test_session_controller.h +++ b/chrome/browser/ui/ash/test_session_controller.h
@@ -9,20 +9,11 @@ #include <vector> #include "ash/public/cpp/session/session_controller.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "base/macros.h" #include "base/optional.h" -#include "mojo/public/cpp/bindings/binding.h" -// Test implementation of ash's mojo SessionController interface. -// -// Registers itself to ServiceManager on construction and deregisters -// on destruction. -// -// Note: A ServiceManagerConnection must be initialized before constructing this -// object. Consider using content::TestServiceManagerContext on your tests. -class TestSessionController : public ash::SessionController, - public ash::mojom::SessionController { +// Test implementation of ash's SessionController interface. +class TestSessionController : public ash::SessionController { public: TestSessionController(); ~TestSessionController() override; @@ -55,8 +46,6 @@ void UpdateUserSession(const ash::UserSession& user_session) override; void SetUserSessionOrder( const std::vector<uint32_t>& user_session_order) override; - - // ash::mojom::SessionController: void PrepareForLock(PrepareForLockCallback callback) override; void StartLock(StartLockCallback callback) override; void NotifyChromeLockAnimationsComplete() override; @@ -73,18 +62,18 @@ const std::string& user_email) override; void AddSessionActivationObserverForAccountId( const AccountId& account_id, - ash::mojom::SessionActivationObserverPtr observer) override; + ash::SessionActivationObserver* observer) override; + void RemoveSessionActivationObserverForAccountId( + const AccountId& account_id, + ash::SessionActivationObserver* observer) override; private: - void Bind(mojo::ScopedMessagePipeHandle handle); - base::Optional<ash::SessionInfo> last_session_info_; base::Optional<ash::UserSession> last_user_session_; base::TimeDelta last_session_length_limit_; base::TimeTicks last_session_start_time_; int update_user_session_count_ = 0; int lock_animation_complete_call_count_ = 0; - mojo::Binding<ash::mojom::SessionController> binding_{this}; DISALLOW_COPY_AND_ASSIGN(TestSessionController); };
diff --git a/chrome/browser/ui/cocoa/browser_window_mac_browsertest.mm b/chrome/browser/ui/cocoa/browser_window_mac_browsertest.mm index 233ba61..e05cba5 100644 --- a/chrome/browser/ui/cocoa/browser_window_mac_browsertest.mm +++ b/chrome/browser/ui/cocoa/browser_window_mac_browsertest.mm
@@ -15,7 +15,9 @@ #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/test/base/in_process_browser_test.h" #include "content/public/browser/notification_service.h" +#include "content/public/common/content_switches.h" #include "content/public/test/test_utils.h" +#include "ui/base/test/ns_ax_tree_validator.h" // Test harness for Mac-specific behaviors of BrowserWindow. class BrowserWindowMacTest : public InProcessBrowserTest { @@ -61,3 +63,33 @@ // which currently asks |super|. That is, NSWindow. Which says YES. EXPECT_TRUE([window validateUserInterfaceItem:bookmark_menu_item]); } + +class BrowserWindowMacA11yTest : public BrowserWindowMacTest { + public: + BrowserWindowMacA11yTest() = default; + ~BrowserWindowMacA11yTest() override = default; + + void SetUpCommandLine(base::CommandLine* command_line) override { + BrowserWindowMacTest::SetUpCommandLine(command_line); + command_line->AppendSwitch(switches::kForceRendererAccessibility); + } + + private: + DISALLOW_COPY_AND_ASSIGN(BrowserWindowMacA11yTest); +}; + +IN_PROC_BROWSER_TEST_F(BrowserWindowMacA11yTest, A11yTreeIsWellFormed) { + NSWindow* window = browser()->window()->GetNativeWindow().GetNativeNSWindow(); + size_t nodes_visited = 0; + base::Optional<ui::NSAXTreeProblemDetails> details = + ui::ValidateNSAXTree(window, &nodes_visited); + EXPECT_FALSE(details.has_value()) << details->ToString(); + + // There should be at least a handful of AX nodes in the tree - fail this test + // if for some reason (eg) the window has no children, which would otherwise + // be a well-formed AX tree. + EXPECT_GE(nodes_visited, 10U); + + if (HasFailure()) + ui::PrintNSAXTree(window); +}
diff --git a/chrome/browser/ui/search/ntp_user_data_logger.cc b/chrome/browser/ui/search/ntp_user_data_logger.cc index 60be683..cdc1842 100644 --- a/chrome/browser/ui/search/ntp_user_data_logger.cc +++ b/chrome/browser/ui/search/ntp_user_data_logger.cc
@@ -562,12 +562,8 @@ UMA_HISTOGRAM_LOAD_TIME("NewTabPage.TilesReceivedTime.Web", tiles_received_time_); UMA_HISTOGRAM_LOAD_TIME("NewTabPage.LoadTime.Web", load_time); - // Further split between Google and non-Google. - if (is_google) { - UMA_HISTOGRAM_LOAD_TIME("NewTabPage.LoadTime.Web.Google", load_time); - } else { - UMA_HISTOGRAM_LOAD_TIME("NewTabPage.LoadTime.Web.Other", load_time); - } + // Only third-party NTPs can be loaded from the web. + UMA_HISTOGRAM_LOAD_TIME("NewTabPage.LoadTime.Web.Other", load_time); } else { UMA_HISTOGRAM_LOAD_TIME("NewTabPage.TilesReceivedTime.LocalNTP", tiles_received_time_);
diff --git a/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc b/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc index 88a2705..a57ff5c8 100644 --- a/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc +++ b/chrome/browser/ui/search/ntp_user_data_logger_unittest.cc
@@ -775,47 +775,6 @@ 1))); } -TEST_F(NTPUserDataLoggerTest, ShouldRecordLoadTimeRemoteNTPGoogle) { - base::HistogramTester histogram_tester; - - TestNTPUserDataLogger logger(GURL("https://www.google.com/_/chrome/newtab")); - logger.is_google_ = true; - - base::TimeDelta delta_tiles_received = base::TimeDelta::FromMilliseconds(10); - base::TimeDelta delta_tiles_loaded = base::TimeDelta::FromMilliseconds(100); - - // Send the ALL_TILES_RECEIVED event. - logger.LogEvent(NTP_ALL_TILES_RECEIVED, delta_tiles_received); - - // Send the ALL_TILES_LOADED event, this should trigger emitting histograms. - logger.LogEvent(NTP_ALL_TILES_LOADED, delta_tiles_loaded); - - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime"), SizeIs(1)); - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.LocalNTP"), - IsEmpty()); - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.Web"), - SizeIs(1)); - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.Web.Google"), - SizeIs(1)); - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.Web.Other"), - IsEmpty()); - - histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime", - delta_tiles_loaded, 1); - histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.Web", - delta_tiles_loaded, 1); - histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.Web.Google", - delta_tiles_loaded, 1); - - EXPECT_THAT( - histogram_tester.GetAllSamples( - "NewTabPage.CustomizationAvailability.Backgrounds"), - ElementsAre(Bucket( - static_cast<int>( - BackgroundCustomization::BACKGROUND_CUSTOMIZATION_AVAILABLE), - 1))); -} - TEST_F(NTPUserDataLoggerTest, ShouldRecordLoadTimeRemoteNTPOther) { base::HistogramTester histogram_tester; @@ -934,7 +893,8 @@ TEST_F(NTPUserDataLoggerTest, ShouldRecordCustomizationActionFromNTPGoogle) { base::HistogramTester histogram_tester; - TestNTPUserDataLogger logger(GURL("https://www.google.com/_/chrome/newtab")); + GURL local_ntp(chrome::kChromeSearchLocalNtpUrl); + TestNTPUserDataLogger logger(local_ntp); logger.is_google_ = true; base::TimeDelta delta_tiles_received = base::TimeDelta::FromMilliseconds(10); @@ -952,19 +912,21 @@ EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime"), SizeIs(1)); EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.LocalNTP"), - IsEmpty()); + SizeIs(1)); + EXPECT_THAT( + histogram_tester.GetAllSamples("NewTabPage.LoadTime.LocalNTP.Google"), + SizeIs(1)); + EXPECT_THAT( + histogram_tester.GetAllSamples("NewTabPage.LoadTime.LocalNTP.Other"), + IsEmpty()); EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.Web"), - SizeIs(1)); - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.Web.Google"), - SizeIs(1)); - EXPECT_THAT(histogram_tester.GetAllSamples("NewTabPage.LoadTime.Web.Other"), IsEmpty()); histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime", delta_tiles_loaded, 1); - histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.Web", + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.LocalNTP", delta_tiles_loaded, 1); - histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.Web.Google", + histogram_tester.ExpectTimeBucketCount("NewTabPage.LoadTime.LocalNTP.Google", delta_tiles_loaded, 1); EXPECT_THAT(
diff --git a/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc b/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc index 243a46d..7bdbd6a5 100644 --- a/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc +++ b/chrome/browser/ui/views/autofill/payments/local_card_migration_browsertest.cc
@@ -456,16 +456,16 @@ if (!browser()) return icon_view; + BrowserView* browser_view = + BrowserView::GetBrowserViewForBrowser(browser()); if (icon_in_status_chip) { ToolbarPageActionIconContainerView* toolbar_page_action_icon_container_view = - static_cast<ToolbarPageActionIconContainerView*>( - browser()->window()->GetToolbarPageActionIconContainer()); + browser_view->toolbar()->toolbar_page_action_container(); icon_view = toolbar_page_action_icon_container_view ->local_card_migration_icon_view(); } else { - LocationBarView* location_bar_view = - static_cast<LocationBarView*>(browser()->window()->GetLocationBar()); + LocationBarView* location_bar_view = browser_view->GetLocationBarView(); icon_view = location_bar_view->local_card_migration_icon_view(); } CHECK(icon_view);
diff --git a/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc b/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc index c5598a1f..e78c4ddbc 100644 --- a/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc +++ b/chrome/browser/ui/views/autofill/payments/save_card_bubble_views_browsertest.cc
@@ -681,18 +681,18 @@ return nullptr; SaveCardIconView* icon_view = nullptr; + BrowserView* browser_view = + BrowserView::GetBrowserViewForBrowser(browser()); if (base::FeatureList::IsEnabled( features::kAutofillEnableToolbarStatusChip)) { ToolbarPageActionIconContainerView* toolbar_page_action_icon_container_view = - static_cast<ToolbarPageActionIconContainerView*>( - browser()->window()->GetToolbarPageActionIconContainer()); + browser_view->toolbar()->toolbar_page_action_container(); DCHECK(toolbar_page_action_icon_container_view->save_card_icon_view()); icon_view = toolbar_page_action_icon_container_view->save_card_icon_view(); } else { - LocationBarView* location_bar_view = - static_cast<LocationBarView*>(browser()->window()->GetLocationBar()); + LocationBarView* location_bar_view = browser_view->GetLocationBarView(); DCHECK(location_bar_view->save_credit_card_icon_view()); icon_view = location_bar_view->save_credit_card_icon_view(); }
diff --git a/chrome/browser/ui/webui/browser_switcher/browser_switch_ui.cc b/chrome/browser/ui/webui/browser_switcher/browser_switch_ui.cc index 802c1bc..ef8dfacd 100644 --- a/chrome/browser/ui/webui/browser_switcher/browser_switch_ui.cc +++ b/chrome/browser/ui/webui/browser_switcher/browser_switch_ui.cc
@@ -58,6 +58,29 @@ return true; } +// Returns a dictionary like: +// +// { +// "sitelist": ["example.com", ...], +// "greylist": ["example.net", ...] +// } +std::unique_ptr<base::Value> RuleSetToDict( + const browser_switcher::RuleSet& ruleset) { + auto sitelist = std::make_unique<base::ListValue>(); + for (const std::string& rule : ruleset.sitelist) + sitelist->GetList().emplace_back(rule); + + auto greylist = std::make_unique<base::ListValue>(); + for (const std::string& rule : ruleset.greylist) + greylist->GetList().emplace_back(rule); + + auto dict = std::make_unique<base::DictionaryValue>(); + dict->Set("sitelist", std::move(sitelist)); + dict->Set("greylist", std::move(greylist)); + + return dict; +} + browser_switcher::BrowserSwitcherService* GetBrowserSwitcherService( content::WebUI* web_ui) { return browser_switcher::BrowserSwitcherServiceFactory::GetForBrowserContext( @@ -116,8 +139,16 @@ IDR_BROWSER_SWITCHER_BROWSER_SWITCHER_PROXY_HTML); source->AddResourcePath("browser_switcher_proxy.js", IDR_BROWSER_SWITCHER_BROWSER_SWITCHER_PROXY_JS); - source->SetDefaultResource(IDR_BROWSER_SWITCHER_BROWSER_SWITCH_HTML); + + // Setup chrome://browser-switch/internals debug UI. + source->AddResourcePath("internals/browser_switcher_internals.js", + IDR_BROWSER_SWITCHER_INTERNALS_JS); + source->AddResourcePath("internals/browser_switcher_internals.html", + IDR_BROWSER_SWITCHER_INTERNALS_HTML); + source->AddResourcePath("internals/", IDR_BROWSER_SWITCHER_INTERNALS_HTML); + source->AddResourcePath("internals", IDR_BROWSER_SWITCHER_INTERNALS_HTML); + source->SetJsonPath("strings.js"); return source; @@ -143,6 +174,19 @@ // Navigates to the New Tab Page. void HandleGotoNewTabPage(const base::ListValue* args); + // Resolves a promise with a JSON object with all the LBS rulesets, formatted + // like this: + // + // { + // "gpo": { + // "sitelist": ["example.com", ...], + // "greylist": [...] + // }, + // "ieem": { "sitelist": [...], "greylist": [...] }, + // "external": { "sitelist": [...], "greylist": [...] } + // } + void HandleGetAllRulesets(const base::ListValue* args); + DISALLOW_COPY_AND_ASSIGN(BrowserSwitchHandler); }; @@ -159,6 +203,10 @@ "gotoNewTabPage", base::BindRepeating(&BrowserSwitchHandler::HandleGotoNewTabPage, base::Unretained(this))); + web_ui()->RegisterMessageCallback( + "getAllRulesets", + base::BindRepeating(&BrowserSwitchHandler::HandleGetAllRulesets, + base::Unretained(this))); } void BrowserSwitchHandler::HandleLaunchAlternativeBrowserAndCloseTab( @@ -209,6 +257,24 @@ GotoNewTabPage(web_ui()->GetWebContents()); } +void BrowserSwitchHandler::HandleGetAllRulesets(const base::ListValue* args) { + DCHECK(args); + AllowJavascript(); + + auto* service = GetBrowserSwitcherService(web_ui()); + + base::DictionaryValue retval; + auto gpo_dict = RuleSetToDict(service->prefs().GetRules()); + retval.Set("gpo", std::move(gpo_dict)); + auto ieem_dict = RuleSetToDict(*service->sitelist()->GetIeemSitelist()); + retval.Set("ieem", std::move(ieem_dict)); + auto external_dict = + RuleSetToDict(*service->sitelist()->GetExternalSitelist()); + retval.Set("external", std::move(external_dict)); + + ResolveJavascriptCallback(args->GetList()[0], retval); +} + } // namespace BrowserSwitchUI::BrowserSwitchUI(content::WebUI* web_ui) @@ -218,7 +284,7 @@ DarkModeHandler::Initialize(web_ui, data_source); web_ui->AddMessageHandler(std::make_unique<BrowserSwitchHandler>()); - // Set up the about:browser-switch source. + // Set up the chrome://browser-switch source. Profile* profile = Profile::FromWebUI(web_ui); content::WebUIDataSource::Add(profile, data_source); }
diff --git a/chrome/browser/ui/webui/chromeos/account_manager_welcome_dialog.cc b/chrome/browser/ui/webui/chromeos/account_manager_welcome_dialog.cc index 977f24ae..77307020 100644 --- a/chrome/browser/ui/webui/chromeos/account_manager_welcome_dialog.cc +++ b/chrome/browser/ui/webui/chromeos/account_manager_welcome_dialog.cc
@@ -65,9 +65,8 @@ void AccountManagerWelcomeDialog::OnDialogClosed( const std::string& json_retval) { - chrome::SettingsWindowManager::GetInstance()->ShowChromePageForProfile( - ProfileManager::GetActiveUserProfile(), - GURL("chrome://settings/accountManager")); + chrome::SettingsWindowManager::GetInstance()->ShowOSSettings( + ProfileManager::GetActiveUserProfile(), chrome::kAccountManagerSubPage); SystemWebDialogDelegate::OnDialogClosed(json_retval); }
diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.cc index a12e709..eb1d7d6 100644 --- a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.cc +++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.cc
@@ -202,9 +202,22 @@ } printer_configurer_->SetUpPrinter( - *printer, base::BindOnce(&LocalPrinterHandlerChromeos::HandlePrinterSetup, - weak_factory_.GetWeakPtr(), *printer, - std::move(cb), printer->IsUsbProtocol())); + *printer, + base::BindOnce(&LocalPrinterHandlerChromeos::OnPrinterInstalled, + weak_factory_.GetWeakPtr(), *printer, std::move(cb))); +} + +void LocalPrinterHandlerChromeos::OnPrinterInstalled( + const chromeos::Printer& printer, + GetCapabilityCallback cb, + chromeos::PrinterSetupResult result) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + + if (result == chromeos::PrinterSetupResult::kSuccess) { + printers_manager_->PrinterInstalled(printer, true /*is_automatic*/); + } + + HandlePrinterSetup(printer, std::move(cb), printer.IsUsbProtocol(), result); } void LocalPrinterHandlerChromeos::HandlePrinterSetup( @@ -223,7 +236,6 @@ chromeos::PrinterConfigurer::RecordUsbPrinterSetupSource( chromeos::UsbPrinterSetupSource::kPrintPreview); } - printers_manager_->PrinterInstalled(printer, true /*is_automatic*/); // fetch settings on the blocking pool and invoke callback. FetchCapabilities(printer, GetNativePrinterPolicies(), std::move(cb)); return;
diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.h b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.h index edca6f7..5a124f8 100644 --- a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.h +++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos.h
@@ -65,6 +65,10 @@ // |profile_|. base::Value GetNativePrinterPolicies() const; + void OnPrinterInstalled(const chromeos::Printer& printer, + GetCapabilityCallback cb, + chromeos::PrinterSetupResult result); + void HandlePrinterSetup(const chromeos::Printer& printer, GetCapabilityCallback cb, bool record_usb_setup_source,
diff --git a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc index d9624bff..6f0bac4 100644 --- a/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc +++ b/chrome/browser/ui/webui/print_preview/local_printer_handler_chromeos_unittest.cc
@@ -81,7 +81,7 @@ return printers_.Get(printer_class); } - void UpdateSavedPrinter(const Printer& printer) override {} + void SavePrinter(const Printer& printer) override {} void RemoveSavedPrinter(const std::string& printer_id) override {} void AddObserver(CupsPrintersManager::Observer* observer) override {} void RemoveObserver(CupsPrintersManager::Observer* observer) override {}
diff --git a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc index af7f064..dac4a1c 100644 --- a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc +++ b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
@@ -725,6 +725,7 @@ printer.GetProtocol(), Printer::kProtocolMax); PRINTER_LOG(USER) << "Performing printer setup"; printers_manager_->PrinterInstalled(printer, is_automatic); + printers_manager_->SavePrinter(printer); if (printer.IsUsbProtocol()) { // Record UMA for USB printer setup source. PrinterConfigurer::RecordUsbPrinterSetupSource( @@ -733,7 +734,7 @@ return; case PrinterSetupResult::kEditSuccess: PRINTER_LOG(USER) << "Printer updated"; - printers_manager_->UpdateSavedPrinter(printer); + printers_manager_->SavePrinter(printer); return; case PrinterSetupResult::kPpdNotFound: PRINTER_LOG(ERROR) << "Could not locate requested PPD";
diff --git a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc index 41ee571..f040ea2 100644 --- a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc +++ b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler_unittest.cc
@@ -63,7 +63,7 @@ return {}; } - void UpdateSavedPrinter(const Printer& printer) override {} + void SavePrinter(const Printer& printer) override {} void RemoveSavedPrinter(const std::string& printer_id) override {} void AddObserver(CupsPrintersManager::Observer* observer) override {} void RemoveObserver(CupsPrintersManager::Observer* observer) override {}
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index d622de6..8b18a03 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -585,6 +585,7 @@ #else {"resetToDefaultTheme", IDS_SETTINGS_RESET_TO_DEFAULT_THEME}, #endif + {"chromeColors", IDS_SETTINGS_CHROME_COLORS}, {"showHomeButton", IDS_SETTINGS_SHOW_HOME_BUTTON}, {"showBookmarksBar", IDS_SETTINGS_SHOW_BOOKMARKS_BAR}, {"homePageNtp", IDS_SETTINGS_HOME_PAGE_NTP},
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc index 6e4976e..7332b5ca 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -202,9 +202,6 @@ // TODO(950007): Remove this when SplitSettings is the default and there are // no Chrome OS settings in the browser settings page. InitOSWebUIHandlers(profile, web_ui, html_source); - - AddSettingsPageUIHandler( - std::make_unique<chromeos::settings::ChangePictureHandler>()); #else AddSettingsPageUIHandler(std::make_unique<DefaultBrowserHandler>()); AddSettingsPageUIHandler(std::make_unique<ManageProfileHandler>(profile)); @@ -365,6 +362,9 @@ } web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::ChangePictureHandler>()); + + web_ui->AddMessageHandler( std::make_unique<chromeos::settings::AccessibilityHandler>(web_ui)); web_ui->AddMessageHandler( std::make_unique<chromeos::settings::AndroidAppsHandler>(profile));
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc index 80acafa..b347b2c 100644 --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc
@@ -348,6 +348,7 @@ #if defined(OS_CHROMEOS) // NOTE: Add new OS settings to IsOSSettingsSubPage() below. const char kAccessibilitySubPage[] = "accessibility"; +const char kAccountManagerSubPage[] = "accountManager"; const char kAndroidAppsDetailsSubPage[] = "androidApps/details"; const char kAssistantSubPage[] = "googleAssistant"; const char kBluetoothSubPage[] = "bluetoothDevices";
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h index e375472..756a7fd 100644 --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h
@@ -312,6 +312,7 @@ #if defined(OS_CHROMEOS) // Entry points for OS settings sub-pages. extern const char kAccessibilitySubPage[]; +extern const char kAccountManagerSubPage[]; extern const char kAndroidAppsDetailsSubPage[]; extern const char kAssistantSubPage[]; extern const char kBluetoothSubPage[];
diff --git a/chrome/installer/mac/BUILD.gn b/chrome/installer/mac/BUILD.gn index b284886..d55edb8 100644 --- a/chrome/installer/mac/BUILD.gn +++ b/chrome/installer/mac/BUILD.gn
@@ -6,6 +6,7 @@ import("//build/config/mac/base_rules.gni") import("//build/util/branding.gni") import("//build/util/version.gni") +import("//chrome/process_version_rc_template.gni") group("mac") { public_deps = [ @@ -62,10 +63,54 @@ ] } +process_version_rc_template("sign_config") { + visibility = [ ":copy_signing" ] + + template_file = "signing/config.py.in" + + output = "$_packaging_dir/signing/config.py" + + _full_target_name = get_label_info(target_name, "label_no_toolchain") + _file_path = rebase_path(template_file) + + extra_args = [ + "-e", + "GEN_HEADER=\"THIS FILE IS AUTOMATICALLY GENERATED BY $_full_target_name.\n# The original copy is at $_file_path.\n\"", + ] +} + +_mac_signing_sources = [ + "signing/__init__.py", + "signing/commands.py", + "signing/model.py", + "signing/modification.py", + "signing/pipeline.py", + "signing/signing.py", +] + +copy("copy_signing") { + visibility = [ ":copies" ] + + deps = [ + ":sign_config", + ] + + sources = _mac_signing_sources + + if (is_chrome_branded) { + sources += [ "internal/internal_config.py" ] + } + + outputs = [ + "$_packaging_dir/signing/{{source_file_part}}", + ] +} + copy("copies") { visibility = [ ":mac" ] deps = [ + ":copy_signing", ":copy_variables", "//chrome:entitlements", "//chrome/installer/mac/third_party/bsdiff:goobsdiff", @@ -86,6 +131,7 @@ "dirpatcher.sh", "dmgdiffer.sh", "pkg-dmg", + "sign_chrome.py", "sign_installer_tools.sh", ] @@ -115,25 +161,21 @@ } group("mac_signing_tests") { - data = [ - "signing/__init__.py", - "signing/commands.py", - "signing/config.py.in", - "signing/model.py", - "signing/model_test.py", - "signing/modification.py", - "signing/modification_test.py", - "signing/run_mac_signing_tests.py", - "signing/signing.py", - "signing/signing_test.py", - "signing/test_common.py", - "signing/test_config.py", + data = _mac_signing_sources + [ + "signing/config.py.in", + "signing/model_test.py", + "signing/modification_test.py", + "signing/pipeline_test.py", + "signing/run_mac_signing_tests.py", + "signing/signing_test.py", + "signing/test_common.py", + "signing/test_config.py", - # The run_isolated_script_test.py script and its dependencies. - "//testing/scripts/run_isolated_script_test.py", - "//testing/scripts/common.py", - "//testing/xvfb.py", - "//testing/test_env.py", - "//third_party/catapult/third_party/typ/", - ] + # The run_isolated_script_test.py script and its dependencies. + "//testing/scripts/run_isolated_script_test.py", + "//testing/scripts/common.py", + "//testing/xvfb.py", + "//testing/test_env.py", + "//third_party/catapult/third_party/typ/", + ] }
diff --git a/chrome/installer/mac/sign_chrome.py b/chrome/installer/mac/sign_chrome.py new file mode 100755 index 0000000..964cd09b --- /dev/null +++ b/chrome/installer/mac/sign_chrome.py
@@ -0,0 +1,93 @@ +#!/usr/bin/env python +# Copyright 2019 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. + +import argparse +import os.path +import sys + +sys.path.append(os.path.dirname(__file__)) + +from signing import config, model, pipeline + + +def create_config(identity, keychain, development): + """Creates the |model.CodeSignConfig| for the signing operations. + + If |development| is True, the config will be modified to not require + restricted internal assets, nor will the products be required to match + specific certificate hashes. + + Args: + identity: The code signing identity to use. + keychain: Optional path to the keychain file, in which |identity| + will be searched for. + development: Boolean indicating whether or not to modify the chosen + config for development testing. + + Returns: + An instance of |model.CodeSignConfig|. + """ + config_class = config.CodeSignConfig + try: + import signing.internal_config + config_class = signing.internal_config.InternalCodeSignConfig + except ImportError as e: + # If the build specified Google Chrome as the product, then the + # internal config has to be available. + if config_class(identity, keychain).product == 'Google Chrome': + raise e + + if development: + + class DevelopmentCodeSignConfig(config_class): + + @property + def codesign_requirements_basic(self): + return '' + + @property + def provisioning_profile_basename(self): + return None + + @property + def run_spctl_assess(self): + return False + + config_class = DevelopmentCodeSignConfig + + return config_class(identity, keychain) + + +def main(): + parser = argparse.ArgumentParser( + description='Code sign and package Chrome for channel distribution.') + parser.add_argument( + '--keychain', help='The keychain to load the identity from.') + parser.add_argument( + '--identity', required=True, help='The identity to sign with.') + parser.add_argument('--development', action='store_true', + help='The specified identity is for development. ' \ + 'Certain codesign requirements will be omitted.') + parser.add_argument('--input', required=True, + help='Path to the input directory. The input directory should ' \ + 'contain the products to sign, as well as the Packaging ' \ + 'directory.') + parser.add_argument('--output', required=True, + help='Path to the output directory. The signed DMG products and ' \ + 'installer tools will be placed here.') + parser.add_argument( + '--no-dmg', + action='store_true', + help='Only sign Chrome and do not package the bundle into a DMG.') + args = parser.parse_args() + + config = create_config(args.identity, args.keychain, args.development) + paths = model.Paths(args.input, args.output, None) + + pipeline.sign_all(paths, config, package_dmg=not args.no_dmg) + + +if __name__ == '__main__': + main()
diff --git a/chrome/installer/mac/signing/pipeline.py b/chrome/installer/mac/signing/pipeline.py new file mode 100644 index 0000000..ac3cd9f --- /dev/null +++ b/chrome/installer/mac/signing/pipeline.py
@@ -0,0 +1,164 @@ +# Copyright 2019 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. +""" +The pipeline module orchestrates the entire signing process, which includes: + 1. Customizing build products for release channels. + 2. Code signing the application bundle and all of its nested code. + 3. Producing a packaged DMG. + 4. Signing and packaging the installer tools. +""" + +import os.path + +from . import commands, model, modification, signing + + +def _package_dmg(paths, dist, config): + """Packages a Chrome application bundle into a DMG. + + Args: + paths: A |model.Paths| object. + dist: The |model.Distribution| for which the product was customized. + config: The |config.CodeSignConfig| object. + + Returns: + A path to the produced DMG file. + """ + packaging_dir = paths.packaging_dir(config) + + if dist.channel_customize: + dsstore_file = 'chrome_{}_dmg_dsstore'.format(dist.channel) + icon_file = 'chrome_{}_dmg_icon.icns'.format(dist.channel) + else: + dsstore_file = 'chrome_dmg_dsstore' + icon_file = 'chrome_dmg_icon.icns' + + dmg_path = os.path.join(paths.output, '{}.dmg'.format(config.dmg_basename)) + app_path = os.path.join(paths.work, config.app_dir) + + # A locally-created empty directory is more trustworthy than /var/empty. + empty_dir = os.path.join(paths.work, 'empty') + commands.make_dir(empty_dir) + + # Make the disk image. Don't include any customized name fragments in + # --volname because the .DS_Store expects the volume name to be constant. + # Don't put a name on the /Applications symbolic link because the same disk + # image is used for all languages. + # yapf: disable + commands.run_command([ + os.path.join(packaging_dir, 'pkg-dmg'), + '--verbosity', '0', + '--tempdir', paths.work, + '--source', empty_dir, + '--target', dmg_path, + '--format', 'UDBZ', + '--volname', config.app_product, + '--icon', os.path.join(packaging_dir, icon_file), + '--copy', '{}:/'.format(app_path), + '--copy', + '{}/keystone_install.sh:/.keystone_install'.format(packaging_dir), + '--mkdir', '.background', + '--copy', + '{}/chrome_dmg_background.png:/.background/background.png'.format( + packaging_dir), + '--copy', '{}/{}:/.DS_Store'.format(packaging_dir, dsstore_file), + '--symlink', '/Applications:/ ', + ]) + # yapf: enable + + return dmg_path + + +def _package_installer_tools(paths, config): + """Signs and packages all the installer tools, which are not shipped to end- + users. + + Args: + paths: A |model.Paths| object. + config: The |config.CodeSignConfig| object. + """ + DIFF_TOOLS = 'diff_tools' + + tools_to_sign = signing.get_installer_tools(config) + other_tools = ( + 'dirdiffer.sh', + 'dirpatcher.sh', + 'dmgdiffer.sh', + 'keystone_install.sh', + 'pkg-dmg', + ) + + with commands.WorkDirectory(paths) as paths: + diff_tools_dir = os.path.join(paths.work, DIFF_TOOLS) + commands.make_dir(diff_tools_dir) + + for part in tools_to_sign.values(): + commands.copy_files( + os.path.join(paths.input, part.path), diff_tools_dir) + part.path = os.path.join(DIFF_TOOLS, os.path.basename(part.path)) + signing.sign_part(paths, config, part) + + for part in tools_to_sign.values(): + signing.verify_part(paths, part) + + for tool in other_tools: + commands.copy_files( + os.path.join(paths.packaging_dir(config), tool), diff_tools_dir) + + zip_file = os.path.join(paths.output, DIFF_TOOLS + '.zip') + commands.run_command(['zip', '-9ry', zip_file, DIFF_TOOLS], + cwd=paths.work) + + +def sign_all(orig_paths, config, package_dmg=True): + """For each distribution in |config|, performs customization, signing, and + DMG packaging and places the resulting signed DMG in |orig_paths.output|. + The |paths.input| must contain the products to customize and sign. + + Args: + oring_paths: A |model.Paths| object. + config: The |config.CodeSignConfig| object. + package_dmg: If True, the signed application bundle will be packaged + into a DMG, which will also be signed. If False, the signed app + bundle will be copied to |paths.output|. + """ + for dist in config.distributions: + with commands.WorkDirectory(orig_paths) as paths: + dist_config = dist.to_config(config) + + # Copy the app to sign into the work dir. + commands.copy_files( + os.path.join(paths.input, config.app_dir), paths.work) + + # Customize the app bundle. + modification.customize_distribution(paths, dist, dist_config) + + signing.sign_chrome(paths, dist_config) + + # If not packaging into a DMG, simply copy the signed bundle to the + # output directory. + if not package_dmg: + dest_dir = os.path.join(paths.output, dist_config.dmg_basename) + commands.make_dir(dest_dir) + commands.copy_files( + os.path.join(paths.work, dist_config.app_dir), dest_dir) + continue + + dmg_path = _package_dmg(paths, dist, dist_config) + + # dmg_identifier is like dmg_name but without the .dmg suffix. If a + # brand code is in use, use the actual brand code instead of the + # name fragment, to avoid leaking the association between brand + # codes and their meanings. + dmg_identifier = dist_config.dmg_basename + if dist.branding_code: + dmg_identifier = dist_config.dmg_basename.replace( + dist.dmg_name_fragment, dist.branding_code) + + product = model.CodeSignedProduct( + dmg_path, dmg_identifier, sign_with_identifier=True) + signing.sign_part(paths, dist_config, product) + signing.verify_part(paths, product) + + _package_installer_tools(orig_paths, config)
diff --git a/chrome/installer/mac/signing/pipeline_test.py b/chrome/installer/mac/signing/pipeline_test.py new file mode 100644 index 0000000..0693c6da --- /dev/null +++ b/chrome/installer/mac/signing/pipeline_test.py
@@ -0,0 +1,312 @@ +# Copyright 2019 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. + +import os.path +import unittest + +from . import model, pipeline, test_common, test_config + +mock = test_common.import_mock() + + +def _get_work_dir(*args, **kwargs): + _get_work_dir.count += 1 + return '$W_{}'.format(_get_work_dir.count) + + +_get_work_dir.count = 0 + + +def _get_adjacent_item(l, o): + """Finds object |o| in collection |l| and returns the item at its index + plus 1. + """ + index = l.index(o) + return l[index + 1] + + +@mock.patch.multiple( + 'signing.commands', **{ + m: mock.DEFAULT for m in ('move_file', 'copy_files', 'run_command', + 'make_dir', 'shutil') + }) +@mock.patch.multiple( + 'signing.signing', + **{m: mock.DEFAULT for m in ('sign_part', 'sign_chrome', 'verify_part')}) +@mock.patch('signing.commands.tempfile.mkdtemp', _get_work_dir) +class TestPipeline(unittest.TestCase): + + def setUp(self): + _get_work_dir.count = 0 + self.paths = model.Paths('$I', '$O', None) + + def test_package_dmg_no_customize(self, **kwargs): + dist = model.Distribution() + config = test_config.TestConfig() + paths = self.paths.replace_work('$W') + + dmg_path = pipeline._package_dmg(paths, dist, config) + self.assertEqual('$O/AppProduct-99.0.9999.99.dmg', dmg_path) + + pkg_dmg_args = kwargs['run_command'].mock_calls[0][1][0] + + self.assertEqual(dmg_path, _get_adjacent_item(pkg_dmg_args, '--target')) + self.assertEqual('$I/Product Packaging/chrome_dmg_icon.icns', + _get_adjacent_item(pkg_dmg_args, '--icon')) + self.assertEqual('App Product', + _get_adjacent_item(pkg_dmg_args, '--volname')) + self.assertEqual('$W/empty', _get_adjacent_item(pkg_dmg_args, + '--source')) + + copy_specs = [ + pkg_dmg_args[i + 1] + for i, arg in enumerate(pkg_dmg_args) + if arg == '--copy' + ] + self.assertEqual( + set(copy_specs), + set([ + '$W/App Product.app:/', + '$I/Product Packaging/keystone_install.sh:/.keystone_install', + '$I/Product Packaging/chrome_dmg_background.png:/.background/background.png', + '$I/Product Packaging/chrome_dmg_dsstore:/.DS_Store' + ])) + + def test_package_dmg_customize(self, **kwargs): + dist = model.Distribution( + channel_customize=True, + channel='canary', + app_name_fragment='Canary') + config = dist.to_config(test_config.TestConfig()) + paths = self.paths.replace_work('$W') + + dmg_path = pipeline._package_dmg(paths, dist, config) + self.assertEqual('$O/AppProductCanary-99.0.9999.99.dmg', dmg_path) + + pkg_dmg_args = kwargs['run_command'].mock_calls[0][1][0] + + self.assertEqual(dmg_path, _get_adjacent_item(pkg_dmg_args, '--target')) + self.assertEqual('$I/Product Packaging/chrome_canary_dmg_icon.icns', + _get_adjacent_item(pkg_dmg_args, '--icon')) + self.assertEqual('App Product Canary', + _get_adjacent_item(pkg_dmg_args, '--volname')) + self.assertEqual('$W/empty', _get_adjacent_item(pkg_dmg_args, + '--source')) + + copy_specs = [ + pkg_dmg_args[i + 1] + for i, arg in enumerate(pkg_dmg_args) + if arg == '--copy' + ] + self.assertEqual( + set(copy_specs), + set([ + '$W/App Product Canary.app:/', + '$I/Product Packaging/keystone_install.sh:/.keystone_install', + '$I/Product Packaging/chrome_dmg_background.png:/.background/background.png', + '$I/Product Packaging/chrome_canary_dmg_dsstore:/.DS_Store' + ])) + + def test_package_installer_tools(self, **kwargs): + manager = mock.Mock() + for attr in kwargs: + manager.attach_mock(kwargs[attr], attr) + + config = test_config.TestConfig() + pipeline._package_installer_tools(self.paths, config) + + # Start and end with the work dir. + self.assertEqual( + mock.call.make_dir('$W_1/diff_tools'), manager.mock_calls[0]) + self.assertEqual( + mock.call.shutil.rmtree('$W_1'), manager.mock_calls[-1]) + + self.assertEqual( + mock.call.run_command( + ['zip', '-9ry', '$O/diff_tools.zip', 'diff_tools'], cwd='$W_1'), + manager.mock_calls[-2]) + + files_to_copy = set([ + 'goobspatch', + 'liblzma_decompress.dylib', + 'goobsdiff', + 'xz', + 'xzdec', + 'dirdiffer.sh', + 'dirpatcher.sh', + 'dmgdiffer.sh', + 'keystone_install.sh', + 'pkg-dmg', + ]) + copied_files = [] + for call in manager.mock_calls: + if call[0] == 'copy_files': + args = call[1] + self.assertTrue(args[0].startswith('$I/Product Packaging/')) + self.assertEqual('$W_1/diff_tools', args[1]) + copied_files.append(os.path.basename(args[0])) + + self.assertEqual(len(copied_files), len(files_to_copy)) + self.assertEqual(set(copied_files), files_to_copy) + + files_to_sign = set([ + 'goobspatch', + 'liblzma_decompress.dylib', + 'goobsdiff', + 'xz', + 'xzdec', + ]) + signed_files = [] + verified_files = [] + + for call in manager.mock_calls: + args = call[1] + if call[0] == 'sign_part': + signed_files.append(os.path.basename(args[2].path)) + elif call[0] == 'verify_part': + path = os.path.basename(args[1].path) + self.assertTrue(path in signed_files) + verified_files.append(path) + + self.assertEqual(len(signed_files), len(files_to_sign)) + self.assertEqual(len(verified_files), len(files_to_sign)) + self.assertEqual(set(signed_files), files_to_sign) + self.assertEqual(set(verified_files), files_to_sign) + + @mock.patch('signing.pipeline._package_installer_tools') + @mock.patch('signing.modification.customize_distribution') + def test_sign_basic_distribution(self, customize, package_installer, + **kwargs): + manager = mock.Mock() + for attr in kwargs: + manager.attach_mock(kwargs[attr], attr) + manager.attach_mock(customize, 'customize_distribution') + manager.attach_mock(package_installer, 'package_installer_tools') + + config = test_config.TestConfig() + pipeline.sign_all(self.paths, config) + + package_installer.assert_called_once() + + manager.assert_has_calls([ + # Then the customization and distribution. + mock.call.copy_files('$I/App Product.app', '$W_1'), + mock.call.customize_distribution(mock.ANY, mock.ANY, mock.ANY), + mock.call.sign_chrome(mock.ANY, mock.ANY), + mock.call.make_dir('$W_1/empty'), + mock.call.run_command(mock.ANY), + mock.call.sign_part(mock.ANY, mock.ANY, mock.ANY), + mock.call.verify_part(mock.ANY, mock.ANY), + mock.call.shutil.rmtree('$W_1'), + + # Finally the installer tools. + mock.call.package_installer_tools(mock.ANY, mock.ANY), + ]) + + run_command = [ + call for call in manager.mock_calls if call[0] == 'run_command' + ][0] + pkg_dmg_args = run_command[1][0] + + self.assertEqual('$O/AppProduct-99.0.9999.99.dmg', + _get_adjacent_item(pkg_dmg_args, '--target')) + self.assertEqual(config.app_product, + _get_adjacent_item(pkg_dmg_args, '--volname')) + self.assertEqual('AppProduct-99.0.9999.99', + kwargs['sign_part'].mock_calls[0][1][2].identifier) + + @mock.patch('signing.pipeline._package_installer_tools') + @mock.patch('signing.modification.customize_distribution') + def test_sign_no_dmg(self, customize, package_installer, **kwargs): + manager = mock.Mock() + for attr in kwargs: + manager.attach_mock(kwargs[attr], attr) + manager.attach_mock(customize, 'customize_distribution') + manager.attach_mock(package_installer, 'package_installer_tools') + + config = test_config.TestConfig() + pipeline.sign_all(self.paths, config, package_dmg=False) + + package_installer.assert_called_once() + + manager.assert_has_calls([ + # Then the customization and distribution. + mock.call.copy_files('$I/App Product.app', '$W_1'), + mock.call.customize_distribution(mock.ANY, mock.ANY, mock.ANY), + mock.call.sign_chrome(mock.ANY, mock.ANY), + mock.call.make_dir('$O/AppProduct-99.0.9999.99'), + mock.call.copy_files('$W_1/App Product.app', + '$O/AppProduct-99.0.9999.99'), + mock.call.shutil.rmtree('$W_1'), + + # Finally the installer tools. + mock.call.package_installer_tools(mock.ANY, mock.ANY), + ]) + + self.assertEqual(0, kwargs['run_command'].call_count) + + @mock.patch('signing.pipeline._package_installer_tools') + @mock.patch('signing.modification.customize_distribution') + def test_sign_branded_distribution(self, customize, package_installer, + **kwargs): + manager = mock.Mock() + for attr in kwargs: + manager.attach_mock(kwargs[attr], attr) + manager.attach_mock(customize, 'customize_distribution') + manager.attach_mock(package_installer, 'package_installer_tools') + + class Config(test_config.TestConfig): + + @property + def distributions(self): + return [ + model.Distribution(), + model.Distribution( + branding_code='MOO', dmg_name_fragment='ForCows'), + ] + + config = Config() + pipeline.sign_all(self.paths, config) + + package_installer.assert_called_once() + self.assertEqual(2, customize.call_count) + + manager.assert_has_calls([ + # First distribution. + mock.call.copy_files('$I/App Product.app', '$W_1'), + mock.call.customize_distribution(mock.ANY, mock.ANY, mock.ANY), + mock.call.sign_chrome(mock.ANY, mock.ANY), + mock.call.make_dir('$W_1/empty'), + mock.call.run_command(mock.ANY), + mock.call.sign_part(mock.ANY, mock.ANY, mock.ANY), + mock.call.verify_part(mock.ANY, mock.ANY), + mock.call.shutil.rmtree('$W_1'), + + # Customized distribution. + mock.call.copy_files('$I/App Product.app', '$W_2'), + mock.call.customize_distribution(mock.ANY, mock.ANY, mock.ANY), + mock.call.sign_chrome(mock.ANY, mock.ANY), + mock.call.make_dir('$W_2/empty'), + mock.call.run_command(mock.ANY), + mock.call.sign_part(mock.ANY, mock.ANY, mock.ANY), + mock.call.verify_part(mock.ANY, mock.ANY), + mock.call.shutil.rmtree('$W_2'), + + # Finally the installer tools. + mock.call.package_installer_tools(mock.ANY, mock.ANY), + ]) + + run_commands = [ + call for call in manager.mock_calls if call[0] == 'run_command' + ] + + target = _get_adjacent_item(run_commands[0][1][0], '--target') + self.assertEqual('$O/AppProduct-99.0.9999.99.dmg', target) + self.assertEqual('AppProduct-99.0.9999.99', + kwargs['sign_part'].mock_calls[0][1][2].identifier) + + target = _get_adjacent_item(run_commands[1][1][0], '--target') + self.assertEqual('$O/AppProduct-99.0.9999.99-ForCows.dmg', target) + self.assertEqual('AppProduct-99.0.9999.99-MOO', + kwargs['sign_part'].mock_calls[1][1][2].identifier)
diff --git a/chrome/service/service_utility_process_host.cc b/chrome/service/service_utility_process_host.cc index ad86bb0..91b4fba 100644 --- a/chrome/service/service_utility_process_host.cc +++ b/chrome/service/service_utility_process_host.cc
@@ -42,6 +42,7 @@ #include "content/public/common/service_manager_connection.h" #include "content/public/common/service_names.mojom.h" #include "mojo/public/cpp/bindings/binding.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/platform/named_platform_channel.h" #include "mojo/public/cpp/platform/platform_channel.h" #include "mojo/public/cpp/platform/platform_channel_endpoint.h" @@ -366,34 +367,33 @@ service_manager_ = std::make_unique<service_manager::ServiceManager>( std::make_unique<NullServiceProcessLauncherFactory>(), manifests); - service_manager::mojom::ServicePtr browser_proxy; + service_manager::mojom::ServicePtrInfo browser_proxy; service_manager_connection_ = content::ServiceManagerConnection::Create( mojo::MakeRequest(&browser_proxy), base::SequencedTaskRunnerHandle::Get()); service_manager_connection_->AddConnectionFilter( std::make_unique<ConnectionFilterImpl>()); - service_manager::mojom::PIDReceiverPtr pid_receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; service_manager_->RegisterService( service_manager::Identity(content::mojom::kBrowserServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(browser_proxy), mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(base::GetCurrentProcId()); - pid_receiver.reset(); + std::move(browser_proxy), metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(base::GetCurrentProcId()); + metadata.reset(); std::string mojo_bootstrap_token = base::NumberToString(base::RandUint64()); - service_manager::mojom::ServicePtr utility_service; - utility_service.Bind(service_manager::mojom::ServicePtrInfo( - mojo_invitation_.AttachMessagePipe(mojo_bootstrap_token), 0u)); + service_manager::mojom::ServicePtrInfo utility_service( + mojo_invitation_.AttachMessagePipe(mojo_bootstrap_token), 0u); utility_service_instance_identity_ = service_manager::Identity(content::mojom::kUtilityServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()); service_manager_->RegisterService(utility_service_instance_identity_, std::move(utility_service), - mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(base::GetCurrentProcId()); + metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(base::GetCurrentProcId()); service_manager_connection_->Start();
diff --git a/chrome/services/cups_ipp_parser/BUILD.gn b/chrome/services/cups_ipp_parser/BUILD.gn index 88a16bc5..bccae5f1e 100644 --- a/chrome/services/cups_ipp_parser/BUILD.gn +++ b/chrome/services/cups_ipp_parser/BUILD.gn
@@ -16,6 +16,7 @@ deps = [ "//base", + "//chrome/services/cups_proxy/public/cpp", "//mojo/public/cpp/bindings", "//net", ]
diff --git a/chrome/services/cups_ipp_parser/DEPS b/chrome/services/cups_ipp_parser/DEPS new file mode 100644 index 0000000..831ddb4 --- /dev/null +++ b/chrome/services/cups_ipp_parser/DEPS
@@ -0,0 +1,3 @@ +include_rules = [ + "+chrome/services/cups_proxy/public/cpp" +]
diff --git a/chrome/services/cups_ipp_parser/ipp_parser.cc b/chrome/services/cups_ipp_parser/ipp_parser.cc index fbb1539..88ed77b 100644 --- a/chrome/services/cups_ipp_parser/ipp_parser.cc +++ b/chrome/services/cups_ipp_parser/ipp_parser.cc
@@ -6,10 +6,13 @@ #include <cups/cups.h> #include <memory> +#include <string> #include <utility> +#include <vector> #include "base/optional.h" #include "chrome/services/cups_ipp_parser/public/cpp/ipp_converter.h" +#include "chrome/services/cups_proxy/public/cpp/type_conversions.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "net/http/http_util.h"
diff --git a/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.cpp b/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.cpp index c9927bf..7383914 100644 --- a/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.cpp +++ b/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.cpp
@@ -2,7 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ipp_converter.h" +#include "chrome/services/cups_ipp_parser/public/cpp/ipp_converter.h" + +#include <algorithm> +#include <string> +#include <utility> +#include <vector> #include "base/strings/strcat.h" #include "base/strings/string_split.h" @@ -360,27 +365,4 @@ return ret; } -// Implicit conversion is safe since the conversion preserves memory layout. -std::vector<uint8_t> ConvertToByteBuffer(base::StringPiece char_buffer) { - std::vector<uint8_t> byte_buffer; - byte_buffer.resize(char_buffer.size()); - - std::copy(char_buffer.begin(), char_buffer.end(), byte_buffer.begin()); - return byte_buffer; -} - -// Implicit conversion is safe since the conversion preserves memory layout. -std::vector<char> ConvertToCharBuffer(base::span<const uint8_t> byte_buffer) { - std::vector<char> char_buffer; - char_buffer.resize(byte_buffer.size()); - - std::copy(byte_buffer.begin(), byte_buffer.end(), char_buffer.begin()); - return char_buffer; -} - -std::string ConvertToString(base::span<const uint8_t> byte_buffer) { - std::vector<char> char_buffer = ConvertToCharBuffer(byte_buffer); - return std::string(char_buffer.begin(), char_buffer.end()); -} - } // namespace ipp_converter
diff --git a/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.h b/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.h index 9637305f..f534f807 100644 --- a/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.h +++ b/chrome/services/cups_ipp_parser/public/cpp/ipp_converter.h
@@ -88,11 +88,6 @@ // Note: This function does not take ownership of |ipp|. chrome::mojom::IppMessagePtr ConvertIppToMojo(ipp_t* ipp); -// Common converters for working with arbitrary byte buffers. -std::vector<uint8_t> ConvertToByteBuffer(base::StringPiece char_buffer); -std::vector<char> ConvertToCharBuffer(base::span<const uint8_t> byte_buffer); -std::string ConvertToString(base::span<const uint8_t> byte_buffer); - } // namespace ipp_converter #endif // CHROME_SERVICES_CUPS_IPP_PARSER_PUBLIC_CPP_IPP_CONVERTER_H_
diff --git a/chrome/services/cups_proxy/public/cpp/BUILD.gn b/chrome/services/cups_proxy/public/cpp/BUILD.gn index f507c8e9cc..93c5350 100644 --- a/chrome/services/cups_proxy/public/cpp/BUILD.gn +++ b/chrome/services/cups_proxy/public/cpp/BUILD.gn
@@ -7,6 +7,17 @@ assert(is_chromeos, "Non-Chrome-OS builds must not depend on this") +source_set("cpp") { + sources = [ + "type_conversions.cpp", + "type_conversions.h", + ] + + deps = [ + "//base", + ] +} + source_set("manifest") { sources = [ "manifest.cc",
diff --git a/chrome/services/cups_proxy/public/cpp/type_conversions.cpp b/chrome/services/cups_proxy/public/cpp/type_conversions.cpp new file mode 100644 index 0000000..15c3be5 --- /dev/null +++ b/chrome/services/cups_proxy/public/cpp/type_conversions.cpp
@@ -0,0 +1,39 @@ +// Copyright 2018 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 "chrome/services/cups_proxy/public/cpp/type_conversions.h" + +#include <algorithm> +#include <string> +#include <vector> + +#include "base/containers/span.h" +#include "base/strings/string_piece.h" + +namespace ipp_converter { + +// Implicit conversion is safe since the conversion preserves memory layout. +std::vector<uint8_t> ConvertToByteBuffer(base::StringPiece char_buffer) { + std::vector<uint8_t> byte_buffer; + byte_buffer.resize(char_buffer.size()); + + std::copy(char_buffer.begin(), char_buffer.end(), byte_buffer.begin()); + return byte_buffer; +} + +// Implicit conversion is safe since the conversion preserves memory layout. +std::vector<char> ConvertToCharBuffer(base::span<const uint8_t> byte_buffer) { + std::vector<char> char_buffer; + char_buffer.resize(byte_buffer.size()); + + std::copy(byte_buffer.begin(), byte_buffer.end(), char_buffer.begin()); + return char_buffer; +} + +std::string ConvertToString(base::span<const uint8_t> byte_buffer) { + std::vector<char> char_buffer = ConvertToCharBuffer(byte_buffer); + return std::string(char_buffer.begin(), char_buffer.end()); +} + +} // namespace ipp_converter
diff --git a/chrome/services/cups_proxy/public/cpp/type_conversions.h b/chrome/services/cups_proxy/public/cpp/type_conversions.h new file mode 100644 index 0000000..0ce6cc2 --- /dev/null +++ b/chrome/services/cups_proxy/public/cpp/type_conversions.h
@@ -0,0 +1,23 @@ +// Copyright 2019 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 CHROME_SERVICES_CUPS_PROXY_PUBLIC_CPP_TYPE_CONVERSIONS_H_ +#define CHROME_SERVICES_CUPS_PROXY_PUBLIC_CPP_TYPE_CONVERSIONS_H_ + +#include <string> +#include <vector> + +#include "base/containers/span.h" +#include "base/strings/string_piece.h" + +namespace ipp_converter { + +// Common converters for working with arbitrary byte buffers. +std::vector<uint8_t> ConvertToByteBuffer(base::StringPiece char_buffer); +std::vector<char> ConvertToCharBuffer(base::span<const uint8_t> byte_buffer); +std::string ConvertToString(base::span<const uint8_t> byte_buffer); + +} // namespace ipp_converter + +#endif // CHROME_SERVICES_CUPS_PROXY_PUBLIC_CPP_TYPE_CONVERSIONS_H_
diff --git a/chrome/test/data/local_ntp/local_ntp_browsertest.html b/chrome/test/data/local_ntp/local_ntp_browsertest.html index 19fe59d0..be92322 100644 --- a/chrome/test/data/local_ntp/local_ntp_browsertest.html +++ b/chrome/test/data/local_ntp/local_ntp_browsertest.html
@@ -148,11 +148,6 @@ </div> <div id="bg-sel-tiles" tabindex="0"></div> <div id="bg-sel-footer"> - <label id="bg-daily-refresh" class="switch"> - <input type="checkbox"> - <span class="toggle"></span> - </label> - <div id="bg-sel-refresh-text"></div> <button id="bg-sel-footer-cancel" class="bg-sel-footer-button paper secondary ripple" tabindex="0"></button> <button id="bg-sel-footer-done" class="bg-sel-footer-button paper primary ripple"
diff --git a/chrome/test/data/webui/downloads/manager_tests.js b/chrome/test/data/webui/downloads/manager_tests.js index 329d5a33e..ddf31ea8 100644 --- a/chrome/test/data/webui/downloads/manager_tests.js +++ b/chrome/test/data/webui/downloads/manager_tests.js
@@ -24,23 +24,22 @@ assertEquals(manager, downloads.Manager.get()); }); - test('long URLs elide', function() { + test('long URLs elide', async () => { pageRouterProxy.insertItems(0, [createDownload({ fileName: 'file name', state: downloads.States.COMPLETE, sinceString: 'Today', url: 'a'.repeat(1000), })]); - return pageRouterProxy.$.flushForTesting().then(() => { - Polymer.dom.flush(); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); - const item = manager.$$('downloads-item'); - assertLT(item.$$('#url').offsetWidth, item.offsetWidth); - assertEquals(300, item.$$('#url').textContent.length); - }); + const item = manager.$$('downloads-item'); + assertLT(item.$$('#url').offsetWidth, item.offsetWidth); + assertEquals(300, item.$$('#url').textContent.length); }); - test('inserting items at beginning render dates correctly', function() { + test('inserting items at beginning render dates correctly', async () => { const countDates = () => { const items = manager.shadowRoot.querySelectorAll('downloads-item'); return Array.from(items).reduce((soFar, item) => { @@ -48,75 +47,87 @@ }, 0); }; - let download1 = createDownload(); - let download2 = createDownload(); + const download1 = createDownload(); + const download2 = createDownload(); pageRouterProxy.insertItems(0, [download1, download2]); - return pageRouterProxy.$.flushForTesting() - .then(() => { - Polymer.dom.flush(); - assertEquals(1, countDates()); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); + assertEquals(1, countDates()); - pageRouterProxy.removeItem(0); - return pageRouterProxy.$.flushForTesting(); - }) - .then(() => { - Polymer.dom.flush(); - assertEquals(1, countDates()); + pageRouterProxy.removeItem(0); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); + assertEquals(1, countDates()); - pageRouterProxy.insertItems(0, [download1]); - return pageRouterProxy.$.flushForTesting(); - }) - .then(() => { - Polymer.dom.flush(); - assertEquals(1, countDates()); - }); + pageRouterProxy.insertItems(0, [download1]); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); + assertEquals(1, countDates()); }); - test('update', function() { - let dangerousDownload = createDownload({ + test('update', async () => { + const dangerousDownload = createDownload({ dangerType: downloads.DangerType.DANGEROUS_FILE, state: downloads.States.DANGEROUS, }); pageRouterProxy.insertItems(0, [dangerousDownload]); - return pageRouterProxy.$.flushForTesting() - .then(() => { - Polymer.dom.flush(); - assertTrue(!!manager.$$('downloads-item').$$('.dangerous')); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); + assertTrue(!!manager.$$('downloads-item').$$('.dangerous')); - let safeDownload = Object.assign({}, dangerousDownload, { - dangerType: downloads.DangerType.NOT_DANGEROUS, - state: downloads.States.COMPLETE, - }); - pageRouterProxy.updateItem(0, safeDownload); - return pageRouterProxy.$.flushForTesting(); - }) - .then(() => { - Polymer.dom.flush(); - assertFalse(!!manager.$$('downloads-item').$$('.dangerous')); - }); + const safeDownload = Object.assign({}, dangerousDownload, { + dangerType: downloads.DangerType.NOT_DANGEROUS, + state: downloads.States.COMPLETE, + }); + pageRouterProxy.updateItem(0, safeDownload); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); + assertFalse(!!manager.$$('downloads-item').$$('.dangerous')); }); - test('remove', () => { + test('remove', async () => { pageRouterProxy.insertItems(0, [createDownload({ fileName: 'file name', state: downloads.States.COMPLETE, sinceString: 'Today', url: 'a'.repeat(1000), })]); - return pageRouterProxy.$.flushForTesting() - .then(() => { - Polymer.dom.flush(); - const item = manager.$$('downloads-item'); + await pageRouterProxy.$.flushForTesting(); + Polymer.dom.flush(); + const item = manager.$$('downloads-item'); - item.$.remove.click(); - return testBrowserProxy.handler.whenCalled('remove'); - }) - .then(() => { - Polymer.dom.flush(); - const list = manager.$$('iron-list'); - assertTrue(list.hidden); - }); + item.$.remove.click(); + await testBrowserProxy.handler.whenCalled('remove'); + Polymer.dom.flush(); + const list = manager.$$('iron-list'); + assertTrue(list.hidden); + }); + + test('toolbar hasClearableDownloads set correctly', async () => { + const clearable = createDownload(); + pageRouterProxy.insertItems(0, [clearable]); + const checkNotClearable = async state => { + const download = createDownload({state: state}); + pageRouterProxy.updateItem(0, clearable); + await pageRouterProxy.$.flushForTesting(); + assertTrue(manager.$.toolbar.hasClearableDownloads); + pageRouterProxy.updateItem(0, download); + await pageRouterProxy.$.flushForTesting(); + assertFalse(manager.$.toolbar.hasClearableDownloads); + }; + await checkNotClearable(downloads.States.DANGEROUS); + await checkNotClearable(downloads.States.IN_PROGRESS); + await checkNotClearable(downloads.States.PAUSED); + + pageRouterProxy.updateItem(0, clearable); + pageRouterProxy.insertItems( + 1, [createDownload({state: downloads.States.DANGEROUS})]); + await pageRouterProxy.$.flushForTesting(); + assertTrue(manager.$.toolbar.hasClearableDownloads); + pageRouterProxy.removeItem(0); + await pageRouterProxy.$.flushForTesting(); + assertFalse(manager.$.toolbar.hasClearableDownloads); }); test('loadTimeData contains isManaged and managedByOrg', function() {
diff --git a/chrome/test/data/webui/downloads/toolbar_tests.js b/chrome/test/data/webui/downloads/toolbar_tests.js index 31b10d98..b48757e3 100644 --- a/chrome/test/data/webui/downloads/toolbar_tests.js +++ b/chrome/test/data/webui/downloads/toolbar_tests.js
@@ -35,4 +35,13 @@ toolbar.$.toolbar.fire('search-changed', 'a '); // Same term plus a space. assertFalse(toolbar.spinnerActive); }); + + test('clear all shown/hidden', () => { + const clearAll = toolbar.$$('#moreActionsMenu button'); + assertTrue(clearAll.hidden); + toolbar.hasClearableDownloads = true; + assertFalse(clearAll.hidden); + toolbar.$.toolbar.getSearchField().setValue('test'); + assertTrue(clearAll.hidden); + }); });
diff --git a/chrome/test/data/webui/settings/cr_settings_browsertest.js b/chrome/test/data/webui/settings/cr_settings_browsertest.js index 3fddbc6..2f65eed 100644 --- a/chrome/test/data/webui/settings/cr_settings_browsertest.js +++ b/chrome/test/data/webui/settings/cr_settings_browsertest.js
@@ -560,7 +560,8 @@ ]), }; -TEST_F('CrSettingsPeoplePageKerberosAccountsTest', 'All', function() { +// Test is consistently failing. http://crbug.com/960837 +TEST_F('CrSettingsPeoplePageKerberosAccountsTest', 'DISABLED_All', function() { mocha.run(); }); @@ -2522,7 +2523,8 @@ ]), }; -TEST_F('CrSettingsAddUsersTest', 'All', function() { +// Test is consistently failing. http://crbug.com/960837 +TEST_F('CrSettingsAddUsersTest', 'DISABLED_All', function() { mocha.run(); });
diff --git a/chrome/test/data/webui/settings/languages_page_tests.js b/chrome/test/data/webui/settings/languages_page_tests.js index 49029ce..9249f12 100644 --- a/chrome/test/data/webui/settings/languages_page_tests.js +++ b/chrome/test/data/webui/settings/languages_page_tests.js
@@ -622,7 +622,7 @@ spellCheckLanguagesCount); }); - test('only 1 supported language does not show list', () => { + test('only 1 supported language', () => { if (cr.isMac) { return; } @@ -630,13 +630,28 @@ const list = languagesPage.$.spellCheckLanguagesList; assertFalse(list.hidden); - // Update supported languages to just 1 languageHelper.setPrefValue('intl.accept_languages', 'en-US'); if (cr.isChromeOS) { languageHelper.setPrefValue( 'settings.language.preferred_languages', 'en-US'); } + + // Update supported languages to just 1 language English with spell + // check disabled for that language + languageHelper.setPrefValue('spellcheck.dictionaries', []); assertTrue(list.hidden); + assertFalse( + languageHelper.getPref('browser.enable_spellchecking').value); + + // Update supported languages to just 1 language English that finished + // downloading and is now ready + languageHelper.setPrefValue('spellcheck.dictionaries', ['en-US']); + languageHelper.set('languages.enabled.0.downloadDictionaryStatus', { + isReady: true, + }); + assertTrue(list.hidden); + assertTrue( + languageHelper.getPref('browser.enable_spellchecking').value); }); test('no supported languages', () => {
diff --git a/chromecast/external_mojo/public/cpp/external_mojo_broker.cc b/chromecast/external_mojo/public/cpp/external_mojo_broker.cc index 6f7d8f98..9fd07fb 100644 --- a/chromecast/external_mojo/public/cpp/external_mojo_broker.cc +++ b/chromecast/external_mojo/public/cpp/external_mojo_broker.cc
@@ -19,6 +19,7 @@ #include "chromecast/external_mojo/public/cpp/common.h" #include "chromecast/external_mojo/public/mojom/connector.mojom.h" #include "mojo/public/cpp/bindings/binding_set.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/platform/named_platform_channel.h" #include "mojo/public/cpp/platform/platform_channel_endpoint.h" #include "mojo/public/cpp/platform/platform_handle.h" @@ -144,7 +145,8 @@ void RegisterServiceInstance( const ::service_manager::Identity& identity, mojo::ScopedMessagePipeHandle service, - service_manager::mojom::PIDReceiverRequest pid_receiver_request, + mojo::PendingReceiver<service_manager::mojom::ProcessMetadata> + metadata_receiver, RegisterServiceInstanceCallback callback) override { // TODO(kmackay) Could add a wrapper as needed. NOTIMPLEMENTED(); @@ -185,17 +187,16 @@ for (const auto& service_name : external_services_to_proxy) { LOG(INFO) << "Register proxy for external " << service_name; - service_manager::mojom::ServicePtr service_ptr; + service_manager::mojom::ServicePtrInfo service_ptr; registered_external_services_[service_name] = std::make_unique<ExternalServiceProxy>( this, service_name, mojo::MakeRequest(&service_ptr)); - service_manager::mojom::PIDReceiverPtr pid_receiver; connector_->RegisterServiceInstance( service_manager::Identity(service_name, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(service_ptr), mojo::MakeRequest(&pid_receiver), + std::move(service_ptr), mojo::NullReceiver() /* metadata_receiver */, base::BindOnce(&OnRegisterServiceResult, service_name)); } }
diff --git a/chromeos/services/assistant/service.cc b/chromeos/services/assistant/service.cc index 69d09b2ff..bdc11c5d 100644 --- a/chromeos/services/assistant/service.cc +++ b/chromeos/services/assistant/service.cc
@@ -7,6 +7,7 @@ #include <algorithm> #include <utility> +#include "ash/public/cpp/session/session_controller.h" #include "ash/public/interfaces/constants.mojom.h" #include "base/bind.h" #include "base/command_line.h" @@ -64,7 +65,6 @@ url_loader_factory_info) : service_binding_(this, std::move(request)), platform_binding_(this), - session_observer_binding_(this), token_refresh_timer_(std::make_unique<base::OneShotTimer>()), main_task_runner_(base::SequencedTaskRunnerHandle::Get()), power_manager_observer_(this), @@ -82,7 +82,13 @@ power_manager_client->RequestStatusUpdate(); } -Service::~Service() = default; +Service::~Service() { + auto* const session_controller = ash::SessionController::Get(); + if (observing_ash_session_ && session_controller) { + session_controller->RemoveSessionActivationObserverForAccountId(account_id_, + this); + } +} void Service::RequestAccessToken() { // Bypass access token fetching under signed out mode. @@ -362,7 +368,7 @@ AssistantManagerService::State::RUNNING); // Using session_observer_binding_ as a flag to control onetime initialization - if (!session_observer_binding_) { + if (!observing_ash_session_) { // Bind to the AssistantController in ash. service_binding_.GetConnector()->BindInterface(ash::mojom::kServiceName, &assistant_controller_); @@ -406,13 +412,9 @@ } void Service::AddAshSessionObserver() { - ash::mojom::SessionControllerPtr session_controller; - service_binding_.GetConnector()->BindInterface(ash::mojom::kServiceName, - &session_controller); - ash::mojom::SessionActivationObserverPtr observer; - session_observer_binding_.Bind(mojo::MakeRequest(&observer)); - session_controller->AddSessionActivationObserverForAccountId( - account_id_, std::move(observer)); + observing_ash_session_ = true; + ash::SessionController::Get()->AddSessionActivationObserverForAccountId( + account_id_, this); } void Service::UpdateListeningState() {
diff --git a/chromeos/services/assistant/service.h b/chromeos/services/assistant/service.h index b51cf64..a77f67ed 100644 --- a/chromeos/services/assistant/service.h +++ b/chromeos/services/assistant/service.h
@@ -10,8 +10,8 @@ #include "ash/public/cpp/assistant/assistant_state_proxy.h" #include "ash/public/cpp/assistant/default_voice_interaction_observer.h" +#include "ash/public/cpp/session/session_activation_observer.h" #include "ash/public/interfaces/assistant_controller.mojom.h" -#include "ash/public/interfaces/session_controller.mojom.h" #include "ash/public/interfaces/voice_interaction_controller.mojom.h" #include "base/callback.h" #include "base/component_export.h" @@ -56,7 +56,7 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE) Service : public service_manager::Service, public chromeos::PowerManagerClient::Observer, - public ash::mojom::SessionActivationObserver, + public ash::SessionActivationObserver, public mojom::AssistantPlatform, public ash::DefaultVoiceInteractionObserver { public: @@ -126,7 +126,7 @@ void PowerChanged(const power_manager::PowerSupplyProperties& prop) override; void SuspendDone(const base::TimeDelta& sleep_duration) override; - // ash::mojom::SessionActivationObserver overrides: + // ash::SessionActivationObserver overrides: void OnSessionActivated(bool activated) override; void OnLockStateChanged(bool locked) override; @@ -171,8 +171,7 @@ mojo::BindingSet<mojom::Assistant> bindings_; mojo::Binding<mojom::AssistantPlatform> platform_binding_; - mojo::Binding<ash::mojom::SessionActivationObserver> - session_observer_binding_; + bool observing_ash_session_ = false; mojom::ClientPtr client_; mojom::DeviceActionsPtr device_actions_;
diff --git a/chromeos/services/ime/ime_sandbox_hook.cc b/chromeos/services/ime/ime_sandbox_hook.cc index 43f0b0a..b80e54a 100644 --- a/chromeos/services/ime/ime_sandbox_hook.cc +++ b/chromeos/services/ime/ime_sandbox_hook.cc
@@ -112,6 +112,8 @@ GetImeFilePermissions(), service_manager::SandboxLinux::PreSandboxHook(), options); + + instance->EngageNamespaceSandboxIfPossible(); return true; }
diff --git a/chromeos/services/ime/ime_service_unittest.cc b/chromeos/services/ime/ime_service_unittest.cc index ac775d0..fc84403 100644 --- a/chromeos/services/ime/ime_service_unittest.cc +++ b/chromeos/services/ime/ime_service_unittest.cc
@@ -13,7 +13,6 @@ #include "mojo/public/cpp/bindings/interface_request.h" #include "services/service_manager/public/cpp/service_binding.h" #include "services/service_manager/public/cpp/test/test_connector_factory.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/password_manager/core/browser/password_manager_client.h b/components/password_manager/core/browser/password_manager_client.h index 86e0c62..791d341f 100644 --- a/components/password_manager/core/browser/password_manager_client.h +++ b/components/password_manager/core/browser/password_manager_client.h
@@ -253,8 +253,12 @@ // happens. This is called by the PasswordReuseDetectionManager when a // protected password is typed on the wrong domain. This may trigger a // warning dialog if it looks like the page is phishy. + // The |username| is the user name of the reused password. The user name + // can be an email or a username for a non-GAIA or saved-password reuse. No + // validation has been done on it. virtual void CheckProtectedPasswordEntry( metrics_util::PasswordType reused_password_type, + const std::string& username, const std::vector<std::string>& matching_domains, bool password_field_exists) = 0;
diff --git a/components/password_manager/core/browser/password_reuse_detection_manager.cc b/components/password_manager/core/browser/password_reuse_detection_manager.cc index af43d8de..c987e843 100644 --- a/components/password_manager/core/browser/password_reuse_detection_manager.cc +++ b/components/password_manager/core/browser/password_reuse_detection_manager.cc
@@ -125,8 +125,12 @@ #if defined(FULL_SAFE_BROWSING) if (reused_password_type == metrics_util::PasswordType::SYNC_PASSWORD) client_->LogPasswordReuseDetectedEvent(); + std::string username = reused_protected_password_hash.has_value() + ? reused_protected_password_hash->username + : ""; - client_->CheckProtectedPasswordEntry(reused_password_type, matching_domains, + client_->CheckProtectedPasswordEntry(reused_password_type, username, + matching_domains, password_field_detected); #endif }
diff --git a/components/password_manager/core/browser/stub_password_manager_client.cc b/components/password_manager/core/browser/stub_password_manager_client.cc index 63d4154..1c278108 100644 --- a/components/password_manager/core/browser/stub_password_manager_client.cc +++ b/components/password_manager/core/browser/stub_password_manager_client.cc
@@ -89,6 +89,7 @@ void StubPasswordManagerClient::CheckProtectedPasswordEntry( metrics_util::PasswordType reused_password_type, + const std::string& username, const std::vector<std::string>& matching_domains, bool password_field_exists) {}
diff --git a/components/password_manager/core/browser/stub_password_manager_client.h b/components/password_manager/core/browser/stub_password_manager_client.h index a6822e6..01a31817 100644 --- a/components/password_manager/core/browser/stub_password_manager_client.h +++ b/components/password_manager/core/browser/stub_password_manager_client.h
@@ -61,6 +61,7 @@ const GURL& frame_url) override; void CheckProtectedPasswordEntry( metrics_util::PasswordType reused_password_type, + const std::string& username, const std::vector<std::string>& matching_domains, bool password_field_exists) override; void LogPasswordReuseDetectedEvent() override;
diff --git a/components/policy/core/common/policy_map_unittest.cc b/components/policy/core/common/policy_map_unittest.cc index d124eaea..f2f45ed8 100644 --- a/components/policy/core/common/policy_map_unittest.cc +++ b/components/policy/core/common/policy_map_unittest.cc
@@ -50,7 +50,8 @@ nullptr, std::move(external_data_fetcher)); } -std::vector<base::Value> GetListStorage(const std::vector<std::string> entry) { +template <class T> +std::vector<base::Value> GetListStorage(const std::vector<T> entry) { std::vector<base::Value> result; for (const auto& it : entry) result.emplace_back(base::Value(it)); @@ -308,11 +309,36 @@ } TEST_F(PolicyMapTest, MergeValuesList) { - std::vector<base::Value> abcd = GetListStorage({"a", "b", "c", "d"}); - std::vector<base::Value> abc = GetListStorage({"a", "b", "c"}); - std::vector<base::Value> ab = GetListStorage({"a", "b"}); - std::vector<base::Value> cd = GetListStorage({"c", "d"}); - std::vector<base::Value> ef = GetListStorage({"e", "f"}); + std::vector<base::Value> abcd = + GetListStorage<std::string>({"a", "b", "c", "d"}); + std::vector<base::Value> abc = GetListStorage<std::string>({"a", "b", "c"}); + std::vector<base::Value> ab = GetListStorage<std::string>({"a", "b"}); + std::vector<base::Value> cd = GetListStorage<std::string>({"c", "d"}); + std::vector<base::Value> ef = GetListStorage<std::string>({"e", "f"}); + + std::vector<base::Value> int12 = GetListStorage<int>({1, 2}); + std::vector<base::Value> int34 = GetListStorage<int>({3, 4}); + std::vector<base::Value> int56 = GetListStorage<int>({5, 6}); + std::vector<base::Value> int1234 = GetListStorage<int>({1, 2, 3, 4}); + + base::Value dict_ab(base::Value::Type::DICTIONARY); + dict_ab.SetBoolKey("a", true); + dict_ab.SetBoolKey("b", false); + base::Value dict_c(base::Value::Type::DICTIONARY); + dict_c.SetBoolKey("c", false); + base::Value dict_d(base::Value::Type::DICTIONARY); + dict_d.SetBoolKey("d", false); + + std::vector<base::Value> list_dict_abd; + list_dict_abd.emplace_back(dict_ab.Clone()); + list_dict_abd.emplace_back(dict_d.Clone()); + std::vector<base::Value> list_dict_c; + list_dict_c.emplace_back(dict_c.Clone()); + + std::vector<base::Value> list_dict_abcd; + list_dict_abcd.emplace_back(dict_ab.Clone()); + list_dict_abcd.emplace_back(dict_d.Clone()); + list_dict_abcd.emplace_back(dict_c.Clone()); // Case 1 - kTestPolicyName1 // Enterprise default policies should not be merged with other sources. @@ -344,19 +370,20 @@ // level and scope. PolicyMap::Entry cloud_machine_recommended( POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, - POLICY_SOURCE_PRIORITY_CLOUD, std::make_unique<base::Value>(ab), nullptr); + POLICY_SOURCE_PRIORITY_CLOUD, std::make_unique<base::Value>(int12), + nullptr); cloud_machine_recommended.AddConflictingPolicy(PolicyMap::Entry( POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, - std::make_unique<base::Value>(cd), nullptr)); + std::make_unique<base::Value>(int34), nullptr)); cloud_machine_recommended.AddConflictingPolicy(PolicyMap::Entry( POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM, - std::make_unique<base::Value>(ef), nullptr)); + std::make_unique<base::Value>(int56), nullptr)); PolicyMap::Entry merged_machine_recommended( POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, POLICY_SOURCE_MERGED, - std::make_unique<base::Value>(abcd), nullptr); + std::make_unique<base::Value>(int1234), nullptr); merged_machine_recommended.AddConflictingPolicy(cloud_machine_recommended); // Case 3 - kTestPolicyName3 @@ -413,6 +440,26 @@ POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_PRIORITY_CLOUD, std::make_unique<base::Value>(ef), nullptr)); + // Case 7 - kTestPolicyName7 + // Lists of dictionaries should not have duplicates. + PolicyMap::Entry platform_user_mandatory_dict( + POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_PLATFORM, + std::make_unique<base::Value>(list_dict_abd), nullptr); + + platform_user_mandatory_dict.AddConflictingPolicy(PolicyMap::Entry( + POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_ACTIVE_DIRECTORY, + std::make_unique<base::Value>(list_dict_abd), nullptr)); + + platform_user_mandatory_dict.AddConflictingPolicy( + PolicyMap::Entry(POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, + POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE, + std::make_unique<base::Value>(list_dict_c), nullptr)); + + PolicyMap::Entry merged_user_mandatory_dict( + POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, POLICY_SOURCE_MERGED, + std::make_unique<base::Value>(list_dict_abcd), nullptr); + merged_user_mandatory_dict.AddConflictingPolicy(platform_user_mandatory_dict); + PolicyMap policy_not_merged; policy_not_merged.Set(kTestPolicyName1, platform_user_mandatory.DeepCopy()); policy_not_merged.Set(kTestPolicyName2, cloud_machine_recommended.DeepCopy()); @@ -420,6 +467,8 @@ policy_not_merged.Set(kTestPolicyName4, ad_machine_mandatory.DeepCopy()); policy_not_merged.Set(kTestPolicyName5, bad_stuff.DeepCopy()); policy_not_merged.Set(kTestPolicyName6, user_not_merged.DeepCopy()); + policy_not_merged.Set(kTestPolicyName7, + platform_user_mandatory_dict.DeepCopy()); PolicyMap expected_list_merged; expected_list_merged.Set(kTestPolicyName1, merged_user_mandatory.DeepCopy()); @@ -430,6 +479,8 @@ expected_list_merged.Set(kTestPolicyName4, ad_machine_mandatory.DeepCopy()); expected_list_merged.Set(kTestPolicyName5, expected_bad_stuff.DeepCopy()); expected_list_merged.Set(kTestPolicyName6, user_not_merged.DeepCopy()); + expected_list_merged.Set(kTestPolicyName7, + merged_user_mandatory_dict.DeepCopy()); PolicyMap list_merged; list_merged.CopyFrom(policy_not_merged); @@ -448,9 +499,9 @@ EXPECT_TRUE(list_merged.Equals(policy_not_merged)); // Merging lists restrictions specified - PolicyListMerger good_policy_list({kTestPolicyName1, kTestPolicyName2, - kTestPolicyName3, kTestPolicyName4, - kTestPolicyName5, kTestPolicyName6}); + PolicyListMerger good_policy_list( + {kTestPolicyName1, kTestPolicyName2, kTestPolicyName3, kTestPolicyName4, + kTestPolicyName5, kTestPolicyName6, kTestPolicyName7}); PolicyListMerger wildcard_policy_list({"*"}); list_merged.MergeValues({&good_policy_list}); EXPECT_TRUE(list_merged.Equals(expected_list_merged)); @@ -463,10 +514,10 @@ } TEST_F(PolicyMapTest, MergeValuesGroup) { - std::vector<base::Value> abc = GetListStorage({"a", "b", "c"}); - std::vector<base::Value> ab = GetListStorage({"a", "b"}); - std::vector<base::Value> cd = GetListStorage({"c", "d"}); - std::vector<base::Value> ef = GetListStorage({"e", "f"}); + std::vector<base::Value> abc = GetListStorage<std::string>({"a", "b", "c"}); + std::vector<base::Value> ab = GetListStorage<std::string>({"a", "b"}); + std::vector<base::Value> cd = GetListStorage<std::string>({"c", "d"}); + std::vector<base::Value> ef = GetListStorage<std::string>({"e", "f"}); // Case 1 - kTestPolicyName1 // Should not be affected by the atomic groups
diff --git a/components/policy/core/common/policy_merger.cc b/components/policy/core/common/policy_merger.cc index 940a67a..bf77b030 100644 --- a/components/policy/core/common/policy_merger.cc +++ b/components/policy/core/common/policy_merger.cc
@@ -49,13 +49,17 @@ PolicyMap::Entry PolicyListMerger::DoMerge( const PolicyMap::Entry& policy) const { std::vector<const base::Value*> value; - std::set<std::string> duplicates; + auto compare_value_ptr = [](const base::Value* a, const base::Value* b) { + return *a < *b; + }; + std::set<const base::Value*, decltype(compare_value_ptr)> duplicates( + compare_value_ptr); bool merged = false; for (const base::Value& val : policy.value->GetList()) { - if (duplicates.find(val.GetString()) != duplicates.end()) + if (duplicates.find(&val) != duplicates.end()) continue; - duplicates.insert(val.GetString()); + duplicates.insert(&val); value.push_back(&val); } @@ -74,9 +78,9 @@ } for (const base::Value& val : it.value->GetList()) { - if (duplicates.find(val.GetString()) != duplicates.end()) + if (duplicates.find(&val) != duplicates.end()) continue; - duplicates.insert(val.GetString()); + duplicates.insert(&val); value.push_back(&val); }
diff --git a/components/safe_browsing/password_protection/mock_password_protection_service.h b/components/safe_browsing/password_protection/mock_password_protection_service.h index 6391991..03b2a30 100644 --- a/components/safe_browsing/password_protection/mock_password_protection_service.h +++ b/components/safe_browsing/password_protection/mock_password_protection_service.h
@@ -50,8 +50,11 @@ void(content::WebContents*, const std::string&, ReusedPasswordType)); - MOCK_METHOD3(MaybeReportPasswordReuseDetected, - void(content::WebContents*, ReusedPasswordType, bool)); + MOCK_METHOD4(MaybeReportPasswordReuseDetected, + void(content::WebContents*, + const std::string&, + ReusedPasswordType, + bool)); MOCK_METHOD3(UpdateSecurityState, void(safe_browsing::SBThreatType, ReusedPasswordType, @@ -71,9 +74,10 @@ MOCK_METHOD4( MaybeStartPasswordFieldOnFocusRequest, void(content::WebContents*, const GURL&, const GURL&, const GURL&)); - MOCK_METHOD5(MaybeStartProtectedPasswordEntryRequest, + MOCK_METHOD6(MaybeStartProtectedPasswordEntryRequest, void(content::WebContents*, const GURL&, + const std::string&, ReusedPasswordType, const std::vector<std::string>&, bool));
diff --git a/components/safe_browsing/password_protection/password_protection_request.cc b/components/safe_browsing/password_protection/password_protection_request.cc index aee6c06..4011c88 100644 --- a/components/safe_browsing/password_protection/password_protection_request.cc +++ b/components/safe_browsing/password_protection/password_protection_request.cc
@@ -65,6 +65,7 @@ const GURL& main_frame_url, const GURL& password_form_action, const GURL& password_form_frame_url, + const std::string& username, ReusedPasswordType reused_password_type, const std::vector<std::string>& matching_domains, LoginReputationClientRequest::TriggerType type, @@ -75,6 +76,7 @@ main_frame_url_(main_frame_url), password_form_action_(password_form_action), password_form_frame_url_(password_form_frame_url), + username_(username), reused_password_type_(reused_password_type), matching_domains_(matching_domains), trigger_type_(type), @@ -465,9 +467,8 @@ } } - password_protection_service_->RequestFinished( - this, outcome == RequestOutcome::RESPONSE_ALREADY_CACHED, - std::move(response)); + password_protection_service_->RequestFinished(this, outcome, + std::move(response)); } void PasswordProtectionRequest::Cancel(bool timed_out) {
diff --git a/components/safe_browsing/password_protection/password_protection_request.h b/components/safe_browsing/password_protection/password_protection_request.h index 886f6dd5..8f25cd0 100644 --- a/components/safe_browsing/password_protection/password_protection_request.h +++ b/components/safe_browsing/password_protection/password_protection_request.h
@@ -56,6 +56,7 @@ const GURL& main_frame_url, const GURL& password_form_action, const GURL& password_form_frame_url, + const std::string& username, ReusedPasswordType reused_password_type, const std::vector<std::string>& matching_origins, LoginReputationClientRequest::TriggerType type, @@ -90,6 +91,8 @@ return trigger_type_; } + const std::string& username() const { return username_; } + ReusedPasswordType reused_password_type() const { return reused_password_type_; } @@ -175,6 +178,11 @@ // Frame url of the detected password form. const GURL password_form_frame_url_; + // The username of the reused password hash. The username can be an email or + // a username for a non-GAIA or saved-password reuse. No validation has been + // done on it. + const std::string& username_; + // Type of the reused password. const ReusedPasswordType reused_password_type_;
diff --git a/components/safe_browsing/password_protection/password_protection_service.cc b/components/safe_browsing/password_protection/password_protection_service.cc index 1b08ffd7..866d9a7 100644 --- a/components/safe_browsing/password_protection/password_protection_service.cc +++ b/components/safe_browsing/password_protection/password_protection_service.cc
@@ -338,6 +338,7 @@ const GURL& main_frame_url, const GURL& password_form_action, const GURL& password_form_frame_url, + const std::string& username, ReusedPasswordType reused_password_type, const std::vector<std::string>& matching_domains, LoginReputationClientRequest::TriggerType trigger_type, @@ -346,8 +347,9 @@ scoped_refptr<PasswordProtectionRequest> request( new PasswordProtectionRequest( web_contents, main_frame_url, password_form_action, - password_form_frame_url, reused_password_type, matching_domains, - trigger_type, password_field_exists, this, GetRequestTimeoutInMS())); + password_form_frame_url, username, reused_password_type, + matching_domains, trigger_type, password_field_exists, this, + GetRequestTimeoutInMS())); request->Start(); pending_requests_.insert(std::move(request)); } @@ -363,7 +365,7 @@ main_frame_url, PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, &reason)) { StartRequest(web_contents, main_frame_url, password_form_action, - password_form_frame_url, + password_form_frame_url, /* username */ "", PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, {}, /* matching_domains: not used for this type */ LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE, true); @@ -373,6 +375,7 @@ void PasswordProtectionService::MaybeStartProtectedPasswordEntryRequest( WebContents* web_contents, const GURL& main_frame_url, + const std::string& username, ReusedPasswordType reused_password_type, const std::vector<std::string>& matching_domains, bool password_field_exists) { @@ -388,25 +391,17 @@ static_cast<int>(100 * content::ZoomLevelToZoomFactor(zoom_level))); RequestOutcome reason; - bool reported_password_reuse_event = false; if (CanSendPing(LoginReputationClientRequest::PASSWORD_REUSE_EVENT, main_frame_url, reused_password_type, &reason)) { - StartRequest(web_contents, main_frame_url, GURL(), GURL(), + StartRequest(web_contents, main_frame_url, GURL(), GURL(), username, reused_password_type, matching_domains, LoginReputationClientRequest::PASSWORD_REUSE_EVENT, password_field_exists); - // TODO(crbug.com/932741): |is_phishing_url| field isn't populated quite - // accurately, will resolve in a follow up cl. - MaybeReportPasswordReuseDetected(web_contents, reused_password_type, true); } else { MaybeLogPasswordReuseLookupEvent(web_contents, reason, nullptr); - reported_password_reuse_event = true; } if (CanShowInterstitial(reason, reused_password_type, main_frame_url)) { ShowInterstitial(web_contents, reused_password_type); - if (!reported_password_reuse_event) - MaybeReportPasswordReuseDetected(web_contents, reused_password_type, - false); } } @@ -436,13 +431,13 @@ void PasswordProtectionService::RequestFinished( PasswordProtectionRequest* request, - bool already_cached, + RequestOutcome outcome, std::unique_ptr<LoginReputationClientResponse> response) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(request); if (response) { - if (!already_cached) { + if (outcome != RequestOutcome::RESPONSE_ALREADY_CACHED) { CacheVerdict(request->main_frame_url(), request->trigger_type(), request->reused_password_type(), response.get(), base::Time::Now()); @@ -458,6 +453,18 @@ request->HandleDeferredNavigations(); + // If the request is canceled, the PasswordProtectionService is already + // partially destroyed, and we won't be able to log accurate metrics. + if (outcome != RequestOutcome::CANCELED) { + auto verdict = + response ? response->verdict_type() + : LoginReputationClientResponse::VERDICT_TYPE_UNSPECIFIED; + auto is_phishing_url = verdict == LoginReputationClientResponse::PHISHING; + MaybeReportPasswordReuseDetected( + request->web_contents(), request->username(), + request->reused_password_type(), is_phishing_url); + } + // Remove request from |pending_requests_| list. If it triggers warning, add // it into the !warning_reqeusts_| list. for (auto it = pending_requests_.begin(); it != pending_requests_.end();
diff --git a/components/safe_browsing/password_protection/password_protection_service.h b/components/safe_browsing/password_protection/password_protection_service.h index 115e699..9153dd00 100644 --- a/components/safe_browsing/password_protection/password_protection_service.h +++ b/components/safe_browsing/password_protection/password_protection_service.h
@@ -101,6 +101,7 @@ const GURL& main_frame_url, const GURL& password_form_action, const GURL& password_form_frame_url, + const std::string& username, ReusedPasswordType reused_password_type, const std::vector<std::string>& matching_domains, LoginReputationClientRequest::TriggerType trigger_type, @@ -115,6 +116,7 @@ virtual void MaybeStartProtectedPasswordEntryRequest( content::WebContents* web_contents, const GURL& main_frame_url, + const std::string& username, ReusedPasswordType reused_password_type, const std::vector<std::string>& matching_domains, bool password_field_exists); @@ -185,6 +187,7 @@ // Triggers the safeBrowsingPrivate.OnPolicySpecifiedPasswordReuseDetected. virtual void MaybeReportPasswordReuseDetected( content::WebContents* web_contents, + const std::string& username, ReusedPasswordType reused_password_type, bool is_phishing_url) = 0; @@ -222,7 +225,7 @@ // itself from |requests_|. virtual void RequestFinished( PasswordProtectionRequest* request, - bool already_cached, + RequestOutcome outcome, std::unique_ptr<LoginReputationClientResponse> response); // Cancels all requests in |requests_|, empties it, and releases references to
diff --git a/components/safe_browsing/password_protection/password_protection_service_unittest.cc b/components/safe_browsing/password_protection/password_protection_service_unittest.cc index 2e3b34f..56012c3 100644 --- a/components/safe_browsing/password_protection/password_protection_service_unittest.cc +++ b/components/safe_browsing/password_protection/password_protection_service_unittest.cc
@@ -46,6 +46,7 @@ const char kSavedDomain[] = "saved_domain.com"; const char kSavedDomain2[] = "saved_domain2.com"; const char kTargetUrl[] = "http://foo.com/"; +const char kUserName[] = "username"; const unsigned int kMinute = 60; const unsigned int kDay = 24 * 60 * kMinute; @@ -105,7 +106,7 @@ void RequestFinished( PasswordProtectionRequest* request, - bool already_cached_unused, + RequestOutcome outcome, std::unique_ptr<LoginReputationClientResponse> response) override { latest_request_ = request; latest_response_ = std::move(response); @@ -203,7 +204,7 @@ request_ = new PasswordProtectionRequest( web_contents, target_url, GURL(kFormActionUrl), GURL(kPasswordFrameUrl), - PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, {}, + kUserName, PasswordReuseEvent::REUSED_PASSWORD_TYPE_UNKNOWN, {}, LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE, true, password_protection_service_.get(), timeout_in_ms); request_->Start(); @@ -221,9 +222,9 @@ Return(match_whitelist ? AsyncMatch::MATCH : AsyncMatch::NO_MATCH)); request_ = new PasswordProtectionRequest( - web_contents, target_url, GURL(), GURL(), type, matching_domains, - LoginReputationClientRequest::PASSWORD_REUSE_EVENT, true, - password_protection_service_.get(), timeout_in_ms); + web_contents, target_url, GURL(), GURL(), kUserName, type, + matching_domains, LoginReputationClientRequest::PASSWORD_REUSE_EVENT, + true, password_protection_service_.get(), timeout_in_ms); request_->Start(); } @@ -979,7 +980,8 @@ .WillRepeatedly(Return(AsyncMatch::NO_MATCH)); password_protection_service_->StartRequest( GetWebContents(), target_url, GURL("http://foo.com/submit"), - GURL("http://foo.com/frame"), PasswordReuseEvent::SAVED_PASSWORD, {}, + GURL("http://foo.com/frame"), "username", + PasswordReuseEvent::SAVED_PASSWORD, {}, LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE, true); // Destroy password_protection_service_ while there is one request pending. @@ -1373,7 +1375,7 @@ test_url_loader_factory_.AddResponse(url_.spec(), expected_response.SerializeAsString()); password_protection_service_->StartRequest( - GetWebContents(), GURL("about:blank"), GURL(), GURL(), + GetWebContents(), GURL("about:blank"), GURL(), GURL(), "username", PasswordReuseEvent::SAVED_PASSWORD, {"example.com"}, LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE, true); base::RunLoop().RunUntilIdle(); @@ -1391,13 +1393,14 @@ .Times(AnyNumber()) .WillOnce(Return(gfx::Size(1000, 1000))); password_protection_service_->StartRequest( - GetWebContents(), GURL("about:blank"), GURL(), GURL(), + GetWebContents(), GURL("about:blank"), GURL(), GURL(), kUserName, PasswordReuseEvent::SAVED_PASSWORD, {"example.com"}, LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE, true); base::RunLoop().RunUntilIdle(); bool is_sber = GetParam(); if (is_sber) { + password_protection_service_->WaitForResponse(); ASSERT_NE(nullptr, password_protection_service_->GetLatestRequestProto()); EXPECT_TRUE(password_protection_service_->GetLatestRequestProto() ->has_visual_features()); @@ -1414,11 +1417,12 @@ .Times(AnyNumber()) .WillOnce(Return(gfx::Size(1000, 1000))); password_protection_service_->StartRequest( - GetWebContents(), GURL("about:blank"), GURL(), GURL(), + GetWebContents(), GURL("about:blank"), GURL(), GURL(), kUserName, PasswordReuseEvent::SAVED_PASSWORD, {"example.com"}, LoginReputationClientRequest::UNFAMILIAR_LOGIN_PAGE, true); base::RunLoop().RunUntilIdle(); + password_protection_service_->WaitForResponse(); ASSERT_NE(nullptr, password_protection_service_->GetLatestRequestProto()); EXPECT_TRUE(password_protection_service_->GetLatestRequestProto() ->has_dom_features());
diff --git a/components/sync/driver/data_type_manager_impl.cc b/components/sync/driver/data_type_manager_impl.cc index f19aeaf..a8c9a81 100644 --- a/components/sync/driver/data_type_manager_impl.cc +++ b/components/sync/driver/data_type_manager_impl.cc
@@ -106,7 +106,8 @@ SyncError(FROM_HERE, syncer::SyncError::UNREADY_ERROR, "Data type is unready.", type)); } else if (last_requested_types_.Has(type)) { - // Only reconfigure if the type is both ready and desired. + // Only reconfigure if the type is both ready and desired. This will + // internally also update ready state of all other requested types. ForceReconfiguration(); } }
diff --git a/components/sync/driver/data_type_manager_impl_unittest.cc b/components/sync/driver/data_type_manager_impl_unittest.cc index 80da751..4e94aec 100644 --- a/components/sync/driver/data_type_manager_impl_unittest.cc +++ b/components/sync/driver/data_type_manager_impl_unittest.cc
@@ -1357,7 +1357,8 @@ SetConfigureStartExpectation(); SetConfigureDoneExpectation( DataTypeManager::OK, - BuildStatusTable(ModelTypeSet(), ModelTypeSet(), ModelTypeSet(BOOKMARKS), + BuildStatusTable(ModelTypeSet(), ModelTypeSet(), + /*unready_errors=*/ModelTypeSet(BOOKMARKS), ModelTypeSet())); Configure(ModelTypeSet(BOOKMARKS)); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -1370,6 +1371,103 @@ dtm_->ReadyForStartChanged(BOOKMARKS); EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); EXPECT_NE(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); + + FinishDownload(ModelTypeSet(), ModelTypeSet()); + FinishDownload(ModelTypeSet(BOOKMARKS), ModelTypeSet()); + + // Set the expectations for the reconfiguration - no unready errors now. + SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); + GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); + EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); + EXPECT_EQ(1U, configurer_.activated_types().Size()); +} + +TEST_F(SyncDataTypeManagerImplTest, + MultipleUnreadyTypesLaterReadyAtTheSameTime) { + AddController(BOOKMARKS); + AddController(PREFERENCES); + GetController(BOOKMARKS)->SetReadyForStart(false); + GetController(PREFERENCES)->SetReadyForStart(false); + + // Both types are never started due to being unready. + SetConfigureStartExpectation(); + SetConfigureDoneExpectation( + DataTypeManager::OK, + BuildStatusTable(ModelTypeSet(), ModelTypeSet(), + /*unready_errors=*/ModelTypeSet(BOOKMARKS, PREFERENCES), + ModelTypeSet())); + Configure(ModelTypeSet(BOOKMARKS, PREFERENCES)); + FinishDownload(ModelTypeSet(), ModelTypeSet()); + ASSERT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); + ASSERT_EQ(DataTypeController::NOT_RUNNING, + GetController(PREFERENCES)->state()); + ASSERT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); + ASSERT_EQ(0U, configurer_.activated_types().Size()); + + // Both types should start normally now. + GetController(BOOKMARKS)->SetReadyForStart(true); + GetController(PREFERENCES)->SetReadyForStart(true); + + // Just triggering state change for one of them causes reconfiguration for all + // that are ready to start (which is both BOOKMARKS and PREFERENCES). + dtm_->ReadyForStartChanged(BOOKMARKS); + EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); + EXPECT_NE(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); + EXPECT_NE(DataTypeController::NOT_RUNNING, + GetController(PREFERENCES)->state()); + + FinishDownload(ModelTypeSet(), ModelTypeSet()); + FinishDownload(ModelTypeSet(BOOKMARKS, PREFERENCES), ModelTypeSet()); + + // Set new expectations for the reconfiguration - no unready errors any more. + SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); + GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); + GetController(PREFERENCES)->FinishStart(DataTypeController::OK); + EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); + EXPECT_EQ(2U, configurer_.activated_types().Size()); +} + +TEST_F(SyncDataTypeManagerImplTest, MultipleUnreadyTypesLaterOneOfThemReady) { + AddController(BOOKMARKS); + AddController(PREFERENCES); + GetController(BOOKMARKS)->SetReadyForStart(false); + GetController(PREFERENCES)->SetReadyForStart(false); + + // Both types are never started due to being unready. + SetConfigureStartExpectation(); + SetConfigureDoneExpectation( + DataTypeManager::OK, + BuildStatusTable(ModelTypeSet(), ModelTypeSet(), + /*unready_errors=*/ModelTypeSet(BOOKMARKS, PREFERENCES), + ModelTypeSet())); + Configure(ModelTypeSet(BOOKMARKS, PREFERENCES)); + FinishDownload(ModelTypeSet(), ModelTypeSet()); + ASSERT_EQ(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); + ASSERT_EQ(DataTypeController::NOT_RUNNING, + GetController(PREFERENCES)->state()); + ASSERT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); + ASSERT_EQ(0U, configurer_.activated_types().Size()); + + // Bookmarks should start normally now. Preferences should still not start. + GetController(BOOKMARKS)->SetReadyForStart(true); + dtm_->ReadyForStartChanged(BOOKMARKS); + EXPECT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); + EXPECT_NE(DataTypeController::NOT_RUNNING, GetController(BOOKMARKS)->state()); + EXPECT_EQ(DataTypeController::NOT_RUNNING, + GetController(PREFERENCES)->state()); + + FinishDownload(ModelTypeSet(), ModelTypeSet()); + FinishDownload(ModelTypeSet(BOOKMARKS), ModelTypeSet()); + + // Set the expectations for the reconfiguration - just prefs are unready now. + SetConfigureDoneExpectation( + DataTypeManager::OK, + BuildStatusTable(ModelTypeSet(), ModelTypeSet(), + /*unready_errors=*/ModelTypeSet(PREFERENCES), + ModelTypeSet())); + GetController(BOOKMARKS)->FinishStart(DataTypeController::OK); + EXPECT_EQ(DataTypeManager::CONFIGURED, dtm_->state()); + EXPECT_EQ(1U, configurer_.activated_types().Size()); } TEST_F(SyncDataTypeManagerImplTest, NoOpReadyForStartChangedWhileStillUnready) {
diff --git a/components/viz/common/quads/render_pass_unittest.cc b/components/viz/common/quads/render_pass_unittest.cc index d8b4729..c0daf9f 100644 --- a/components/viz/common/quads/render_pass_unittest.cc +++ b/components/viz/common/quads/render_pass_unittest.cc
@@ -51,9 +51,8 @@ actual->transform_to_root_target); EXPECT_EQ(expected->damage_rect, actual->damage_rect); EXPECT_EQ(expected->filters, actual->filters); - EXPECT_EQ(expected->backdrop_filters, expected->backdrop_filters); - EXPECT_EQ(expected->backdrop_filter_bounds, - expected->backdrop_filter_bounds); + EXPECT_EQ(expected->backdrop_filters, actual->backdrop_filters); + EXPECT_EQ(expected->backdrop_filter_bounds, actual->backdrop_filter_bounds); EXPECT_EQ(expected->has_transparent_background, actual->has_transparent_background); EXPECT_EQ(expected->generate_mipmap, actual->generate_mipmap);
diff --git a/components/viz/service/display/display_resource_provider.cc b/components/viz/service/display/display_resource_provider.cc index 54ca8b5d..197c2cd9 100644 --- a/components/viz/service/display/display_resource_provider.cc +++ b/components/viz/service/display/display_resource_provider.cc
@@ -556,6 +556,10 @@ metadata.origin = kTopLeft_GrSurfaceOrigin; resource->locked_for_external_use = true; + + if (resource->transferable.read_lock_fences_enabled) + resource->read_lock_fence = current_read_lock_fence_; + return metadata; } @@ -962,10 +966,6 @@ return true; } -void DisplayResourceProvider::SynchronousFence::Wait() { - HasPassed(); -} - void DisplayResourceProvider::SynchronousFence::Synchronize() { TRACE_EVENT0("viz", "DisplayResourceProvider::SynchronousFence::Synchronize"); gl_->Finish();
diff --git a/components/viz/service/display/display_resource_provider.h b/components/viz/service/display/display_resource_provider.h index 4aba922..d242f58 100644 --- a/components/viz/service/display/display_resource_provider.h +++ b/components/viz/service/display/display_resource_provider.h
@@ -239,7 +239,6 @@ // ResourceFence implementation. void Set() override; bool HasPassed() override; - void Wait() override; // Returns true if fence has been set but not yet synchornized. bool has_synchronized() const { return has_synchronized_; }
diff --git a/components/viz/service/display/display_resource_provider_unittest.cc b/components/viz/service/display/display_resource_provider_unittest.cc index 603d896..6e634ae5 100644 --- a/components/viz/service/display/display_resource_provider_unittest.cc +++ b/components/viz/service/display/display_resource_provider_unittest.cc
@@ -352,7 +352,6 @@ // ResourceFence implementation. void Set() override {} bool HasPassed() override { return passed; } - void Wait() override {} bool passed = false;
diff --git a/components/viz/service/display/resource_fence.h b/components/viz/service/display/resource_fence.h index ebfc658..0c9d1af 100644 --- a/components/viz/service/display/resource_fence.h +++ b/components/viz/service/display/resource_fence.h
@@ -11,14 +11,13 @@ // An abstract interface used to ensure reading from resources passed between // client and service does not happen before writing is completed. -class ResourceFence : public base::RefCounted<ResourceFence> { +class ResourceFence : public base::RefCountedThreadSafe<ResourceFence> { public: virtual void Set() = 0; virtual bool HasPassed() = 0; - virtual void Wait() = 0; protected: - friend class base::RefCounted<ResourceFence>; + friend class base::RefCountedThreadSafe<ResourceFence>; ResourceFence() = default; virtual ~ResourceFence() = default;
diff --git a/components/viz/service/display/skia_output_surface.h b/components/viz/service/display/skia_output_surface.h index 12a3607..325a4077 100644 --- a/components/viz/service/display/skia_output_surface.h +++ b/components/viz/service/display/skia_output_surface.h
@@ -92,7 +92,10 @@ // a sync token which can be waited on in a command buffer to ensure the paint // operation is completed. This token is released when the GPU ops from // painting the render pass have been seen and processed by the GPU main. - virtual gpu::SyncToken SubmitPaint() = 0; + // Optionally the caller may specify |on_finished| callback to be called after + // the GPU has finished processing all submitted commands. The callback may be + // called on a different thread. + virtual gpu::SyncToken SubmitPaint(base::OnceClosure on_finished) = 0; // Make a promise SkImage from a render pass id. The render pass has been // painted with BeginPaintRenderPass and FinishPaintRenderPass. The format
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc index 86a260e..8597d651 100644 --- a/components/viz/service/display/skia_renderer.cc +++ b/components/viz/service/display/skia_renderer.cc
@@ -7,9 +7,11 @@ #include <string> #include <utility> +#include "base/bind.h" #include "base/bits.h" #include "base/command_line.h" #include "base/optional.h" +#include "base/synchronization/waitable_event.h" #include "base/trace_event/trace_event.h" #include "cc/base/math_util.h" #include "cc/paint/render_surface_filters.h" @@ -595,6 +597,22 @@ SkiaRenderer::~SkiaRenderer() = default; +class FrameResourceFence : public ResourceFence { + public: + FrameResourceFence() = default; + + // ResourceFence implementation. + void Set() override { event_.Signal(); } + bool HasPassed() override { return event_.IsSignaled(); } + + private: + ~FrameResourceFence() override = default; + + base::WaitableEvent event_; + + DISALLOW_COPY_AND_ASSIGN(FrameResourceFence); +}; + bool SkiaRenderer::CanPartialSwap() { if (draw_mode_ == DrawMode::DDL) return output_surface_->capabilities().supports_post_sub_buffer; @@ -611,20 +629,23 @@ void SkiaRenderer::BeginDrawingFrame() { TRACE_EVENT0("viz", "SkiaRenderer::BeginDrawingFrame"); - if (draw_mode_ != DrawMode::SKPRECORD) - return; + + DCHECK(!current_frame_resource_fence_); // Copied from GLRenderer. scoped_refptr<ResourceFence> read_lock_fence; if (sync_queries_) { read_lock_fence = sync_queries_->StartNewFrame(); + current_frame_resource_fence_ = nullptr; } else { - read_lock_fence = - base::MakeRefCounted<DisplayResourceProvider::SynchronousFence>( - context_provider_->ContextGL()); + read_lock_fence = base::MakeRefCounted<FrameResourceFence>(); + current_frame_resource_fence_ = read_lock_fence; } resource_provider_->SetReadLockFence(read_lock_fence.get()); + if (draw_mode_ != DrawMode::SKPRECORD) + return; + // Insert WaitSyncTokenCHROMIUM on quad resources prior to drawing the // frame, so that drawing can proceed without GL context switching // interruptions. @@ -1857,7 +1878,20 @@ // SubmitPaint to the GPU thread. promise_images_.clear(); yuv_promise_images_.clear(); - gpu::SyncToken sync_token = skia_output_surface_->SubmitPaint(); + + base::OnceClosure on_finished_callback; + + // Signal |current_frame_resource_fence_| when the root render pass is + // finished. + if (current_frame_resource_fence_ && + current_frame()->current_render_pass == + current_frame()->root_render_pass) { + on_finished_callback = base::BindOnce( + &ResourceFence::Set, std::move(current_frame_resource_fence_)); + } + gpu::SyncToken sync_token = + skia_output_surface_->SubmitPaint(std::move(on_finished_callback)); + lock_set_for_external_use_->UnlockResources(sync_token); break; }
diff --git a/components/viz/service/display/skia_renderer.h b/components/viz/service/display/skia_renderer.h index 1c6afdc6..2ae460a 100644 --- a/components/viz/service/display/skia_renderer.h +++ b/components/viz/service/display/skia_renderer.h
@@ -205,6 +205,7 @@ SkCanvas* root_canvas_ = nullptr; SkCanvas* current_canvas_ = nullptr; SkSurface* current_surface_ = nullptr; + scoped_refptr<ResourceFence> current_frame_resource_fence_; bool disable_picture_quad_image_filtering_ = false; bool is_scissor_enabled_ = false;
diff --git a/components/viz/service/display/sync_query_collection.cc b/components/viz/service/display/sync_query_collection.cc index f68e15d..6a57d807 100644 --- a/components/viz/service/display/sync_query_collection.cc +++ b/components/viz/service/display/sync_query_collection.cc
@@ -86,10 +86,6 @@ query_->Set(); } bool HasPassed() override { return !query_ || !query_->IsPending(); } - void Wait() override { - if (query_) - query_->Wait(); - } private: ~Fence() override {}
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc index 13b89f2..7a3adda 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc
@@ -350,7 +350,8 @@ return recorder_->getCanvas(); } -gpu::SyncToken SkiaOutputSurfaceImpl::SubmitPaint() { +gpu::SyncToken SkiaOutputSurfaceImpl::SubmitPaint( + base::OnceClosure on_finished) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(recorder_); @@ -386,6 +387,7 @@ // MakePromiseSkImageFromRenderPass() is called. it->second->image = nullptr; } + DCHECK(!on_finished); callback = base::BindOnce( &SkiaOutputSurfaceImplOnGpu::FinishPaintRenderPass, base::Unretained(impl_on_gpu_.get()), current_render_pass_id_, @@ -396,7 +398,7 @@ &SkiaOutputSurfaceImplOnGpu::FinishPaintCurrentFrame, base::Unretained(impl_on_gpu_.get()), std::move(ddl), std::move(overdraw_ddl), std::move(images_in_current_paint_), - resource_sync_tokens_, sync_fence_release_); + resource_sync_tokens_, sync_fence_release_, std::move(on_finished)); } images_in_current_paint_.clear(); ScheduleGpuTask(std::move(callback), std::move(resource_sync_tokens_));
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.h b/components/viz/service/display_embedder/skia_output_surface_impl.h index 6f9b2c27..45ec8fa 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl.h +++ b/components/viz/service/display_embedder/skia_output_surface_impl.h
@@ -72,7 +72,7 @@ ResourceFormat format, bool mipmap, sk_sp<SkColorSpace> color_space) override; - gpu::SyncToken SubmitPaint() override; + gpu::SyncToken SubmitPaint(base::OnceClosure on_finished) override; sk_sp<SkImage> MakePromiseSkImage(const ResourceMetadata& metadata) override; sk_sp<SkImage> MakePromiseSkImageFromRenderPass( const RenderPassId& id,
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc b/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc index 538dfa51..dc22ef2 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.cc
@@ -287,7 +287,8 @@ return sk_current_surface_->getCanvas(); } -gpu::SyncToken SkiaOutputSurfaceImplNonDDL::SubmitPaint() { +gpu::SyncToken SkiaOutputSurfaceImplNonDDL::SubmitPaint( + base::OnceClosure on_finished) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); // To make sure sync_token is valid, we need make sure we are processing a gpu // task. @@ -336,8 +337,12 @@ .fNumSemaphores = pending_semaphores_.size(), .fSignalSemaphores = pending_semaphores_.data(), }; - gpu::CreateCleanupCallbackForSkiaFlush( + + gpu::AddVulkanCleanupTaskForSkiaFlush( shared_context_state_->vk_context_provider(), &flush_info); + if (on_finished) + gpu::AddCleanupTaskForSkiaFlush(std::move(on_finished), &flush_info); + auto result = sk_current_surface_->flush(access, flush_info); DCHECK_EQ(result, GrSemaphoresSubmitted::kYes); pending_semaphores_.clear();
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.h b/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.h index 763fb22..d2635f7 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.h +++ b/components/viz/service/display_embedder/skia_output_surface_impl_non_ddl.h
@@ -79,7 +79,7 @@ ResourceFormat format, bool mipmap, sk_sp<SkColorSpace> color_space) override; - gpu::SyncToken SubmitPaint() override; + gpu::SyncToken SubmitPaint(base::OnceClosure on_finished) override; sk_sp<SkImage> MakePromiseSkImage(const ResourceMetadata& metadata) override; sk_sp<SkImage> MakePromiseSkImageFromRenderPass( const RenderPassId& id,
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc index 7799fd0..f0a99f1 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
@@ -297,24 +297,20 @@ } SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu( + GpuServiceImpl* gpu_service, gpu::SurfaceHandle surface_handle, - scoped_refptr<gpu::gles2::FeatureInfo> feature_info, - gpu::MailboxManager* mailbox_manager, - scoped_refptr<gpu::SyncPointClientState> sync_point_client_state, - std::unique_ptr<gpu::SharedImageRepresentationFactory> sir_factory, - gpu::raster::GrShaderCache* gr_shader_cache, - VulkanContextProvider* vulkan_context_provider, const RendererSettings& renderer_settings, const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback, const BufferPresentedCallback& buffer_presented_callback, const ContextLostCallback& context_lost_callback) : surface_handle_(surface_handle), - feature_info_(std::move(feature_info)), - mailbox_manager_(mailbox_manager), - sync_point_client_state_(std::move(sync_point_client_state)), - shared_image_representation_factory_(std::move(sir_factory)), - gr_shader_cache_(gr_shader_cache), - vulkan_context_provider_(vulkan_context_provider), + feature_info_(CreateFeatureInfo(gpu_service)), + mailbox_manager_(gpu_service->mailbox_manager()), + sync_point_client_state_(CreateSyncPointClientState(gpu_service)), + shared_image_representation_factory_( + CreateSharedImageRepresentationFactory(gpu_service)), + gr_shader_cache_(gpu_service->gr_shader_cache()), + vulkan_context_provider_(gpu_service->vulkan_context_provider()), renderer_settings_(renderer_settings), did_swap_buffer_complete_callback_(did_swap_buffer_complete_callback), buffer_presented_callback_(buffer_presented_callback), @@ -322,38 +318,12 @@ weak_ptr_factory_(this) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); weak_ptr_ = weak_ptr_factory_.GetWeakPtr(); -} - -SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu( - GpuServiceImpl* gpu_service, - gpu::SurfaceHandle surface_handle, - const RendererSettings& renderer_settings, - const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback, - const BufferPresentedCallback& buffer_presented_callback, - const ContextLostCallback& context_lost_callback) - : SkiaOutputSurfaceImplOnGpu( - surface_handle, - CreateFeatureInfo(gpu_service), - gpu_service->mailbox_manager(), - CreateSyncPointClientState(gpu_service), - CreateSharedImageRepresentationFactory(gpu_service), - gpu_service->gr_shader_cache(), - gpu_service->vulkan_context_provider(), - renderer_settings, - did_swap_buffer_complete_callback, - buffer_presented_callback, - context_lost_callback) { #if defined(USE_OZONE) window_surface_ = ui::OzonePlatform::GetInstance() ->GetSurfaceFactoryOzone() ->CreatePlatformWindowSurface(surface_handle); #endif - if (gpu_service) { - gpu_preferences_ = gpu_service->gpu_channel_manager()->gpu_preferences(); - } else { - auto* command_line = base::CommandLine::ForCurrentProcess(); - gpu_preferences_ = gpu::gles2::ParseGpuPreferences(command_line); - } + gpu_preferences_ = gpu_service->gpu_channel_manager()->gpu_preferences(); if (is_using_vulkan()) InitializeForVulkan(gpu_service); @@ -412,7 +382,8 @@ std::unique_ptr<SkDeferredDisplayList> overdraw_ddl, std::vector<ImageContext*> image_contexts, std::vector<gpu::SyncToken> sync_tokens, - uint64_t sync_fence_release) { + uint64_t sync_fence_release, + base::OnceClosure on_finished) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(ddl); DCHECK(output_sk_surface()); @@ -464,8 +435,12 @@ .fSignalSemaphores = scoped_promise_image_access.end_semaphores().data(), }; - gpu::CreateCleanupCallbackForSkiaFlush(vulkan_context_provider_, - &flush_info); + + gpu::AddVulkanCleanupTaskForSkiaFlush(vulkan_context_provider_, + &flush_info); + if (on_finished) + gpu::AddCleanupTaskForSkiaFlush(std::move(on_finished), &flush_info); + auto result = output_sk_surface()->flush( SkSurface::BackendSurfaceAccess::kPresent, flush_info); if (result != GrSemaphoresSubmitted::kYes && @@ -558,8 +533,9 @@ .fSignalSemaphores = scoped_promise_image_access.end_semaphores().data(), }; - gpu::CreateCleanupCallbackForSkiaFlush(vulkan_context_provider_, - &flush_info); + + gpu::AddVulkanCleanupTaskForSkiaFlush(vulkan_context_provider_, + &flush_info); auto result = offscreen.surface()->flush( SkSurface::BackendSurfaceAccess::kNoAccess, flush_info); if (result != GrSemaphoresSubmitted::kYes &&
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h index 5c1c03c..6fcbea8a16 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h +++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
@@ -80,18 +80,6 @@ using ContextLostCallback = base::RepeatingCallback<void()>; SkiaOutputSurfaceImplOnGpu( - gpu::SurfaceHandle surface_handle, - scoped_refptr<gpu::gles2::FeatureInfo> feature_info, - gpu::MailboxManager* mailbox_manager, - scoped_refptr<gpu::SyncPointClientState> sync_point_client_data, - std::unique_ptr<gpu::SharedImageRepresentationFactory> sir_factory, - gpu::raster::GrShaderCache* gr_shader_cache, - VulkanContextProvider* vulkan_context_provider, - const RendererSettings& renderer_settings_, - const DidSwapBufferCompleteCallback& did_swap_buffer_complete_callback, - const BufferPresentedCallback& buffer_presented_callback, - const ContextLostCallback& context_lost_callback); - SkiaOutputSurfaceImplOnGpu( GpuServiceImpl* gpu_service, gpu::SurfaceHandle surface_handle, const RendererSettings& renderer_settings_, @@ -123,7 +111,8 @@ std::unique_ptr<SkDeferredDisplayList> overdraw_ddl, std::vector<ImageContext*> image_contexts, std::vector<gpu::SyncToken> sync_tokens, - uint64_t sync_fence_release); + uint64_t sync_fence_release, + base::OnceClosure on_finished); void SwapBuffers(OutputSurfaceFrame frame); void EnsureBackbuffer() { output_device_->EnsureBackbuffer(); } void DiscardBackbuffer() { output_device_->DiscardBackbuffer(); }
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc b/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc index dc87230e..0ddd09f 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl_unittest.cc
@@ -164,7 +164,12 @@ SkRect rect = SkRect::MakeWH(output_rect.width(), output_rect.height()); root_canvas->drawRect(rect, paint); - gpu::SyncToken sync_token = output_surface_->SubmitPaint(); + bool on_finished_called = false; + base::OnceClosure on_finished = + base::BindOnce([](bool* result) { *result = true; }, &on_finished_called); + + gpu::SyncToken sync_token = + output_surface_->SubmitPaint(std::move(on_finished)); EXPECT_TRUE(sync_token.HasData()); base::OnceClosure closure = base::BindOnce(&SkiaOutputSurfaceImplTest::CheckSyncTokenOnGpuThread, @@ -176,6 +181,7 @@ gpu_service()->scheduler()->ScheduleTask(gpu::Scheduler::Task( sequence_id, std::move(closure), std::move(resource_sync_tokens))); BlockMainThread(); + EXPECT_TRUE(on_finished_called); // Copy the output const gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB();
diff --git a/components/viz/test/fake_skia_output_surface.cc b/components/viz/test/fake_skia_output_surface.cc index 19c5462f..b7377eb 100644 --- a/components/viz/test/fake_skia_output_surface.cc +++ b/components/viz/test/fake_skia_output_surface.cc
@@ -193,11 +193,15 @@ return sk_surface->getCanvas(); } -gpu::SyncToken FakeSkiaOutputSurface::SubmitPaint() { +gpu::SyncToken FakeSkiaOutputSurface::SubmitPaint( + base::OnceClosure on_finished) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); sk_surfaces_[current_render_pass_id_]->flush(); current_render_pass_id_ = 0; + if (on_finished) + std::move(on_finished).Run(); + gpu::SyncToken sync_token; context_provider()->ContextGL()->GenSyncTokenCHROMIUM(sync_token.GetData()); return sync_token;
diff --git a/components/viz/test/fake_skia_output_surface.h b/components/viz/test/fake_skia_output_surface.h index 29e0fc83..6a2c039 100644 --- a/components/viz/test/fake_skia_output_surface.h +++ b/components/viz/test/fake_skia_output_surface.h
@@ -68,7 +68,7 @@ ResourceFormat format, bool mipmap, sk_sp<SkColorSpace> color_space) override; - gpu::SyncToken SubmitPaint() override; + gpu::SyncToken SubmitPaint(base::OnceClosure on_finished) override; sk_sp<SkImage> MakePromiseSkImage(const ResourceMetadata& metadata) override; sk_sp<SkImage> MakePromiseSkImageFromRenderPass( const RenderPassId& id,
diff --git a/content/browser/accessibility/ax_platform_node_win_browsertest.cc b/content/browser/accessibility/ax_platform_node_win_browsertest.cc index d62650fe..bde75fcd 100644 --- a/content/browser/accessibility/ax_platform_node_win_browsertest.cc +++ b/content/browser/accessibility/ax_platform_node_win_browsertest.cc
@@ -387,4 +387,37 @@ ax::mojom::Role::kAlertDialog, &BrowserAccessibility::PlatformGetChild, 0, true, true); } + +IN_PROC_BROWSER_TEST_F(AXPlatformNodeWinBrowserTest, + UIAGetPropertyValueAutomationId) { + LoadInitialAccessibilityTreeFromHtml(std::string(R"HTML( + <!DOCTYPE html> + <html> + </body> + <div id="id"></div> + </body> + </html> + )HTML")); + + BrowserAccessibility* root_browser_accessibility = GetRootAndAssertNonNull(); + BrowserAccessibilityComWin* root_browser_accessibility_com_win = + ToBrowserAccessibilityWin(root_browser_accessibility)->GetCOM(); + ASSERT_NE(nullptr, root_browser_accessibility_com_win); + + BrowserAccessibility* browser_accessibility = + root_browser_accessibility->PlatformDeepestLastChild(); + ASSERT_NE(nullptr, browser_accessibility); + ASSERT_EQ(ax::mojom::Role::kGenericContainer, + browser_accessibility->GetRole()); + BrowserAccessibilityComWin* browser_accessibility_com_win = + ToBrowserAccessibilityWin(browser_accessibility)->GetCOM(); + ASSERT_NE(nullptr, browser_accessibility_com_win); + + base::win::ScopedVariant expected_scoped_variant; + expected_scoped_variant.Set(SysAllocString(L"id")); + base::win::ScopedVariant scoped_variant; + EXPECT_HRESULT_SUCCEEDED(browser_accessibility_com_win->GetPropertyValue( + UIA_AutomationIdPropertyId, scoped_variant.Receive())); + EXPECT_EQ(0, expected_scoped_variant.Compare(scoped_variant)); +} } // namespace content
diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc index 69dc4d9..be0a65a 100644 --- a/content/browser/accessibility/browser_accessibility.cc +++ b/content/browser/accessibility/browser_accessibility.cc
@@ -1189,6 +1189,12 @@ manager_->ax_tree()->GetReverseRelations(attr, GetData().id)); } +base::string16 BrowserAccessibility::GetAuthorUniqueId() const { + base::string16 html_id; + GetData().GetHtmlAttribute("id", &html_id); + return html_id; +} + const ui::AXUniqueId& BrowserAccessibility::GetUniqueId() const { // This is not the same as GetData().id which comes from Blink, because // those ids are only unique within the Blink process. We need one that is
diff --git a/content/browser/accessibility/browser_accessibility.h b/content/browser/accessibility/browser_accessibility.h index 1327beb..574447b 100644 --- a/content/browser/accessibility/browser_accessibility.h +++ b/content/browser/accessibility/browser_accessibility.h
@@ -372,6 +372,7 @@ virtual base::string16 GetText() const; // AXPlatformNodeDelegate. + base::string16 GetAuthorUniqueId() const override; const ui::AXNodeData& GetData() const override; const ui::AXTreeData& GetTreeData() const override; ui::AXNodePosition::AXPositionInstance CreateTextPositionAt(
diff --git a/content/browser/accessibility/browser_accessibility_unittest.cc b/content/browser/accessibility/browser_accessibility_unittest.cc index f14e11a..183c622 100644 --- a/content/browser/accessibility/browser_accessibility_unittest.cc +++ b/content/browser/accessibility/browser_accessibility_unittest.cc
@@ -565,4 +565,24 @@ .ToString()); } } + +TEST_F(BrowserAccessibilityTest, GetAuthorUniqueId) { + ui::AXNodeData root; + root.id = 1; + root.role = ax::mojom::Role::kRootWebArea; + root.html_attributes.push_back(std::make_pair("id", "my_html_id")); + + std::unique_ptr<BrowserAccessibilityManager> browser_accessibility_manager( + BrowserAccessibilityManager::Create( + MakeAXTreeUpdate(root), test_browser_accessibility_delegate_.get(), + new BrowserAccessibilityFactory())); + ASSERT_NE(nullptr, browser_accessibility_manager.get()); + + BrowserAccessibility* root_accessible = + browser_accessibility_manager->GetRoot(); + ASSERT_NE(nullptr, root_accessible); + + ASSERT_EQ(base::WideToUTF16(L"my_html_id"), + root_accessible->GetAuthorUniqueId()); +} } // namespace content
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc index 0989ed2..41bdc53 100644 --- a/content/browser/browser_context.cc +++ b/content/browser/browser_context.cc
@@ -58,6 +58,7 @@ #include "content/public/common/service_names.mojom.h" #include "media/capabilities/video_decode_stats_db_impl.h" #include "media/mojo/services/video_decode_perf_history.h" +#include "mojo/public/cpp/bindings/remote.h" #include "net/cookies/cookie_store.h" #include "net/ssl/channel_id_service.h" #include "net/ssl/channel_id_store.h" @@ -658,20 +659,20 @@ // NOTE: Many unit tests create a TestBrowserContext without initializing // Mojo or the global service manager connection. - service_manager::mojom::ServicePtr service; - auto service_request = mojo::MakeRequest(&service); + mojo::PendingRemote<service_manager::mojom::Service> service; + auto service_receiver = service.InitWithNewPipeAndPassReceiver(); - service_manager::mojom::PIDReceiverPtr pid_receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; service_manager::Identity identity(mojom::kBrowserServiceName, new_group, base::Token{}, base::Token::CreateRandom()); service_manager_connection->GetConnector()->RegisterServiceInstance( - identity, std::move(service), mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(base::GetCurrentProcId()); + identity, std::move(service), metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(base::GetCurrentProcId()); BrowserContextServiceManagerConnectionHolder* connection_holder = new BrowserContextServiceManagerConnectionHolder( - browser_context, std::move(service_request), + browser_context, std::move(service_receiver), base::SequencedTaskRunnerHandle::Get()); browser_context->SetUserData(kServiceManagerConnection, base::WrapUnique(connection_holder));
diff --git a/content/browser/browsing_instance.cc b/content/browser/browsing_instance.cc index 0670cda..c00d975 100644 --- a/content/browser/browsing_instance.cc +++ b/content/browser/browsing_instance.cc
@@ -17,10 +17,6 @@ namespace content { -namespace { -const char* const kDefaultInstanceSiteURL = "http://unisolated.invalid"; -} // namespace - // Start the BrowsingInstance ID counter from 1 to avoid a conflict with the // invalid BrowsingInstanceId value, which is 0 in its underlying IdType32. int BrowsingInstance::next_browsing_instance_id_ = 1; @@ -123,7 +119,7 @@ DCHECK(!default_process_); if (!default_site_instance_) { default_site_instance_ = new SiteInstanceImpl(this); - default_site_instance_->SetSite(GURL(kDefaultInstanceSiteURL)); + default_site_instance_->SetSite(SiteInstanceImpl::GetDefaultSiteURL()); } return default_site_instance_; }
diff --git a/content/browser/devtools/devtools_background_services.proto b/content/browser/devtools/devtools_background_services.proto index 022a17f..8f4c4549 100644 --- a/content/browser/devtools/devtools_background_services.proto +++ b/content/browser/devtools/devtools_background_services.proto
@@ -10,11 +10,15 @@ // The background service we are logging events for. // Do not change the tags since these are persisted. +// Add a corresponding entry in `enums.xml` if a new value is introduced. enum BackgroundService { UNKNOWN = 0; TEST_BACKGROUND_SERVICE = 1; BACKGROUND_FETCH = 2; BACKGROUND_SYNC = 3; + + // Keep as last, must have the largest tag value. + COUNT = 4; } // A proto for storing the background service event with common metadata for
diff --git a/content/browser/devtools/devtools_background_services_context_impl.h b/content/browser/devtools/devtools_background_services_context_impl.h index f5222e2f..2a5b560 100644 --- a/content/browser/devtools/devtools_background_services_context_impl.h +++ b/content/browser/devtools/devtools_background_services_context_impl.h
@@ -131,7 +131,7 @@ // recorded. The BackgroundService enum is used as the index. // This should only be updated on the UI thread, but is also // accessed from the IO thread. - std::array<base::Time, devtools::proto::BackgroundService_ARRAYSIZE> + std::array<base::Time, devtools::proto::BackgroundService::COUNT> expiration_times_; base::ObserverList<EventObserver> observers_;
diff --git a/content/browser/devtools/protocol/background_service_handler.cc b/content/browser/devtools/protocol/background_service_handler.cc index dc2419a8..17b91e8 100644 --- a/content/browser/devtools/protocol/background_service_handler.cc +++ b/content/browser/devtools/protocol/background_service_handler.cc
@@ -4,6 +4,7 @@ #include "content/browser/devtools/protocol/background_service_handler.h" +#include "base/metrics/histogram_functions.h" #include "content/browser/frame_host/frame_tree.h" #include "content/browser/service_worker/service_worker_version.h" #include "content/browser/storage_partition_impl.h" @@ -188,10 +189,13 @@ if (service_enum == devtools::proto::BackgroundService::UNKNOWN) return Response::InvalidParams("Invalid service name"); - if (should_record) + if (should_record) { devtools_context_->StartRecording(service_enum); - else + base::UmaHistogramEnumeration("DevTools.BackgroundService.StartRecording", + service_enum, devtools::proto::COUNT); + } else { devtools_context_->StopRecording(service_enum); + } return Response::OK(); }
diff --git a/content/browser/dom_storage/local_storage_context_mojo_unittest.cc b/content/browser/dom_storage/local_storage_context_mojo_unittest.cc index fee17f17..cd2b967f 100644 --- a/content/browser/dom_storage/local_storage_context_mojo_unittest.cc +++ b/content/browser/dom_storage/local_storage_context_mojo_unittest.cc
@@ -37,7 +37,6 @@ #include "mojo/public/cpp/bindings/strong_associated_binding.h" #include "services/file/public/mojom/constants.mojom.h" #include "services/file/user_id_map.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" #include "storage/browser/test/mock_special_storage_policy.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/leveldatabase/env_chromium.h"
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index f4dcfd2..d04e424 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -1737,6 +1737,7 @@ // |dest_url| should end up in |candidate|'s SiteInstance. // This is used to keep same-site scripting working for hosted apps. bool should_compare_effective_urls = + candidate->GetSiteInstance()->IsDefaultSiteInstance() || GetContentClient() ->browser() ->ShouldCompareEffectiveURLsForSiteInstanceSelection( @@ -1744,8 +1745,10 @@ frame_tree_node_->IsMainFrame(), candidate->GetSiteInstance()->original_url(), dest_url); - bool src_has_effective_url = SiteInstanceImpl::HasEffectiveURL( - browser_context, candidate->GetSiteInstance()->original_url()); + bool src_has_effective_url = + !candidate->GetSiteInstance()->IsDefaultSiteInstance() && + SiteInstanceImpl::HasEffectiveURL( + browser_context, candidate->GetSiteInstance()->original_url()); bool dest_has_effective_url = SiteInstanceImpl::HasEffectiveURL(browser_context, dest_url); @@ -1772,10 +1775,8 @@ // original_url() and not the site URL, so that we can do this comparison // without the effective URL resolution if needed. if (candidate->last_successful_url().is_empty()) { - return SiteInstanceImpl::IsSameWebSite( - candidate->GetSiteInstance()->GetIsolationContext(), - candidate->GetSiteInstance()->original_url(), dest_url, - should_compare_effective_urls); + return candidate->GetSiteInstance()->IsOriginalUrlSameSite( + dest_url, should_compare_effective_urls); } // In the common case, we use the RenderFrameHost's last successful URL. Thus, @@ -1807,10 +1808,8 @@ // against the site URL. if (candidate->last_successful_url().IsAboutBlank() && candidate->GetLastCommittedOrigin().opaque() && - SiteInstanceImpl::IsSameWebSite( - candidate->GetSiteInstance()->GetIsolationContext(), - candidate->GetSiteInstance()->original_url(), dest_url, - should_compare_effective_urls)) { + candidate->GetSiteInstance()->IsOriginalUrlSameSite( + dest_url, should_compare_effective_urls)) { return true; }
diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/net/reporting_service_proxy.cc index 8081fd6..38b4037 100644 --- a/content/browser/net/reporting_service_proxy.cc +++ b/content/browser/net/reporting_service_proxy.cc
@@ -76,36 +76,36 @@ void QueueCspViolationReport(const GURL& url, const std::string& group, - const std::string& document_uri, - const std::string& referrer, - const std::string& violated_directive, + const std::string& document_url, + const base::Optional<std::string>& referrer, + const base::Optional<std::string>& blocked_url, const std::string& effective_directive, const std::string& original_policy, - const std::string& disposition, - const std::string& blocked_uri, - int line_number, - int column_number, const base::Optional<std::string>& source_file, + const base::Optional<std::string>& script_sample, + const std::string& disposition, uint16_t status_code, - const std::string& script_sample) override { + int line_number, + int column_number) override { auto body = std::make_unique<base::DictionaryValue>(); - body->SetString("document-uri", document_uri); - body->SetString("referrer", referrer); - body->SetString("violated-directive", violated_directive); - body->SetString("effective-directive", effective_directive); - body->SetString("original-policy", original_policy); - body->SetString("disposition", disposition); - body->SetString("blocked-uri", blocked_uri); - if (line_number) - body->SetInteger("line-number", line_number); - if (column_number) - body->SetInteger("column-number", column_number); + body->SetString("documentURL", document_url); + if (referrer) + body->SetString("referrer", *referrer); + if (blocked_url) + body->SetString("blockedURL", *blocked_url); + body->SetString("effectiveDirective", effective_directive); + body->SetString("originalPolicy", original_policy); if (source_file) body->SetString("sourceFile", *source_file); - if (status_code) - body->SetInteger("status-code", status_code); - body->SetString("script-sample", script_sample); - QueueReport(url, group, "csp", std::move(body)); + if (script_sample) + body->SetString("sample", *script_sample); + body->SetString("disposition", disposition); + body->SetInteger("statusCode", status_code); + if (line_number) + body->SetInteger("lineNumber", line_number); + if (column_number) + body->SetInteger("columnNumber", column_number); + QueueReport(url, group, "csp-violation", std::move(body)); } void QueueFeaturePolicyViolationReport(
diff --git a/content/browser/service_manager/service_manager_context.cc b/content/browser/service_manager/service_manager_context.cc index d555ed6..2d06168 100644 --- a/content/browser/service_manager/service_manager_context.cc +++ b/content/browser/service_manager/service_manager_context.cc
@@ -56,6 +56,7 @@ #include "media/media_buildflags.h" #include "media/mojo/buildflags.h" #include "media/mojo/interfaces/constants.mojom.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/platform/platform_channel.h" #include "mojo/public/cpp/system/invitation.h" #include "services/audio/public/mojom/constants.mojom.h" @@ -460,13 +461,11 @@ service_manager_ = std::make_unique<service_manager::ServiceManager>( std::move(service_process_launcher_factory), std::move(manifests)); - service_manager::mojom::ServicePtr packaged_services_service; - packaged_services_service.Bind(std::move(packaged_services_service_info)); service_manager_->RegisterService( service_manager::Identity(mojom::kPackagedServicesServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(packaged_services_service), nullptr); + std::move(packaged_services_service_info), mojo::NullReceiver()); service_manager_->SetInstanceQuitCallback( base::Bind(&OnInstanceQuitOnServiceManagerThread, std::move(ui_thread_task_runner))); @@ -557,19 +556,19 @@ base::BindRepeating(&ServiceManagerContext::OnUnhandledServiceRequest, weak_ptr_factory_.GetWeakPtr())); - service_manager::mojom::ServicePtr root_browser_service; + service_manager::mojom::ServicePtrInfo root_browser_service; ServiceManagerConnection::SetForProcess( ServiceManagerConnection::Create(mojo::MakeRequest(&root_browser_service), service_manager_thread_task_runner_)); auto* browser_connection = ServiceManagerConnection::GetForProcess(); - service_manager::mojom::PIDReceiverPtr pid_receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; packaged_services_connection_->GetConnector()->RegisterServiceInstance( service_manager::Identity(mojom::kBrowserServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(root_browser_service), mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(base::GetCurrentProcId()); + std::move(root_browser_service), metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(base::GetCurrentProcId()); RegisterInProcessService( packaged_services_connection_.get(),
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc index 7f8fc40e..e5d990b5 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc
@@ -8,6 +8,7 @@ #include "base/command_line.h" #include "base/debug/crash_logging.h" +#include "base/lazy_instance.h" #include "base/macros.h" #include "content/browser/browsing_instance.h" #include "content/browser/child_process_security_policy_impl.h" @@ -32,6 +33,17 @@ int32_t SiteInstanceImpl::next_site_instance_id_ = 1; +// static +const GURL& SiteInstanceImpl::GetDefaultSiteURL() { + struct DefaultSiteURL { + const GURL url = GURL("http://unisolated.invalid"); + }; + static base::LazyInstance<DefaultSiteURL>::Leaky default_site_url = + LAZY_INSTANCE_INITIALIZER; + + return default_site_url.Get().url; +} + SiteInstanceImpl::SiteInstanceImpl(BrowsingInstance* browsing_instance) : id_(next_site_instance_id_++), active_frame_count_(0), @@ -428,11 +440,35 @@ } bool SiteInstanceImpl::IsSameSiteWithURL(const GURL& url) { + if (IsDefaultSiteInstance()) { + // Consider |url| the same site if it could be handled by the + // default SiteInstance and we don't already have a SiteInstance for + // this URL. + // TODO(acolwell): Remove HasSiteInstance() call once we have a way to + // prevent SiteInstances with no site URL from being used for URLs + // that should be routed to the default SiteInstance. + DCHECK_EQ(site_, GetDefaultSiteURL()); + return site_ == GetSiteForURLInternal(GetIsolationContext(), url, + true /* should_use_effective_urls */, + true /* allow_default_site_url */) && + !browsing_instance_->HasSiteInstance(url); + } + return SiteInstanceImpl::IsSameWebSite( GetIsolationContext(), site_, url, true /* should_compare_effective_urls */); } +bool SiteInstanceImpl::IsOriginalUrlSameSite( + const GURL& dest_url, + bool should_compare_effective_urls) { + if (IsDefaultSiteInstance()) + return IsSameSiteWithURL(dest_url); + + return IsSameWebSite(GetIsolationContext(), original_url_, dest_url, + should_compare_effective_urls); +} + // static bool SiteInstanceImpl::IsSameWebSite(const IsolationContext& isolation_context, const GURL& real_src_url, @@ -442,6 +478,7 @@ BrowserContext* browser_context = isolation_context.browser_or_resource_context().ToBrowserContext(); DCHECK(browser_context); + DCHECK_NE(real_src_url, GetDefaultSiteURL()); GURL src_url = should_compare_effective_urls @@ -543,21 +580,24 @@ // For the process lock URL, convert |url| to a site without resolving |url| // to an effective URL. return SiteInstanceImpl::GetSiteForURLInternal( - isolation_context, url, false /* should_use_effective_urls */); + isolation_context, url, false /* should_use_effective_urls */, + false /* allow_default_site_url */); } // static GURL SiteInstanceImpl::GetSiteForURL(const IsolationContext& isolation_context, const GURL& real_url) { return GetSiteForURLInternal(isolation_context, real_url, - true /* should_use_effective_urls */); + true /* should_use_effective_urls */, + false /* allow_default_site_url */); } // static GURL SiteInstanceImpl::GetSiteForURLInternal( const IsolationContext& isolation_context, const GURL& real_url, - bool should_use_effective_urls) { + bool should_use_effective_urls, + bool allow_default_site_url) { // TODO(fsamuel, creis): For some reason appID is not recognized as a host. if (real_url.SchemeIs(kGuestScheme)) return real_url; @@ -576,11 +616,12 @@ // If the url has a host, then determine the site. Skip file URLs to avoid a // situation where site URL of file://localhost/ would mismatch Blink's origin // (which ignores the hostname in this case - see https://crbug.com/776160). + GURL site_url; if (!origin.host().empty() && origin.scheme() != url::kFileScheme) { if (SiteIsolationPolicy::IsStrictOriginIsolationEnabled()) return origin.GetURL(); - GURL site_url(GetSiteForOrigin(origin)); + site_url = GetSiteForOrigin(origin); // Isolated origins should use the full origin as their site URL. A // subdomain of an isolated origin should also use that isolated origin's @@ -603,62 +644,69 @@ if (should_use_effective_urls && url != real_url) { std::string non_translated_site_url( GetSiteForURLInternal(isolation_context, real_url, - false /* should_use_effective_urls */) + false /* should_use_effective_urls */, + allow_default_site_url) .spec()); GURL::Replacements replacements; replacements.SetRefStr(non_translated_site_url.c_str()); site_url = site_url.ReplaceComponents(replacements); } - - return site_url; - } - - // If there is no host but there is a scheme, return the scheme. - // This is useful for cases like file URLs. - if (!origin.opaque()) { - // Prefer to use the scheme of |origin| rather than |url|, to correctly - // cover blob:file: and filesystem:file: URIs (see also - // https://crbug.com/697111). - DCHECK(!origin.scheme().empty()); - return GURL(origin.scheme() + ":"); - } else if (url.has_scheme()) { - // In some cases, it is not safe to use just the scheme as a site URL, as - // that might allow two URLs created by different sites to share a process. - // See https://crbug.com/863623 and https://crbug.com/863069. - // - // TODO(alexmos,creis): This should eventually be expanded to certain other - // schemes, such as file:. - // TODO(creis): This currently causes problems with tests on Android and - // Android WebView. For now, skip it when Site Isolation is not enabled, - // since there's no need to isolate data and blob URLs from each other in - // that case. - bool is_site_isolation_enabled = - SiteIsolationPolicy::UseDedicatedProcessesForAllSites() || - SiteIsolationPolicy::AreIsolatedOriginsEnabled(); - if (is_site_isolation_enabled && - (url.SchemeIsBlob() || url.scheme() == url::kDataScheme)) { - // We get here for blob URLs of form blob:null/guid. Use the full URL - // with the guid in that case, which isolates all blob URLs with unique - // origins from each other. We also get here for browser-initiated - // navigations to data URLs, which have a unique origin and should only - // share a process when they are identical. Remove hash from the URL in - // either case, since same-document navigations shouldn't use a different - // site URL. - if (url.has_ref()) { - GURL::Replacements replacements; - replacements.ClearRef(); - url = url.ReplaceComponents(replacements); + } else { + // If there is no host but there is a scheme, return the scheme. + // This is useful for cases like file URLs. + if (!origin.opaque()) { + // Prefer to use the scheme of |origin| rather than |url|, to correctly + // cover blob:file: and filesystem:file: URIs (see also + // https://crbug.com/697111). + DCHECK(!origin.scheme().empty()); + site_url = GURL(origin.scheme() + ":"); + } else if (url.has_scheme()) { + // In some cases, it is not safe to use just the scheme as a site URL, as + // that might allow two URLs created by different sites to share a + // process. See https://crbug.com/863623 and https://crbug.com/863069. + // + // TODO(alexmos,creis): This should eventually be expanded to certain + // other schemes, such as file:. + // TODO(creis): This currently causes problems with tests on Android and + // Android WebView. For now, skip it when Site Isolation is not enabled, + // since there's no need to isolate data and blob URLs from each other in + // that case. + bool is_site_isolation_enabled = + SiteIsolationPolicy::UseDedicatedProcessesForAllSites() || + SiteIsolationPolicy::AreIsolatedOriginsEnabled(); + if (is_site_isolation_enabled && + (url.SchemeIsBlob() || url.scheme() == url::kDataScheme)) { + // We get here for blob URLs of form blob:null/guid. Use the full URL + // with the guid in that case, which isolates all blob URLs with unique + // origins from each other. We also get here for browser-initiated + // navigations to data URLs, which have a unique origin and should only + // share a process when they are identical. Remove hash from the URL in + // either case, since same-document navigations shouldn't use a + // different site URL. + if (url.has_ref()) { + GURL::Replacements replacements; + replacements.ClearRef(); + url = url.ReplaceComponents(replacements); + } + site_url = url; + } else { + DCHECK(!url.scheme().empty()); + site_url = GURL(url.scheme() + ":"); } - return url; + } else { + // Otherwise the URL should be invalid; return an empty site. + DCHECK(!url.is_valid()) << url; + return GURL(); } - - DCHECK(!url.scheme().empty()); - return GURL(url.scheme() + ":"); } - // Otherwise the URL should be invalid; return an empty site. - DCHECK(!url.is_valid()) << url; - return GURL(); + if (allow_default_site_url && + !base::FeatureList::IsEnabled( + features::kProcessSharingWithStrictSiteInstances) && + !DoesSiteURLRequireDedicatedProcess(isolation_context, site_url)) { + return GetDefaultSiteURL(); + } + return site_url; } // static
diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h index 1543b5a..a535477 100644 --- a/content/browser/site_instance_impl.h +++ b/content/browser/site_instance_impl.h
@@ -121,7 +121,16 @@ // Returns the URL which was used to set the |site_| for this SiteInstance. // May be empty if this SiteInstance does not have a |site_|. - const GURL& original_url() { return original_url_; } + const GURL& original_url() { + DCHECK(!IsDefaultSiteInstance()); + return original_url_; + } + + // Returns true if |original_url()| is the same site as + // |dest_url| or this object is a default SiteInstance and can be + // considered the same site as |dest_url|. + bool IsOriginalUrlSameSite(const GURL& dest_url, + bool should_compare_effective_urls); // Returns the URL which should be used in a LockToOrigin call for this // SiteInstance's process. This is the same as |site_| except for cases @@ -220,6 +229,9 @@ // - SiteInstanceImpl::CanAssociateWithSpareProcess(). void PreventAssociationWithSpareProcess(); + // Returns the special site URL used by the default SiteInstance. + static const GURL& GetDefaultSiteURL(); + // Get the effective URL for the given actual URL. This allows the // ContentBrowserClient to override the SiteInstance's site for certain URLs. // For example, Chrome uses this to replace hosted app URLs with extension @@ -316,9 +328,12 @@ // |should_use_effective_urls| specifies whether to resolve |url| to an // effective URL (via ContentBrowserClient::GetEffectiveURL()) before // determining the site. + // |allow_default_site_url| specifies whether the default SiteInstance site + // URL is allowed to be returned. static GURL GetSiteForURLInternal(const IsolationContext& isolation_context, const GURL& url, - bool should_use_effective_urls); + bool should_use_effective_urls, + bool allow_default_site_url); // Returns true if pages loaded from |site_url| ought to be handled only by a // renderer process isolated from other sites. If --site-per-process is used,
diff --git a/content/browser/site_instance_impl_unittest.cc b/content/browser/site_instance_impl_unittest.cc index 24287b4..40c1e24 100644 --- a/content/browser/site_instance_impl_unittest.cc +++ b/content/browser/site_instance_impl_unittest.cc
@@ -440,11 +440,13 @@ GURL expected_app_site_url(app_url.spec() + "#" + nonapp_site_url.spec()); { GURL site_url = SiteInstanceImpl::GetSiteForURLInternal( - isolation_context, test_url, false /* use_effective_urls */); + isolation_context, test_url, false /* use_effective_urls */, + false /* allow_default_site_url */); EXPECT_EQ(nonapp_site_url, site_url); site_url = SiteInstanceImpl::GetSiteForURLInternal( - isolation_context, test_url, true /* use_effective_urls */); + isolation_context, test_url, true /* use_effective_urls */, + false /* allow_default_site_url */); EXPECT_EQ(expected_app_site_url, site_url); }
diff --git a/content/common/service_manager/child_connection.cc b/content/common/service_manager/child_connection.cc index 6f643029..b359c59 100644 --- a/content/common/service_manager/child_connection.cc +++ b/content/common/service_manager/child_connection.cc
@@ -14,6 +14,7 @@ #include "base/strings/string_number_conversions.h" #include "content/common/child.mojom.h" #include "content/public/common/service_manager_connection.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/system/message_pipe.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/identity.h" @@ -87,27 +88,26 @@ void InitializeOnIOThread( const service_manager::Identity& child_identity, mojo::ScopedMessagePipeHandle service_pipe) { - service_manager::mojom::ServicePtr service; - service.Bind(mojo::InterfacePtrInfo<service_manager::mojom::Service>( - std::move(service_pipe), 0u)); - auto pid_receiver_request = mojo::MakeRequest(&pid_receiver_); - + auto metadata_receiver = remote_metadata_.BindNewPipeAndPassReceiver(); if (connector_) { - connector_->RegisterServiceInstance(child_identity, std::move(service), - std::move(pid_receiver_request)); + connector_->RegisterServiceInstance( + child_identity, + mojo::PendingRemote<service_manager::mojom::Service>( + std::move(service_pipe), 0), + std::move(metadata_receiver)); connector_->BindInterface(child_identity, &child_); } } void ShutDownOnIOThread() { connector_.reset(); - pid_receiver_.reset(); + remote_metadata_.reset(); } void SetProcessOnIOThread(base::Process process) { - DCHECK(pid_receiver_.is_bound()); - pid_receiver_->SetPID(process.Pid()); - pid_receiver_.reset(); + DCHECK(remote_metadata_); + remote_metadata_->SetPID(process.Pid()); + remote_metadata_.reset(); process_ = std::move(process); } @@ -119,7 +119,7 @@ service_manager::Identity child_identity_; // ServiceManagerConnection in the child monitors the lifetime of this pipe. mojom::ChildPtr child_; - service_manager::mojom::PIDReceiverPtr pid_receiver_; + mojo::Remote<service_manager::mojom::ProcessMetadata> remote_metadata_; // Hold onto the process, and thus its process handle, so that the pid will // remain valid. base::Process process_;
diff --git a/content/common/service_manager/service_manager_connection_impl_unittest.cc b/content/common/service_manager/service_manager_connection_impl_unittest.cc index f5e49fb5..f037b6b2 100644 --- a/content/common/service_manager/service_manager_connection_impl_unittest.cc +++ b/content/common/service_manager/service_manager_connection_impl_unittest.cc
@@ -9,10 +9,10 @@ #include "base/test/bind_test_util.h" #include "base/test/scoped_task_environment.h" #include "base/threading/thread.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" #include "testing/gtest/include/gtest/gtest.h" namespace content { @@ -37,22 +37,15 @@ [&event](service_manager::mojom::ServiceRequest) { event.Signal(); })); - connection.Start(); - service_manager::BindSourceInfo source_info( - service_manager::Identity(service_manager::mojom::kServiceName, - service_manager::kSystemInstanceGroup, - base::Token{}, base::Token::CreateRandom()), - service_manager::CapabilitySet()); - service_manager::mojom::ServiceFactoryPtr factory; - service->OnBindInterface( - source_info, service_manager::mojom::ServiceFactory::Name_, - mojo::MakeRequest(&factory).PassMessagePipe(), base::DoNothing()); - service_manager::mojom::ServicePtr created_service; - service_manager::mojom::PIDReceiverPtr pid_receiver; - mojo::MakeRequest(&pid_receiver); - factory->CreateService(mojo::MakeRequest(&created_service), kTestServiceName, - std::move(pid_receiver)); + + mojo::PendingRemote<service_manager::mojom::Service> packaged_service; + mojo::PendingRemote<service_manager::mojom::ProcessMetadata> metadata; + ignore_result(metadata.InitWithNewPipeAndPassReceiver()); + service->CreatePackagedServiceInstance( + service_manager::Identity(kTestServiceName, base::Token::CreateRandom(), + base::Token(), base::Token::CreateRandom()), + packaged_service.InitWithNewPipeAndPassReceiver(), std::move(metadata)); event.Wait(); }
diff --git a/device/bluetooth/bluetooth_adapter.cc b/device/bluetooth/bluetooth_adapter.cc index d445aadb..79bb58d 100644 --- a/device/bluetooth/bluetooth_adapter.cc +++ b/device/bluetooth/bluetooth_adapter.cc
@@ -304,8 +304,13 @@ const std::vector<uint8_t>& value) { DCHECK_EQ(characteristic->GetService()->GetDevice()->GetAdapter(), this); - for (auto& observer : observers_) + base::WeakPtr<BluetoothRemoteGattCharacteristic> weak_characteristic = + characteristic->GetWeakPtr(); + for (auto& observer : observers_) { + if (!weak_characteristic) + break; observer.GattCharacteristicValueChanged(this, characteristic, value); + } } void BluetoothAdapter::NotifyGattDescriptorValueChanged(
diff --git a/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc b/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc index d371f32..6fcf029 100644 --- a/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc +++ b/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc
@@ -14,6 +14,7 @@ #include "build/build_config.h" #include "device/bluetooth/bluetooth_remote_gatt_characteristic.h" #include "device/bluetooth/bluetooth_remote_gatt_service.h" +#include "device/bluetooth/test/mock_bluetooth_adapter.h" #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" #include "testing/gtest/include/gtest/gtest.h" @@ -31,6 +32,9 @@ #include "device/bluetooth/test/bluetooth_test_fuchsia.h" #endif +using testing::_; +using testing::Invoke; + namespace device { class BluetoothRemoteGattCharacteristicTest : @@ -3117,6 +3121,60 @@ EXPECT_EQ(0, observer.gatt_characteristic_value_changed_count()); } +// Tests that closing the GATT connection during a characteristic +// value notification is safe. +#if defined(OS_ANDROID) || defined(OS_MACOSX) +#define MAYBE_GattCharacteristicValueChanged_DisconnectDuring \ + GattCharacteristicValueChanged_DisconnectDuring +#else +#define MAYBE_GattCharacteristicValueChanged_DisconnectDuring \ + DISABLED_GattCharacteristicValueChanged_DisconnectDuring +#endif +#if defined(OS_WIN) +TEST_P(BluetoothRemoteGattCharacteristicTestWinrtOnly, + GattCharacteristicValueChanged_DisconnectDuring) { +#else +TEST_F(BluetoothRemoteGattCharacteristicTest, + MAYBE_GattCharacteristicValueChanged_DisconnectDuring) { +#endif + if (!PlatformSupportsLowEnergy()) { + LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; + return; + } + ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); + MockBluetoothAdapter::Observer observer1(adapter_); + MockBluetoothAdapter::Observer observer2(adapter_); + + // |observer1| will be notified first and close the GATT connection which + // may prevent |observer2| from being notified if |characteristic1_| has been + // freed. + base::RunLoop loop; + EXPECT_CALL(observer1, GattCharacteristicValueChanged(adapter_.get(), + characteristic1_, _)) + .WillOnce( + Invoke([&](BluetoothAdapter*, BluetoothRemoteGattCharacteristic*, + const std::vector<uint8_t>& value) { + gatt_connections_[0]->Disconnect(); + loop.Quit(); + })); + EXPECT_CALL(observer2, GattCharacteristicValueChanged(adapter_.get(), + characteristic1_, _)) + .Times(testing::AtMost(1)) + .WillRepeatedly( + Invoke([&](BluetoothAdapter*, + BluetoothRemoteGattCharacteristic* characteristic, + const std::vector<uint8_t>& value) { + // Call a method on |characteristic| to check the pointer is still + // valid. + EXPECT_EQ(value, characteristic->GetValue()); + })); + + std::vector<uint8_t> empty_vector; + SimulateGattCharacteristicChanged(characteristic1_, empty_vector); + loop.Run(); +} + #if defined(OS_ANDROID) #define MAYBE_GetDescriptors_FindNone GetDescriptors_FindNone #else
diff --git a/device/bluetooth/test/mock_bluetooth_adapter.cc b/device/bluetooth/test/mock_bluetooth_adapter.cc index 363bd10d..29932eb4 100644 --- a/device/bluetooth/test/mock_bluetooth_adapter.cc +++ b/device/bluetooth/test/mock_bluetooth_adapter.cc
@@ -15,8 +15,15 @@ using testing::Invoke; using testing::_; -MockBluetoothAdapter::Observer::Observer() = default; -MockBluetoothAdapter::Observer::~Observer() = default; +MockBluetoothAdapter::Observer::Observer( + scoped_refptr<BluetoothAdapter> adapter) + : adapter_(std::move(adapter)) { + adapter_->AddObserver(this); +} + +MockBluetoothAdapter::Observer::~Observer() { + adapter_->RemoveObserver(this); +} MockBluetoothAdapter::MockBluetoothAdapter() { ON_CALL(*this, AddObserver(_))
diff --git a/device/bluetooth/test/mock_bluetooth_adapter.h b/device/bluetooth/test/mock_bluetooth_adapter.h index b33944e..e08a87be 100644 --- a/device/bluetooth/test/mock_bluetooth_adapter.h +++ b/device/bluetooth/test/mock_bluetooth_adapter.h
@@ -10,6 +10,7 @@ #include <vector> #include "base/callback.h" +#include "base/macros.h" #include "build/build_config.h" #include "device/bluetooth/bluetooth_adapter.h" #include "device/bluetooth/bluetooth_device.h" @@ -23,7 +24,7 @@ public: class Observer : public BluetoothAdapter::Observer { public: - Observer(); + Observer(scoped_refptr<BluetoothAdapter> adapter); ~Observer() override; MOCK_METHOD2(AdapterPresentChanged, void(BluetoothAdapter*, bool)); @@ -32,6 +33,15 @@ MOCK_METHOD2(DeviceAdded, void(BluetoothAdapter*, BluetoothDevice*)); MOCK_METHOD2(DeviceChanged, void(BluetoothAdapter*, BluetoothDevice*)); MOCK_METHOD2(DeviceRemoved, void(BluetoothAdapter*, BluetoothDevice*)); + MOCK_METHOD3(GattCharacteristicValueChanged, + void(BluetoothAdapter*, + BluetoothRemoteGattCharacteristic*, + const std::vector<uint8_t>&)); + + private: + const scoped_refptr<BluetoothAdapter> adapter_; + + DISALLOW_COPY_AND_ASSIGN(Observer); }; MockBluetoothAdapter();
diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc index a83cb1f..012548b 100644 --- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc +++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
@@ -431,8 +431,6 @@ extensions::ScriptExecutor* WebViewInternalExecuteCodeFunction::GetScriptExecutor(std::string* error) { - if (!render_frame_host() || !render_frame_host()->GetProcess()) - return nullptr; WebViewGuest* guest = WebViewGuest::From(source_process_id(), guest_instance_id_); if (!guest) @@ -452,8 +450,6 @@ bool WebViewInternalExecuteCodeFunction::LoadFileForWebUI( const std::string& file_src, WebUIURLFetcher::WebUILoadFileCallback callback) { - if (!render_frame_host() || !render_frame_host()->GetProcess()) - return false; WebViewGuest* guest = WebViewGuest::From(source_process_id(), guest_instance_id_); if (!guest || host_id().type() != HostID::WEBUI)
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc index c6cdc0bd..a97320d1 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc
@@ -72,33 +72,6 @@ } // namespace -MimeHandlerViewAttachHelper::GuestEmbedderFrameLifetimeObserver:: - GuestEmbedderFrameLifetimeObserver(MimeHandlerViewGuest* guest_view, - MimeHandlerViewAttachHelper* helper) - : content::WebContentsObserver(content::WebContents::FromRenderFrameHost( - guest_view->GetEmbedderFrame())), - guest_view_(guest_view), - attach_helper_(helper) {} - -MimeHandlerViewAttachHelper::GuestEmbedderFrameLifetimeObserver:: - ~GuestEmbedderFrameLifetimeObserver() {} - -void MimeHandlerViewAttachHelper::GuestEmbedderFrameLifetimeObserver:: - RenderFrameDeleted(RenderFrameHost* render_frame_host) { - if (render_frame_host != guest_view_->GetEmbedderFrame()) - return; - // This could happen if the embedder frame of MHVG goes away during - // attaching (https://crbug.com/959572). - int32_t instance_id = guest_view_->element_instance_id(); - guest_view_->Destroy(true /* also_delete */); - // Erasing from helper map will end up destroying |this|. - attach_helper_->pending_guests_.erase(instance_id); -} - -void MimeHandlerViewAttachHelper::GuestEmbedderFrameLifetimeObserver:: - FrameDeleted(RenderFrameHost* render_frame_host) { - RenderFrameDeleted(render_frame_host); -} // static MimeHandlerViewAttachHelper* MimeHandlerViewAttachHelper::Get( @@ -152,8 +125,7 @@ int32_t element_instance_id, bool is_full_page_plugin) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - pending_guests_[element_instance_id] = - std::make_unique<GuestEmbedderFrameLifetimeObserver>(guest_view, this); + pending_guests_[element_instance_id] = guest_view; outer_contents_frame->PrepareForInnerWebContentsAttach(base::BindOnce( &MimeHandlerViewAttachHelper::ResumeAttachOrDestroy, weak_factory_.GetWeakPtr(), element_instance_id, is_full_page_plugin)); @@ -182,12 +154,8 @@ bool is_full_page_plugin, content::RenderFrameHost* plugin_rfh) { DCHECK(!plugin_rfh || (plugin_rfh->GetProcess() == render_process_host_)); - auto it = pending_guests_.find(element_instance_id); - auto* guest_view = - (it != pending_guests_.end()) ? it->second->guest_view() : nullptr; - if (!guest_view) - return; - pending_guests_.erase(it); + auto* guest_view = pending_guests_[element_instance_id]; + pending_guests_.erase(element_instance_id); if (!plugin_rfh) { mojom::MimeHandlerViewContainerManagerPtr container_manager; guest_view->GetEmbedderFrame()->GetRemoteInterfaces()->GetInterface(
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.h b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.h index 8820d3b..5ddf78b 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.h +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.h
@@ -13,7 +13,6 @@ #include "base/containers/flat_map.h" #include "base/macros.h" #include "content/public/browser/render_process_host_observer.h" -#include "content/public/browser/web_contents_observer.h" #include "extensions/common/mojo/guest_view.mojom.h" namespace content { @@ -67,28 +66,6 @@ bool is_full_page_plugin); private: - // Helper class which tracks the lifetime of the embedder frame of a GuestView - // from the time AttachToOuterWebContents is called to when the GuestView is - // fully attached to its embedder. - class GuestEmbedderFrameLifetimeObserver - : public content::WebContentsObserver { - public: - GuestEmbedderFrameLifetimeObserver(MimeHandlerViewGuest* guest_view, - MimeHandlerViewAttachHelper* helper); - ~GuestEmbedderFrameLifetimeObserver() override; - - MimeHandlerViewGuest* guest_view() const { return guest_view_; } - - void RenderFrameDeleted( - content::RenderFrameHost* render_frame_host) override; - void FrameDeleted(content::RenderFrameHost* render_frame_host) override; - - private: - MimeHandlerViewGuest* const guest_view_; - MimeHandlerViewAttachHelper* const attach_helper_; - }; - friend class GuestEmbedderFrameLifetimeObserver; - // Called after the content layer finishes preparing a frame for attaching to // the embedder WebContents. If |plugin_rfh| is nullptr then attaching is not // possible and the guest should be destroyed; otherwise it is safe to proceed @@ -109,8 +86,7 @@ MimeHandlerViewAttachHelper(content::RenderProcessHost* render_process_host); - base::flat_map<int32_t, std::unique_ptr<GuestEmbedderFrameLifetimeObserver>> - pending_guests_; + base::flat_map<int32_t, MimeHandlerViewGuest*> pending_guests_; content::RenderProcessHost* const render_process_host_;
diff --git a/gpu/command_buffer/service/external_vk_image_factory.cc b/gpu/command_buffer/service/external_vk_image_factory.cc index d8f3fe0..2b895efb 100644 --- a/gpu/command_buffer/service/external_vk_image_factory.cc +++ b/gpu/command_buffer/service/external_vk_image_factory.cc
@@ -13,6 +13,7 @@ #include "gpu/vulkan/vulkan_command_buffer.h" #include "gpu/vulkan/vulkan_command_pool.h" #include "gpu/vulkan/vulkan_device_queue.h" +#include "gpu/vulkan/vulkan_fence_helper.h" #include "gpu/vulkan/vulkan_function_pointers.h" #include "gpu/vulkan/vulkan_implementation.h" #include "third_party/skia/include/core/SkPromiseImageTexture.h" @@ -26,8 +27,10 @@ ExternalVkImageFactory::~ExternalVkImageFactory() { if (command_pool_) { - command_pool_->Destroy(); - command_pool_.reset(); + context_state_->vk_context_provider() + ->GetDeviceQueue() + ->GetFenceHelper() + ->EnqueueVulkanObjectCleanupForSubmittedWork(std::move(command_pool_)); } } @@ -204,11 +207,11 @@ return nullptr; } vk_backing->EndAccess(false /* readonly */, std::move(semaphore_handle)); - VkQueue queue = - context_state_->vk_context_provider()->GetDeviceQueue()->GetVulkanQueue(); - // TODO(https://crbug.com/932260): avoid blocking CPU thread. - vkQueueWaitIdle(queue); - vkDestroySemaphore(device, semaphore, nullptr /* pAllocator */); + + context_state_->vk_context_provider() + ->GetDeviceQueue() + ->GetFenceHelper() + ->EnqueueSemaphoreCleanupForSubmittedWork(semaphore); return backing; } @@ -335,14 +338,11 @@ nullptr, 0, nullptr, 1, &image_memory_barrier); } command_buffer->Submit(0, nullptr, 0, nullptr); - // TODO(crbug.com/932260): Remove blocking call to VkQueueWaitIdle once we - // have a better approach for determining when |command_buffer| is safe to - // destroy. - vkQueueWaitIdle(context_state_->vk_context_provider() - ->GetDeviceQueue() - ->GetVulkanQueue()); - command_buffer->Destroy(); - command_buffer.reset(); + + context_state_->vk_context_provider() + ->GetDeviceQueue() + ->GetFenceHelper() + ->EnqueueVulkanObjectCleanupForSubmittedWork(std::move(command_buffer)); } } // namespace gpu
diff --git a/gpu/command_buffer/service/raster_decoder.cc b/gpu/command_buffer/service/raster_decoder.cc index d501f10..819e523 100644 --- a/gpu/command_buffer/service/raster_decoder.cc +++ b/gpu/command_buffer/service/raster_decoder.cc
@@ -780,7 +780,7 @@ .fNumSemaphores = end_semaphores_.size(), .fSignalSemaphores = end_semaphores_.data(), }; - CreateCleanupCallbackForSkiaFlush( + AddVulkanCleanupTaskForSkiaFlush( shared_context_state_->vk_context_provider(), &flush_info); auto result = sk_surface_->flush( SkSurface::BackendSurfaceAccess::kPresent, flush_info); @@ -2230,7 +2230,7 @@ .fNumSemaphores = end_semaphores_.size(), .fSignalSemaphores = end_semaphores_.data(), }; - CreateCleanupCallbackForSkiaFlush( + AddVulkanCleanupTaskForSkiaFlush( shared_context_state_->vk_context_provider(), &flush_info); if (use_ddl_) { // TODO(penghuang): Switch to sk_surface_->flush() when skia flush bug is
diff --git a/gpu/command_buffer/service/skia_utils.cc b/gpu/command_buffer/service/skia_utils.cc index 58dfb8e7..ec81f696 100644 --- a/gpu/command_buffer/service/skia_utils.cc +++ b/gpu/command_buffer/service/skia_utils.cc
@@ -21,6 +21,23 @@ namespace gpu { +namespace { + +struct FlushCleanupContext { + std::vector<base::OnceClosure> cleanup_tasks; +}; + +void CleanupAfterSkiaFlush(void* context) { + FlushCleanupContext* flush_context = + static_cast<FlushCleanupContext*>(context); + for (auto& task : flush_context->cleanup_tasks) { + std::move(task).Run(); + } + delete flush_context; +} + +} // namespace + bool GetGrBackendTexture(const gl::GLVersionInfo* version_info, GLenum target, const gfx::Size& size, @@ -43,17 +60,32 @@ return true; } -void CreateCleanupCallbackForSkiaFlush( +void AddCleanupTaskForSkiaFlush(base::OnceClosure task, + GrFlushInfo* flush_info) { + FlushCleanupContext* context; + if (!flush_info->fFinishedProc) { + DCHECK(!flush_info->fFinishedContext); + flush_info->fFinishedProc = &CleanupAfterSkiaFlush; + context = new FlushCleanupContext(); + flush_info->fFinishedContext = context; + } else { + DCHECK_EQ(flush_info->fFinishedProc, &CleanupAfterSkiaFlush); + DCHECK(flush_info->fFinishedContext); + context = static_cast<FlushCleanupContext*>(flush_info->fFinishedContext); + } + context->cleanup_tasks.push_back(std::move(task)); +} + +void AddVulkanCleanupTaskForSkiaFlush( viz::VulkanContextProvider* context_provider, GrFlushInfo* flush_info) { - DCHECK(!flush_info->fFinishedProc); - DCHECK(!flush_info->fFinishedContext); #if BUILDFLAG(ENABLE_VULKAN) if (context_provider) { - context_provider->GetDeviceQueue() - ->GetFenceHelper() - ->EnqueueExternalCallback(&flush_info->fFinishedProc, - &flush_info->fFinishedContext); + auto task = context_provider->GetDeviceQueue() + ->GetFenceHelper() + ->CreateExternalCallback(); + if (task) + AddCleanupTaskForSkiaFlush(std::move(task), flush_info); } #endif }
diff --git a/gpu/command_buffer/service/skia_utils.h b/gpu/command_buffer/service/skia_utils.h index 5f47e70..3edf8b47 100644 --- a/gpu/command_buffer/service/skia_utils.h +++ b/gpu/command_buffer/service/skia_utils.h
@@ -5,6 +5,7 @@ #ifndef GPU_COMMAND_BUFFER_SERVICE_SKIA_UTILS_H_ #define GPU_COMMAND_BUFFER_SERVICE_SKIA_UTILS_H_ +#include "base/callback_forward.h" #include "components/viz/common/resources/resource_format.h" #include "gpu/gpu_gles2_export.h" #include "third_party/skia/include/core/SkSurface.h" @@ -39,9 +40,13 @@ viz::ResourceFormat resource_format, GrBackendTexture* gr_texture); +// Adds a task to be executed when the flush in |flush_info| is complete. +GPU_GLES2_EXPORT void AddCleanupTaskForSkiaFlush(base::OnceClosure task, + GrFlushInfo* flush_info); + // Helper which associates cleanup callbacks with a Skia GrFlushInfo's callback. // Is a no-op if |context_provider| is null. -GPU_GLES2_EXPORT void CreateCleanupCallbackForSkiaFlush( +GPU_GLES2_EXPORT void AddVulkanCleanupTaskForSkiaFlush( viz::VulkanContextProvider* context_provider, GrFlushInfo* flush_info);
diff --git a/gpu/vulkan/vulkan_fence_helper.cc b/gpu/vulkan/vulkan_fence_helper.cc index cf8f62e..c1c17cf6 100644 --- a/gpu/vulkan/vulkan_fence_helper.cc +++ b/gpu/vulkan/vulkan_fence_helper.cc
@@ -142,40 +142,30 @@ return EnqueueFence(fence); } -void VulkanFenceHelper::EnqueueExternalCallback( - ExternalCallback* callback, - ExternalCallbackContext* context) { +base::OnceClosure VulkanFenceHelper::CreateExternalCallback() { // No need to do callback tracking if there are no cleanup tasks to run. if (tasks_pending_fence_.empty()) - return; + return base::OnceClosure(); - // Get a generaiton ID for this callback and associate existing cleanup + // Get a generation ID for this callback and associate existing cleanup // tasks. uint64_t generation_id = next_generation_++; cleanup_tasks_.emplace_back(generation_id, std::move(tasks_pending_fence_)); tasks_pending_fence_ = std::vector<CleanupTask>(); - // Populate |callback| and |context|. - struct ExternalCallbackData { - base::WeakPtr<VulkanFenceHelper> fence_helper; - uint64_t generation_id; - }; - // As we must pass a void* which may outlive this class, use "new" here. We - // will delete |context| in the callback below. - *context = - new ExternalCallbackData{weak_factory_.GetWeakPtr(), generation_id}; - *callback = [](ExternalCallbackContext context) { - auto* callback_data = static_cast<ExternalCallbackData*>(context); - if (auto* fence_helper = callback_data->fence_helper.get()) { - // If |current_generation_| is ahead of the callback's |generation_id|, - // the callback came late. Ignore it. - if (callback_data->generation_id > fence_helper->current_generation_) { - fence_helper->current_generation_ = callback_data->generation_id; - fence_helper->ProcessCleanupTasks(); - } - } - delete callback_data; - }; + return base::BindOnce( + [](base::WeakPtr<VulkanFenceHelper> fence_helper, + uint64_t generation_id) { + if (!fence_helper) + return; + // If |current_generation_| is ahead of the callback's + // |generation_id|, the callback came late. Ignore it. + if (generation_id > fence_helper->current_generation_) { + fence_helper->current_generation_ = generation_id; + fence_helper->ProcessCleanupTasks(); + } + }, + weak_factory_.GetWeakPtr(), generation_id); } void VulkanFenceHelper::EnqueueSemaphoreCleanupForSubmittedWork(
diff --git a/gpu/vulkan/vulkan_fence_helper.h b/gpu/vulkan/vulkan_fence_helper.h index feef902..4e006bb1 100644 --- a/gpu/vulkan/vulkan_fence_helper.h +++ b/gpu/vulkan/vulkan_fence_helper.h
@@ -7,6 +7,7 @@ #include <vulkan/vulkan.h> +#include "base/bind_helpers.h" #include "base/callback.h" #include "base/containers/circular_deque.h" #include "base/macros.h" @@ -69,18 +70,14 @@ // TODO(ericrk): We should avoid this in all cases if possible. FenceHandle GenerateCleanupFence(); - // Helper for associating cleanup tasks with a callback which will be run - // after a future fence submission. Used in cases where an external - // component (Skia) is submitting / waiting on a fence and cannot share that - // fence with this class. + // Creates a callback that calls pending cleanup tasks. Used in cases where an + // external component (Skia) is submitting / waiting on a fence and cannot + // share that fence with this class. // Note: It is important that no new cleanup tasks or fences are inserted // between this call and the submission of the fence which will eventually // trigger this callback. Doing so could cause the callbacks associated // with this call to run out of order / incorrectly. - using ExternalCallbackContext = void*; - using ExternalCallback = void (*)(ExternalCallbackContext); - void EnqueueExternalCallback(ExternalCallback* callback, - ExternalCallbackContext* context); + base::OnceClosure CreateExternalCallback(); // Helper functions which allow clients to wait for or check the statusof a // fence submitted with EnqueueFence. @@ -99,7 +96,8 @@ using CleanupTask = base::OnceCallback<void(VulkanDeviceQueue* device_queue, bool device_lost)>; // Submits a cleanup task for already submitted work. ProcessCleanupTasks - // must be called periodically to ensure these run. + // must be called periodically to ensure these run. Cleanup tasks will be + // executed in order they are enqueued. void EnqueueCleanupTaskForSubmittedWork(CleanupTask task); // Processes CleanupTasks for which a fence has passed. void ProcessCleanupTasks(); @@ -109,6 +107,9 @@ std::vector<VkSemaphore> semaphores); void EnqueueImageCleanupForSubmittedWork(VkImage image, VkDeviceMemory memory); + // Helpers for VulkanCommandBuffer, VulkanCommandPool, etc + template <typename T> + void EnqueueVulkanObjectCleanupForSubmittedWork(std::unique_ptr<T> obj); private: void PerformImmediateCleanup(); @@ -142,6 +143,15 @@ DISALLOW_COPY_AND_ASSIGN(VulkanFenceHelper); }; +template <typename T> +void VulkanFenceHelper::EnqueueVulkanObjectCleanupForSubmittedWork( + std::unique_ptr<T> obj) { + EnqueueCleanupTaskForSubmittedWork( + base::BindOnce([](std::unique_ptr<T> obj, VulkanDeviceQueue* device_queue, + bool device_lost) { obj->Destroy(); }, + std::move(obj))); +} + } // namespace gpu #endif // GPU_VULKAN_VULKAN_FENCE_HELPER_H_
diff --git a/gpu/vulkan/vulkan_fence_helper_unittest.cc b/gpu/vulkan/vulkan_fence_helper_unittest.cc index 9efcca1..8e3d9d1 100644 --- a/gpu/vulkan/vulkan_fence_helper_unittest.cc +++ b/gpu/vulkan/vulkan_fence_helper_unittest.cc
@@ -101,11 +101,9 @@ base::BindOnce([](bool* cleanup_run, VulkanDeviceQueue* device_queue, bool is_lost) { *cleanup_run = true; }, &cleanup_run)); - VulkanFenceHelper::ExternalCallback callback; - VulkanFenceHelper::ExternalCallbackContext context; - fence_helper->EnqueueExternalCallback(&callback, &context); + auto cleanup_closure = fence_helper->CreateExternalCallback(); EXPECT_FALSE(cleanup_run); - callback(context); + std::move(cleanup_closure).Run(); EXPECT_TRUE(cleanup_run); } @@ -126,9 +124,7 @@ } // The first 5 callbacks use a callback to trigger. - VulkanFenceHelper::ExternalCallback callback; - VulkanFenceHelper::ExternalCallbackContext context; - fence_helper->EnqueueExternalCallback(&callback, &context); + auto cleanup_closure = fence_helper->CreateExternalCallback(); // Enqueue 5 more callbacks. for (int i = 5; i < 10; i++) { @@ -147,7 +143,7 @@ EXPECT_EQ(10u, cleanups_run); // Running the callback now should be a no-op. - callback(context); + std::move(cleanup_closure).Run(); EXPECT_EQ(10u, cleanups_run); } @@ -179,13 +175,11 @@ } // The next 5 callbacks use a callback to trigger. - VulkanFenceHelper::ExternalCallback callback; - VulkanFenceHelper::ExternalCallbackContext context; - fence_helper->EnqueueExternalCallback(&callback, &context); + auto cleanup_closure = fence_helper->CreateExternalCallback(); - // Signal the fence, all callbacks should run. + // Call the cleanup closure, all callbacks should run. // Generate a cleanup fence for the next 5 callbacks. - callback(context); + std::move(cleanup_closure).Run(); EXPECT_EQ(10u, cleanups_run); }
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index 007b9a1b..9683f34 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -1898,6 +1898,30 @@ <message name="IDS_IOS_TRANSLATE_INFOBAR_TRANSLATING_ACCESSIBILITY_ANNOUNCEMENT" desc="The accessibility announcement read by Voice Over when the Translate Infobar UI is shown in translating mode. [Length: unlimited] [iOS only]"> Translating the page to <ph name="language">$1<ex>French</ex></ph>. Options available near bottom of the screen. </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_TITLE" desc="Title for the language settings menu entry and page. [Length: 25em] [iOS only]"> + Languages + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_ADD_LANGUAGE_TITLE" desc="Title for the add language page of language settings. [Length: 25em] [iOS only]"> + Add Language + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_HEADER" desc="Header for the fluent languages section in the language settings page. [Length: unlimited] [iOS only]"> + Websites will show text in your preferred language, when possible. + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_ADD_LANGUAGE_BUTTON_TITLE" desc="Title for the button to add a language to the list of fluent languages in the language settings page. [Length: 30em] [iOS only]"> + Add Language... + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_TRANSLATE_SWITCH_TITLE" desc="Title for the switch to enable or disable translation in the language settings page. [Length: 30em] [iOS only]" meaning="Turning this switch on enables offering translation and turning it off disables offering translation."> + Translate Pages + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_TRANSLATE_SWITCH_SUBTITLE" desc="Subtitle for the switch to enable or disable translation in the language settings page. [Length: unlimited] [iOS only]" meaning="This switch controls offering translation for pages in languages other than the languages listed above."> + Offer to translate pages in other languages + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_NEVER_TRANSLATE_TITLE" desc="Label shown next to a language for which translation is not offered. [Length: 25em] [iOS only]"> + Never Translate + </message> + <message name="IDS_IOS_LANGUAGE_SETTINGS_OFFER_TO_TRANSLATE_TITLE" desc="Label shown next to a language for which translation is offered. [Length: 25em] [iOS only]"> + Offer to Translate + </message> <message name="IDS_IOS_TRANSLATE_SETTING" desc="Title for the view and option in Settings for Translate. [Length: 25em] [iOS only]"> Google Translate </message>
diff --git a/ios/chrome/browser/about_flags.mm b/ios/chrome/browser/about_flags.mm index e8a1848..eee58f5 100644 --- a/ios/chrome/browser/about_flags.mm +++ b/ios/chrome/browser/about_flags.mm
@@ -580,6 +580,9 @@ flag_descriptions::kAutofillPruneSuggestionsName, flag_descriptions::kAutofillPruneSuggestionsDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(autofill::features::kAutofillPruneSuggestions)}, + {"language-settings", flag_descriptions::kLanguageSettingsName, + flag_descriptions::kLanguageSettingsDescription, flags_ui::kOsIos, + FEATURE_VALUE_TYPE(kLanguageSettings)}, }; // Add all switches from experimental flags to |command_line|.
diff --git a/ios/chrome/browser/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/ios_chrome_flag_descriptions.cc index 93480f9..774cbdfa 100644 --- a/ios/chrome/browser/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/ios_chrome_flag_descriptions.cc
@@ -289,6 +289,11 @@ "an individual promotion causes that promotion but no other promotions to " "occur."; +const char kLanguageSettingsName[] = "Language Settings"; +const char kLanguageSettingsDescription[] = + "Enables the Language Settings page allowing modifications to user " + "preferred languages and translate preferences."; + const char kMarkHttpAsName[] = "Mark non-secure origins as non-secure"; const char kMarkHttpAsDescription[] = "Change the UI treatment for HTTP pages";
diff --git a/ios/chrome/browser/ios_chrome_flag_descriptions.h b/ios/chrome/browser/ios_chrome_flag_descriptions.h index 83789782..32a07345 100644 --- a/ios/chrome/browser/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/ios_chrome_flag_descriptions.h
@@ -236,6 +236,10 @@ extern const char kInProductHelpDemoModeName[]; extern const char kInProductHelpDemoModeDescription[]; +// Title and description for the flag to enable the language settings page. +extern const char kLanguageSettingsName[]; +extern const char kLanguageSettingsDescription[]; + // Title, description, and options for the MarkHttpAs setting that controls // display of omnibox warnings about non-secure pages. extern const char kMarkHttpAsName[];
diff --git a/ios/chrome/browser/translate/BUILD.gn b/ios/chrome/browser/translate/BUILD.gn index ba1eab1..bbf832c 100644 --- a/ios/chrome/browser/translate/BUILD.gn +++ b/ios/chrome/browser/translate/BUILD.gn
@@ -32,8 +32,8 @@ "translate_ranker_factory.h", "translate_ranker_metrics_provider.cc", "translate_ranker_metrics_provider.h", - "translate_service_ios.cc", "translate_service_ios.h", + "translate_service_ios.mm", ] deps = [ "//base",
diff --git a/ios/chrome/browser/translate/translate_service_ios.h b/ios/chrome/browser/translate/translate_service_ios.h index 840ffe6..4bbc3a7f 100644 --- a/ios/chrome/browser/translate/translate_service_ios.h +++ b/ios/chrome/browser/translate/translate_service_ios.h
@@ -9,6 +9,11 @@ #include "components/web_resource/resource_request_allowed_notifier.h" class GURL; +class PrefService; + +namespace language { +class LanguageModel; +} // namespace language // Singleton managing the resources required for Translate. class TranslateServiceIOS @@ -20,6 +25,11 @@ // Must be called to shut down the Translate feature. static void Shutdown(); + // Returns the language to translate to. For more details, see + // TranslateManager::GetTargetLanguage. + static std::string GetTargetLanguage(PrefService* prefs, + language::LanguageModel* language_model); + // Returns true if the URL can be translated. static bool IsTranslatableURL(const GURL& url);
diff --git a/ios/chrome/browser/translate/translate_service_ios.cc b/ios/chrome/browser/translate/translate_service_ios.mm similarity index 79% rename from ios/chrome/browser/translate/translate_service_ios.cc rename to ios/chrome/browser/translate/translate_service_ios.mm index 34e7730..7faef36 100644 --- a/ios/chrome/browser/translate/translate_service_ios.cc +++ b/ios/chrome/browser/translate/translate_service_ios.mm
@@ -6,12 +6,19 @@ #include "base/bind.h" #include "base/logging.h" +#include "components/language/core/browser/language_model.h" +#include "components/prefs/pref_service.h" #include "components/translate/core/browser/translate_download_manager.h" #include "components/translate/core/browser/translate_manager.h" #include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/chrome_url_constants.h" +#include "ios/chrome/browser/translate/chrome_ios_translate_client.h" #include "url/gurl.h" +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + namespace { // The singleton instance of TranslateServiceIOS. TranslateServiceIOS* g_translate_service = nullptr; @@ -26,8 +33,7 @@ resource_request_allowed_notifier_.Init(this, true /* leaky */); } -TranslateServiceIOS::~TranslateServiceIOS() { -} +TranslateServiceIOS::~TranslateServiceIOS() {} // static void TranslateServiceIOS::Initialize() { @@ -65,6 +71,15 @@ } // static +std::string TranslateServiceIOS::GetTargetLanguage( + PrefService* prefs, + language::LanguageModel* language_model) { + return translate::TranslateManager::GetTargetLanguage( + ChromeIOSTranslateClient::CreateTranslatePrefs(prefs).get(), + language_model); +} + +// static bool TranslateServiceIOS::IsTranslatableURL(const GURL& url) { // A URL is translatable unless it is one of the following: // - empty (can happen for popups created with window.open(""))
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_model.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_model.mm index 2c4d01d..cf00235 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_model.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_model.mm
@@ -212,7 +212,13 @@ for (auto& observer : observers_) { observer.FullscreenModelScrollEventStarted(this); } + // Update the base offset for each new scroll event. UpdateBaseOffset(); + // Re-rendering events are ignored during scrolls since disabling the model + // mid-scroll leads to choppy animations. If the content was re-rendered + // to be too short to collapse the toolbars, the model should be disabled + // to prevent the subsequent scroll. + UpdateDisabledCounterForContentHeight(); } } @@ -289,6 +295,12 @@ } void FullscreenModel::UpdateDisabledCounterForContentHeight() { + // Sometimes the content size and scroll view sizes are updated mid-scroll + // such that the scroll view height is updated before the content is re- + // rendered, causing the model to be disabled. These changes should be + // ignored while the content is scrolling. + if (scrolling_) + return; // The model should be disabled when the content fits. CGFloat disabling_threshold = scroll_view_height_; if (resizes_scroll_view_) {
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_model_unittest.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_model_unittest.mm index 70debaa..0730f73 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_model_unittest.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_model_unittest.mm
@@ -276,3 +276,20 @@ SimulateFullscreenUserScrollForProgress(&model(), 0.0); EXPECT_EQ(observer().progress(), 1.0); } + +// Tests that updates to the content height that would normally disable the +// model are ignored during the scroll, and that the model is correctly updated +// to be disabled upon the subsequent scroll. +TEST_F(FullscreenModelTest, IgnoreContentHeightChangesWhileScrolling) { + ASSERT_TRUE(model().enabled()); + // Simulate a re-render to a height that would disable the model during a + // scroll. + model().SetScrollViewIsScrolling(true); + model().SetContentHeight(kScrollViewHeight / 2.0); + model().SetScrollViewIsScrolling(false); + EXPECT_TRUE(model().enabled()); + // Simulate the start of a subsequent scroll and verify that the model becomes + // disabled for the short content height. + model().SetScrollViewIsDragging(true); + EXPECT_FALSE(model().enabled()); +}
diff --git a/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_navigation_controller.h b/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_navigation_controller.h index 4f57c5c..8e520b0 100644 --- a/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_navigation_controller.h +++ b/ios/chrome/browser/ui/settings/google_services/advanced_signin_settings_navigation_controller.h
@@ -7,8 +7,11 @@ #import <UIKit/UIKit.h> +#import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" + // View controller to related to AdvancedSigninSettingsCoordinator. -@interface AdvancedSigninSettingsNavigationController : UINavigationController +@interface AdvancedSigninSettingsNavigationController + : SettingsNavigationController @end
diff --git a/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm b/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm index 6beeb532..3a4ef41 100644 --- a/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm +++ b/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm
@@ -20,6 +20,7 @@ #import "ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.h" #import "ios/chrome/browser/ui/settings/google_services/google_services_settings_view_controller.h" #import "ios/chrome/browser/ui/settings/google_services/manage_sync_settings_coordinator.h" +#import "ios/chrome/browser/ui/settings/sync/sync_encryption_passphrase_table_view_controller.h" #import "ios/chrome/browser/ui/signin_interaction/signin_interaction_coordinator.h" #include "ios/chrome/browser/ui/ui_feature_flags.h" @@ -191,8 +192,11 @@ } - (void)openPassphraseDialog { - [self.dispatcher - showSyncPassphraseSettingsFromViewController:self.viewController]; + SyncEncryptionPassphraseTableViewController* controller = + [[SyncEncryptionPassphraseTableViewController alloc] + initWithBrowserState:self.browserState]; + controller.dispatcher = self.dispatcher; + [self.navigationController pushViewController:controller animated:YES]; } - (void)showSignIn {
diff --git a/ios/chrome/browser/ui/ui_feature_flags.cc b/ios/chrome/browser/ui/ui_feature_flags.cc index 181e80e6..b99b35c 100644 --- a/ios/chrome/browser/ui/ui_feature_flags.cc +++ b/ios/chrome/browser/ui/ui_feature_flags.cc
@@ -34,3 +34,6 @@ const base::Feature kOmniboxUseDefaultSearchEngineFavicon{ "OmniboxUseDefaultSearchEngineFavicon", base::FEATURE_DISABLED_BY_DEFAULT}; + +const base::Feature kLanguageSettings{"LanguageSettings", + base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/ios/chrome/browser/ui/ui_feature_flags.h b/ios/chrome/browser/ui/ui_feature_flags.h index 5842439..eb8c72a 100644 --- a/ios/chrome/browser/ui/ui_feature_flags.h +++ b/ios/chrome/browser/ui/ui_feature_flags.h
@@ -40,4 +40,7 @@ // in the omnibox. extern const base::Feature kOmniboxUseDefaultSearchEngineFavicon; +// Feature flag for the language settings page. +extern const base::Feature kLanguageSettings; + #endif // IOS_CHROME_BROWSER_UI_UI_FEATURE_FLAGS_H_
diff --git a/ios/chrome/browser/web_state_list/web_state_list.mm b/ios/chrome/browser/web_state_list/web_state_list.mm index 72a27e1..a8160c97 100644 --- a/ios/chrome/browser/web_state_list/web_state_list.mm +++ b/ios/chrome/browser/web_state_list/web_state_list.mm
@@ -289,10 +289,17 @@ // as the active one but only send the WebStateActivatedAt notification after // the WebStateDetachedAt one. bool active_web_state_was_closed = (index == active_index_); - if (active_index_ > index) + if (active_index_ > index) { --active_index_; - else if (active_index_ == index) - active_index_ = new_active_index; + } else if (active_index_ == index) { + if (new_active_index != kInvalidIndex && !ContainsIndex(new_active_index)) { + // TODO(crbug.com/877792): This is a speculative fix for 877792 and short + // term fix for 960628. + active_index_ = count() - 1; + } else { + active_index_ = new_active_index; + } + } for (auto& observer : observers_) observer.WebStateDetachedAt(this, web_state, index);
diff --git a/ios/chrome/browser/web_state_list/web_state_list_unittest.mm b/ios/chrome/browser/web_state_list/web_state_list_unittest.mm index c7fb005..0c6fd11 100644 --- a/ios/chrome/browser/web_state_list/web_state_list_unittest.mm +++ b/ios/chrome/browser/web_state_list/web_state_list_unittest.mm
@@ -568,6 +568,25 @@ nullptr, WebStateList::kInvalidIndex, true)); } +// Test detaching a webstate which has an invalid opener. This is a regression +// test for https://crbug.com/960628. +TEST_F(WebStateListTest, DetachWebStateWithInvalidOpener) { + AppendNewWebState(kURL0); + AppendNewWebState(kURL1); + // Sanity check before closing WebState. + ASSERT_EQ(2, web_state_list_.count()); + EXPECT_EQ(kURL0, web_state_list_.GetWebStateAt(0)->GetVisibleURL().spec()); + EXPECT_EQ(kURL1, web_state_list_.GetWebStateAt(1)->GetVisibleURL().spec()); + web_state_list_.ActivateWebStateAt(1); + // Update a WebState to have an invalid opener. + web_state_list_.SetOpenerOfWebStateAt( + 1, WebStateOpener(web_state_list_.GetWebStateAt(1))); + // After detaching, the active index should be valid. + web_state_list_.DetachWebStateAt(1); + EXPECT_EQ(1, web_state_list_.count()); + EXPECT_TRUE(web_state_list_.ContainsIndex(web_state_list_.active_index())); +} + // Test finding opended-by indexes when no webstates have been opened. TEST_F(WebStateListTest, OpenersNothingOpened) { AppendNewWebState(kURL0);
diff --git a/ios/web/browser_state.mm b/ios/web/browser_state.mm index 55d9a762..9d0806d5 100644 --- a/ios/web/browser_state.mm +++ b/ios/web/browser_state.mm
@@ -24,6 +24,7 @@ #include "ios/web/public/web_thread.h" #include "ios/web/webui/url_data_manager_ios_backend.h" #include "mojo/public/cpp/bindings/interface_request.h" +#include "mojo/public/cpp/bindings/remote.h" #include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_context_getter_observer.h" #include "services/network/network_context.h" @@ -299,20 +300,20 @@ // Have the global service manager connection start an instance of the // web_browser service that is associated with this BrowserState (via // |new_group|). - service_manager::mojom::ServicePtr service; - auto service_request = mojo::MakeRequest(&service); + mojo::PendingRemote<service_manager::mojom::Service> service; + auto service_receiver = service.InitWithNewPipeAndPassReceiver(); - service_manager::mojom::PIDReceiverPtr pid_receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; service_manager::Identity identity(mojom::kBrowserServiceName, new_group, base::Token{}, base::Token::CreateRandom()); service_manager_connection->GetConnector()->RegisterServiceInstance( - identity, std::move(service), mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(base::GetCurrentProcId()); + identity, std::move(service), metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(base::GetCurrentProcId()); auto connection_holder = std::make_unique<BrowserStateServiceManagerConnectionHolder>( - browser_state, std::move(service_request)); + browser_state, std::move(service_receiver)); ServiceManagerConnection* connection = connection_holder->service_manager_connection();
diff --git a/ios/web/service_manager_connection_impl_unittest.cc b/ios/web/service_manager_connection_impl_unittest.cc index 3711a1f3..7c913a5d 100644 --- a/ios/web/service_manager_connection_impl_unittest.cc +++ b/ios/web/service_manager_connection_impl_unittest.cc
@@ -11,10 +11,10 @@ #include "ios/web/public/test/test_web_thread_bundle.h" #include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/service.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" @@ -43,20 +43,14 @@ run_loop.Quit(); })); connection.Start(); - service_manager::BindSourceInfo source_info( - service_manager::Identity{service_manager::mojom::kServiceName, - service_manager::kSystemInstanceGroup, - base::Token{}, base::Token::CreateRandom()}, - service_manager::CapabilitySet()); - service_manager::mojom::ServiceFactoryPtr factory; - service->OnBindInterface( - source_info, service_manager::mojom::ServiceFactory::Name_, - mojo::MakeRequest(&factory).PassMessagePipe(), base::DoNothing()); - service_manager::mojom::ServicePtr created_service; - service_manager::mojom::PIDReceiverPtr pid_receiver; - mojo::MakeRequest(&pid_receiver); - factory->CreateService(mojo::MakeRequest(&created_service), kTestServiceName, - std::move(pid_receiver)); + + mojo::PendingRemote<service_manager::mojom::Service> packaged_service; + mojo::PendingRemote<service_manager::mojom::ProcessMetadata> metadata; + ignore_result(metadata.InitWithNewPipeAndPassReceiver()); + service->CreatePackagedServiceInstance( + service_manager::Identity(kTestServiceName, base::Token::CreateRandom(), + base::Token(), base::Token::CreateRandom()), + packaged_service.InitWithNewPipeAndPassReceiver(), std::move(metadata)); run_loop.Run(); }
diff --git a/ios/web/service_manager_context.mm b/ios/web/service_manager_context.mm index 9bf9af8..bfbdfc95 100644 --- a/ios/web/service_manager_context.mm +++ b/ios/web/service_manager_context.mm
@@ -25,6 +25,7 @@ #include "ios/web/service_manager_connection_impl.h" #import "ios/web/web_browser_manifest.h" #import "ios/web/web_packaged_services_manifest.h" +#include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/manifest.h" @@ -84,13 +85,11 @@ service_manager_ = std::make_unique<service_manager::ServiceManager>(nullptr, manifests); - service_manager::mojom::ServicePtr packaged_services_service; - packaged_services_service.Bind(std::move(packaged_services_service_info)); service_manager_->RegisterService( service_manager::Identity(mojom::kPackagedServicesServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(packaged_services_service), nullptr); + std::move(packaged_services_service_info), mojo::NullReceiver()); } void ShutDownOnIOThread() { @@ -120,19 +119,19 @@ base::BindRepeating(&ServiceManagerContext::OnUnhandledServiceRequest, weak_ptr_factory_.GetWeakPtr())); - service_manager::mojom::ServicePtr root_browser_service; + service_manager::mojom::ServicePtrInfo root_browser_service; ServiceManagerConnection::Set(ServiceManagerConnection::Create( mojo::MakeRequest(&root_browser_service), base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO}))); auto* browser_connection = ServiceManagerConnection::Get(); - service_manager::mojom::PIDReceiverPtr pid_receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; packaged_services_connection_->GetConnector()->RegisterServiceInstance( service_manager::Identity(mojom::kBrowserServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(root_browser_service), mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(base::GetCurrentProcId()); + std::move(root_browser_service), metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(base::GetCurrentProcId()); packaged_services_connection_->Start(); browser_connection->Start();
diff --git a/ios/web/web_state/web_state_impl.mm b/ios/web/web_state/web_state_impl.mm index 3ea32e5..156c80c 100644 --- a/ios/web/web_state/web_state_impl.mm +++ b/ios/web/web_state/web_state_impl.mm
@@ -29,6 +29,7 @@ #include "ios/web/public/favicon_url.h" #import "ios/web/public/java_script_dialog_presenter.h" #import "ios/web/public/navigation_item.h" +#import "ios/web/public/serializable_user_data_manager.h" #import "ios/web/public/web_client.h" #import "ios/web/public/web_state/context_menu_params.h" #import "ios/web/public/web_state/ui/crw_native_content.h" @@ -625,8 +626,16 @@ CRWSessionStorage* WebStateImpl::BuildSessionStorage() { [web_controller_ recordStateInHistory]; if (web::GetWebClient()->IsSlimNavigationManagerEnabled() && - restored_session_storage_) + restored_session_storage_) { + // UserData can be updated in an uncommitted WebState. Even + // if a WebState hasn't been restored, its opener value may have changed. + std::unique_ptr<web::SerializableUserData> serializable_user_data = + web::SerializableUserDataManager::FromWebState(this) + ->CreateSerializableUserData(); + [restored_session_storage_ + setSerializableUserData:std::move(serializable_user_data)]; return restored_session_storage_; + } SessionStorageBuilder session_storage_builder; return session_storage_builder.BuildStorage(this); }
diff --git a/ios/web/web_state/web_state_impl_unittest.mm b/ios/web/web_state/web_state_impl_unittest.mm index c80075d..b6aef0a 100644 --- a/ios/web/web_state/web_state_impl_unittest.mm +++ b/ios/web/web_state/web_state_impl_unittest.mm
@@ -13,6 +13,7 @@ #include "base/base64.h" #include "base/bind.h" #include "base/logging.h" +#include "base/mac/foundation_util.h" #import "base/strings/sys_string_conversions.h" #import "base/test/ios/wait_util.h" #include "base/test/scoped_feature_list.h" @@ -20,10 +21,12 @@ #import "ios/web/interstitials/web_interstitial_impl.h" #import "ios/web/navigation/navigation_context_impl.h" #import "ios/web/navigation/navigation_item_impl.h" +#import "ios/web/navigation/serializable_user_data_manager_impl.h" #import "ios/web/navigation/wk_navigation_util.h" #import "ios/web/public/crw_navigation_item_storage.h" #import "ios/web/public/crw_session_storage.h" #import "ios/web/public/java_script_dialog_presenter.h" +#import "ios/web/public/serializable_user_data_manager.h" #import "ios/web/public/test/fakes/fake_navigation_context.h" #import "ios/web/public/test/fakes/fake_web_frame.h" #include "ios/web/public/test/fakes/test_browser_state.h" @@ -911,7 +914,8 @@ } // Tests that BuildSessionStorage() and GetTitle() return information about the -// most recently restored session if no navigation item has been committed. +// most recently restored session if no navigation item has been committed. Also +// tests that re-restoring that session includes updated userData. TEST_P(WebStateImplTest, UncommittedRestoreSession) { base::test::ScopedFeatureList scoped_feature_list; scoped_feature_list.InitAndEnableFeature( @@ -929,12 +933,25 @@ web::WebState::CreateParams params(GetBrowserState()); WebStateImpl web_state(params, session_storage); + // After restoring |web_state| change the uncommitted state's user data. + web::SerializableUserDataManager* user_data_manager = + web::SerializableUserDataManager::FromWebState(&web_state); + user_data_manager->AddSerializableData(@(1), @"user_data_key"); + CRWSessionStorage* extracted_session_storage = web_state.BuildSessionStorage(); EXPECT_EQ(0, extracted_session_storage.lastCommittedItemIndex); EXPECT_EQ(1U, extracted_session_storage.itemStorages.count); EXPECT_NSEQ(@"Title", base::SysUTF16ToNSString(web_state.GetTitle())); EXPECT_EQ(url, web_state.GetVisibleURL()); + + WebStateImpl restored_web_state(params, extracted_session_storage); + web::SerializableUserDataManager* restored_user_data_manager = + web::SerializableUserDataManager::FromWebState(&restored_web_state); + NSNumber* user_data_value = base::mac::ObjCCast<NSNumber>( + restored_user_data_manager->GetValueForSerializationKey( + @"user_data_key")); + EXPECT_EQ(@(1), user_data_value); } TEST_P(WebStateImplTest, NoUncommittedRestoreSession) {
diff --git a/media/gpu/v4l2/v4l2_vp9_accelerator.cc b/media/gpu/v4l2/v4l2_vp9_accelerator.cc index 32e14f8..00aa0a7 100644 --- a/media/gpu/v4l2/v4l2_vp9_accelerator.cc +++ b/media/gpu/v4l2/v4l2_vp9_accelerator.cc
@@ -160,8 +160,8 @@ class V4L2VP9Picture : public VP9Picture { public: - explicit V4L2VP9Picture(const scoped_refptr<V4L2DecodeSurface>& dec_surface) - : dec_surface_(dec_surface) {} + explicit V4L2VP9Picture(scoped_refptr<V4L2DecodeSurface> dec_surface) + : dec_surface_(std::move(dec_surface)) {} V4L2VP9Picture* AsV4L2VP9Picture() override { return this; } scoped_refptr<V4L2DecodeSurface> dec_surface() { return dec_surface_; } @@ -202,10 +202,10 @@ if (!dec_surface) return nullptr; - return new V4L2VP9Picture(dec_surface); + return new V4L2VP9Picture(std::move(dec_surface)); } -bool V4L2VP9Accelerator::SubmitDecode(const scoped_refptr<VP9Picture>& pic, +bool V4L2VP9Accelerator::SubmitDecode(scoped_refptr<VP9Picture> pic, const Vp9SegmentationParams& segm_params, const Vp9LoopFilterParams& lf_params, const Vp9ReferenceFrameVector& ref_frames, @@ -280,7 +280,7 @@ auto ref_pic = ref_frames.GetFrame(i); if (ref_pic) { scoped_refptr<V4L2DecodeSurface> ref_surface = - VP9PictureToV4L2DecodeSurface(ref_pic); + VP9PictureToV4L2DecodeSurface(ref_pic.get()); v4l2_decode_param.ref_frames[i] = ref_surface->GetReferenceID(); ref_surfaces.push_back(ref_surface); @@ -304,7 +304,7 @@ scoped_refptr<VP9Picture> ref_pic = ref_frames.GetFrame(idx); if (ref_pic) { scoped_refptr<V4L2DecodeSurface> ref_surface = - VP9PictureToV4L2DecodeSurface(ref_pic); + VP9PictureToV4L2DecodeSurface(ref_pic.get()); v4l2_ref_frame->buf_index = ref_surface->GetReferenceID(); #define REF_TO_V4L2_REF(a) v4l2_ref_frame->a = ref_pic->frame_hdr->a REF_TO_V4L2_REF(frame_width); @@ -344,7 +344,7 @@ } scoped_refptr<V4L2DecodeSurface> dec_surface = - VP9PictureToV4L2DecodeSurface(pic); + VP9PictureToV4L2DecodeSurface(pic.get()); struct v4l2_ext_controls ext_ctrls; memset(&ext_ctrls, 0, sizeof(ext_ctrls)); @@ -368,15 +368,15 @@ return true; } -bool V4L2VP9Accelerator::OutputPicture(const scoped_refptr<VP9Picture>& pic) { +bool V4L2VP9Accelerator::OutputPicture(scoped_refptr<VP9Picture> pic) { // TODO(crbug.com/647725): Insert correct color space. - surface_handler_->SurfaceReady(VP9PictureToV4L2DecodeSurface(pic), + surface_handler_->SurfaceReady(VP9PictureToV4L2DecodeSurface(pic.get()), pic->bitstream_id(), pic->visible_rect(), VideoColorSpace()); return true; } -bool V4L2VP9Accelerator::GetFrameContext(const scoped_refptr<VP9Picture>& pic, +bool V4L2VP9Accelerator::GetFrameContext(scoped_refptr<VP9Picture> pic, Vp9FrameContext* frame_ctx) { struct v4l2_ctrl_vp9_entropy v4l2_entropy; memset(&v4l2_entropy, 0, sizeof(v4l2_entropy)); @@ -388,7 +388,7 @@ ctrl.p_vp9_entropy = &v4l2_entropy; scoped_refptr<V4L2DecodeSurface> dec_surface = - VP9PictureToV4L2DecodeSurface(pic); + VP9PictureToV4L2DecodeSurface(pic.get()); struct v4l2_ext_controls ext_ctrls; memset(&ext_ctrls, 0, sizeof(ext_ctrls)); @@ -409,8 +409,7 @@ } scoped_refptr<V4L2DecodeSurface> -V4L2VP9Accelerator::VP9PictureToV4L2DecodeSurface( - const scoped_refptr<VP9Picture>& pic) { +V4L2VP9Accelerator::VP9PictureToV4L2DecodeSurface(VP9Picture* pic) { V4L2VP9Picture* v4l2_pic = pic->AsV4L2VP9Picture(); CHECK(v4l2_pic); return v4l2_pic->dec_surface();
diff --git a/media/gpu/v4l2/v4l2_vp9_accelerator.h b/media/gpu/v4l2/v4l2_vp9_accelerator.h index 31f1dc1e..a85265c 100644 --- a/media/gpu/v4l2/v4l2_vp9_accelerator.h +++ b/media/gpu/v4l2/v4l2_vp9_accelerator.h
@@ -28,22 +28,22 @@ // VP9Decoder::VP9Accelerator implementation. scoped_refptr<VP9Picture> CreateVP9Picture() override; - bool SubmitDecode(const scoped_refptr<VP9Picture>& pic, + bool SubmitDecode(scoped_refptr<VP9Picture> pic, const Vp9SegmentationParams& segm_params, const Vp9LoopFilterParams& lf_params, const Vp9ReferenceFrameVector& reference_frames, const base::Closure& done_cb) override; - bool OutputPicture(const scoped_refptr<VP9Picture>& pic) override; + bool OutputPicture(scoped_refptr<VP9Picture> pic) override; - bool GetFrameContext(const scoped_refptr<VP9Picture>& pic, + bool GetFrameContext(scoped_refptr<VP9Picture> pic, Vp9FrameContext* frame_ctx) override; bool IsFrameContextRequired() const override; private: scoped_refptr<V4L2DecodeSurface> VP9PictureToV4L2DecodeSurface( - const scoped_refptr<VP9Picture>& pic); + VP9Picture* pic); bool device_needs_frame_context_;
diff --git a/media/gpu/vaapi/vaapi_vp9_accelerator.cc b/media/gpu/vaapi/vaapi_vp9_accelerator.cc index 04932211..8ab85af 100644 --- a/media/gpu/vaapi/vaapi_vp9_accelerator.cc +++ b/media/gpu/vaapi/vaapi_vp9_accelerator.cc
@@ -39,7 +39,7 @@ } bool VaapiVP9Accelerator::SubmitDecode( - const scoped_refptr<VP9Picture>& pic, + scoped_refptr<VP9Picture> pic, const Vp9SegmentationParams& seg, const Vp9LoopFilterParams& lf, const Vp9ReferenceFrameVector& ref_frames, @@ -158,7 +158,7 @@ pic->AsVaapiVP9Picture()->va_surface()->id()); } -bool VaapiVP9Accelerator::OutputPicture(const scoped_refptr<VP9Picture>& pic) { +bool VaapiVP9Accelerator::OutputPicture(scoped_refptr<VP9Picture> pic) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); const VaapiVP9Picture* vaapi_pic = pic->AsVaapiVP9Picture(); @@ -172,7 +172,7 @@ return false; } -bool VaapiVP9Accelerator::GetFrameContext(const scoped_refptr<VP9Picture>& pic, +bool VaapiVP9Accelerator::GetFrameContext(scoped_refptr<VP9Picture> pic, Vp9FrameContext* frame_ctx) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); NOTIMPLEMENTED() << "Frame context update not supported";
diff --git a/media/gpu/vaapi/vaapi_vp9_accelerator.h b/media/gpu/vaapi/vaapi_vp9_accelerator.h index 7fc9969c..b7e553cb 100644 --- a/media/gpu/vaapi/vaapi_vp9_accelerator.h +++ b/media/gpu/vaapi/vaapi_vp9_accelerator.h
@@ -24,15 +24,15 @@ // VP9Decoder::VP9Accelerator implementation. scoped_refptr<VP9Picture> CreateVP9Picture() override; - bool SubmitDecode(const scoped_refptr<VP9Picture>& pic, + bool SubmitDecode(scoped_refptr<VP9Picture> pic, const Vp9SegmentationParams& seg, const Vp9LoopFilterParams& lf, const Vp9ReferenceFrameVector& reference_frames, const base::Closure& done_cb) override; - bool OutputPicture(const scoped_refptr<VP9Picture>& pic) override; + bool OutputPicture(scoped_refptr<VP9Picture> pic) override; bool IsFrameContextRequired() const override; - bool GetFrameContext(const scoped_refptr<VP9Picture>& pic, + bool GetFrameContext(scoped_refptr<VP9Picture> pic, Vp9FrameContext* frame_ctx) override; private:
diff --git a/media/gpu/vp9_decoder.cc b/media/gpu/vp9_decoder.cc index d0cf58a..f5ecfbbd 100644 --- a/media/gpu/vp9_decoder.cc +++ b/media/gpu/vp9_decoder.cc
@@ -204,13 +204,13 @@ } void VP9Decoder::UpdateFrameContext( - const scoped_refptr<VP9Picture>& pic, + scoped_refptr<VP9Picture> pic, const base::Callback<void(const Vp9FrameContext&)>& context_refresh_cb) { DCHECK(context_refresh_cb); Vp9FrameContext frame_ctx; memset(&frame_ctx, 0, sizeof(frame_ctx)); - if (!accelerator_->GetFrameContext(pic, &frame_ctx)) { + if (!accelerator_->GetFrameContext(std::move(pic), &frame_ctx)) { SetError(); return; } @@ -239,7 +239,7 @@ return false; } - ref_frames_.Refresh(pic); + ref_frames_.Refresh(std::move(pic)); return true; }
diff --git a/media/gpu/vp9_decoder.h b/media/gpu/vp9_decoder.h index 50cd8f7ab..81b49881 100644 --- a/media/gpu/vp9_decoder.h +++ b/media/gpu/vp9_decoder.h
@@ -60,7 +60,7 @@ // |lf_params| does not need to remain valid after this method returns. // // Return true when successful, false otherwise. - virtual bool SubmitDecode(const scoped_refptr<VP9Picture>& pic, + virtual bool SubmitDecode(scoped_refptr<VP9Picture> pic, const Vp9SegmentationParams& segm_params, const Vp9LoopFilterParams& lf_params, const Vp9ReferenceFrameVector& reference_frames, @@ -76,7 +76,7 @@ // immediately after calling this method. // // Return true when successful, false otherwise. - virtual bool OutputPicture(const scoped_refptr<VP9Picture>& pic) = 0; + virtual bool OutputPicture(scoped_refptr<VP9Picture> pic) = 0; // Return true if the accelerator requires the client to provide frame // context in order to decode. If so, the Vp9FrameHeader provided by the @@ -85,7 +85,7 @@ // Set |frame_ctx| to the state after decoding |pic|, returning true on // success, false otherwise. - virtual bool GetFrameContext(const scoped_refptr<VP9Picture>& pic, + virtual bool GetFrameContext(scoped_refptr<VP9Picture> pic, Vp9FrameContext* frame_ctx) = 0; private: @@ -110,9 +110,6 @@ size_t GetNumReferenceFrames() const override; private: - // Update ref_frames_ based on the information in current frame header. - void RefreshReferenceFrames(const scoped_refptr<VP9Picture>& pic); - // Decode and possibly output |pic| (if the picture is to be shown). // Return true on success, false otherwise. bool DecodeAndOutputPicture(scoped_refptr<VP9Picture> pic); @@ -120,7 +117,7 @@ // Get frame context state after decoding |pic| from the accelerator, and call // |context_refresh_cb| with the acquired state. void UpdateFrameContext( - const scoped_refptr<VP9Picture>& pic, + scoped_refptr<VP9Picture> pic, const base::Callback<void(const Vp9FrameContext&)>& context_refresh_cb); // Called on error, when decoding cannot continue. Sets state_ to kError and
diff --git a/media/gpu/windows/d3d11_vp9_accelerator.cc b/media/gpu/windows/d3d11_vp9_accelerator.cc index c035e54..9aa120c5 100644 --- a/media/gpu/windows/d3d11_vp9_accelerator.cc +++ b/media/gpu/windows/d3d11_vp9_accelerator.cc
@@ -70,12 +70,12 @@ return base::MakeRefCounted<D3D11VP9Picture>(picture_buffer); } -bool D3D11VP9Accelerator::BeginFrame(D3D11VP9Picture* pic) { +bool D3D11VP9Accelerator::BeginFrame(const D3D11VP9Picture& pic) { // This |decrypt_context| has to be outside the if block because pKeyInfo in // D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION is a pointer (to a GUID). base::Optional<CdmProxyContext::D3D11DecryptContext> decrypt_context; std::unique_ptr<D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION> content_key; - if (const DecryptConfig* config = pic->decrypt_config()) { + if (const DecryptConfig* config = pic.decrypt_config()) { DCHECK(cdm_proxy_context_) << "No CdmProxyContext but picture is encrypted"; decrypt_context = cdm_proxy_context_->GetD3D11DecryptContext( CdmProxy::KeyType::kDecryptAndDecode, config->key_id()); @@ -96,7 +96,7 @@ HRESULT hr; do { hr = video_context_->DecoderBeginFrame( - video_decoder_.Get(), pic->picture_buffer()->output_view().Get(), + video_decoder_.Get(), pic.picture_buffer()->output_view().Get(), content_key ? sizeof(*content_key) : 0, content_key.get()); } while (hr == E_PENDING || hr == D3DERR_WASSTILLDRAWING); @@ -108,10 +108,9 @@ return true; } -void D3D11VP9Accelerator::CopyFrameParams( - const scoped_refptr<D3D11VP9Picture>& pic, - DXVA_PicParams_VP9* pic_params) { -#define SET_PARAM(a, b) pic_params->a = pic->frame_hdr->b +void D3D11VP9Accelerator::CopyFrameParams(const D3D11VP9Picture& pic, + DXVA_PicParams_VP9* pic_params) { +#define SET_PARAM(a, b) pic_params->a = pic.frame_hdr->b #define COPY_PARAM(a) SET_PARAM(a, a) COPY_PARAM(profile); @@ -132,10 +131,11 @@ // extra_plane, BitDepthMinus8Luma, and BitDepthMinus8Chroma are initialized // at 0 already. - pic_params->CurrPic.Index7Bits = pic->level(); - pic_params->frame_type = !pic->frame_hdr->IsKeyframe(); - pic_params->subsampling_x = pic->frame_hdr->subsampling_x; - pic_params->subsampling_y = pic->frame_hdr->subsampling_y; + pic_params->CurrPic.Index7Bits = pic.level(); + pic_params->frame_type = !pic.frame_hdr->IsKeyframe(); + + COPY_PARAM(subsampling_x); + COPY_PARAM(subsampling_y); SET_PARAM(width, frame_width); SET_PARAM(height, frame_height); @@ -147,11 +147,11 @@ } void D3D11VP9Accelerator::CopyReferenceFrames( - const scoped_refptr<D3D11VP9Picture>& pic, + const D3D11VP9Picture& pic, DXVA_PicParams_VP9* pic_params, const Vp9ReferenceFrameVector& ref_frames) { D3D11_TEXTURE2D_DESC texture_descriptor; - pic->picture_buffer()->texture()->GetDesc(&texture_descriptor); + pic.picture_buffer()->texture()->GetDesc(&texture_descriptor); for (size_t i = 0; i < base::size(pic_params->ref_frame_map); i++) { auto ref_pic = ref_frames.GetFrame(i); @@ -169,16 +169,15 @@ } } -void D3D11VP9Accelerator::CopyFrameRefs( - DXVA_PicParams_VP9* pic_params, - const scoped_refptr<D3D11VP9Picture>& pic) { +void D3D11VP9Accelerator::CopyFrameRefs(DXVA_PicParams_VP9* pic_params, + const D3D11VP9Picture& pic) { for (size_t i = 0; i < base::size(pic_params->frame_refs); i++) { pic_params->frame_refs[i] = - pic_params->ref_frame_map[pic->frame_hdr->ref_frame_idx[i]]; + pic_params->ref_frame_map[pic.frame_hdr->ref_frame_idx[i]]; } for (size_t i = 0; i < base::size(pic_params->ref_frame_sign_bias); i++) { - pic_params->ref_frame_sign_bias[i] = pic->frame_hdr->ref_frame_sign_bias[i]; + pic_params->ref_frame_sign_bias[i] = pic.frame_hdr->ref_frame_sign_bias[i]; } } @@ -210,10 +209,9 @@ } } -void D3D11VP9Accelerator::CopyQuantParams( - DXVA_PicParams_VP9* pic_params, - const scoped_refptr<D3D11VP9Picture>& pic) { -#define SET_PARAM(a, b) pic_params->a = pic->frame_hdr->quant_params.b +void D3D11VP9Accelerator::CopyQuantParams(DXVA_PicParams_VP9* pic_params, + const D3D11VP9Picture& pic) { +#define SET_PARAM(a, b) pic_params->a = pic.frame_hdr->quant_params.b SET_PARAM(base_qindex, base_q_idx); SET_PARAM(y_dc_delta_q, delta_q_y_dc); SET_PARAM(uv_dc_delta_q, delta_q_uv_dc); @@ -250,13 +248,12 @@ #undef SET_PARAM } -void D3D11VP9Accelerator::CopyHeaderSizeAndID( - DXVA_PicParams_VP9* pic_params, - const scoped_refptr<D3D11VP9Picture>& pic) { +void D3D11VP9Accelerator::CopyHeaderSizeAndID(DXVA_PicParams_VP9* pic_params, + const D3D11VP9Picture& pic) { pic_params->uncompressed_header_size_byte_aligned = - static_cast<USHORT>(pic->frame_hdr->uncompressed_header_size); + static_cast<USHORT>(pic.frame_hdr->uncompressed_header_size); pic_params->first_partition_size = - static_cast<USHORT>(pic->frame_hdr->header_size_in_bytes); + static_cast<USHORT>(pic.frame_hdr->header_size_in_bytes); // StatusReportFeedbackNumber "should not be equal to 0". pic_params->StatusReportFeedbackNumber = ++status_feedback_; @@ -264,7 +261,7 @@ bool D3D11VP9Accelerator::SubmitDecoderBuffer( const DXVA_PicParams_VP9& pic_params, - const scoped_refptr<D3D11VP9Picture>& pic) { + const D3D11VP9Picture& pic) { #define GET_BUFFER(type) \ RETURN_ON_HR_FAILURE(GetDecoderBuffer, \ video_context_->GetDecoderBuffer( \ @@ -282,15 +279,15 @@ RELEASE_BUFFER(D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS); size_t buffer_offset = 0; - while (buffer_offset < pic->frame_hdr->frame_size) { + while (buffer_offset < pic.frame_hdr->frame_size) { GET_BUFFER(D3D11_VIDEO_DECODER_BUFFER_BITSTREAM); - size_t copy_size = pic->frame_hdr->frame_size - buffer_offset; + size_t copy_size = pic.frame_hdr->frame_size - buffer_offset; bool contains_end = true; if (copy_size > buffer_size) { copy_size = buffer_size; contains_end = false; } - memcpy(buffer, pic->frame_hdr->data + buffer_offset, copy_size); + memcpy(buffer, pic.frame_hdr->data + buffer_offset, copy_size); RELEASE_BUFFER(D3D11_VIDEO_DECODER_BUFFER_BITSTREAM); DXVA_Slice_VPx_Short slice_info; @@ -325,7 +322,7 @@ buffers[2].DataOffset = 0; buffers[2].DataSize = copy_size; - const DecryptConfig* config = pic->decrypt_config(); + const DecryptConfig* config = pic.decrypt_config(); if (config) { buffers[2].pIV = const_cast<char*>(config->iv().data()); buffers[2].IVSize = config->iv().size(); @@ -349,27 +346,26 @@ } bool D3D11VP9Accelerator::SubmitDecode( - const scoped_refptr<VP9Picture>& picture, + scoped_refptr<VP9Picture> picture, const Vp9SegmentationParams& segmentation_params, const Vp9LoopFilterParams& loop_filter_params, const Vp9ReferenceFrameVector& reference_frames, const base::Closure& on_finished_cb) { - scoped_refptr<D3D11VP9Picture> pic( - static_cast<D3D11VP9Picture*>(picture.get())); + D3D11VP9Picture* pic = static_cast<D3D11VP9Picture*>(picture.get()); - if (!BeginFrame(pic.get())) + if (!BeginFrame(*pic)) return false; DXVA_PicParams_VP9 pic_params = {}; - CopyFrameParams(pic, &pic_params); - CopyReferenceFrames(pic, &pic_params, reference_frames); - CopyFrameRefs(&pic_params, pic); + CopyFrameParams(*pic, &pic_params); + CopyReferenceFrames(*pic, &pic_params, reference_frames); + CopyFrameRefs(&pic_params, *pic); CopyLoopFilterParams(&pic_params, loop_filter_params); - CopyQuantParams(&pic_params, pic); + CopyQuantParams(&pic_params, *pic); CopySegmentationParams(&pic_params, segmentation_params); - CopyHeaderSizeAndID(&pic_params, pic); + CopyHeaderSizeAndID(&pic_params, *pic); - if (!SubmitDecoderBuffer(pic_params, pic)) + if (!SubmitDecoderBuffer(pic_params, *pic)) return false; RETURN_ON_HR_FAILURE(DecoderEndFrame, @@ -379,8 +375,7 @@ return true; } -bool D3D11VP9Accelerator::OutputPicture( - const scoped_refptr<VP9Picture>& picture) { +bool D3D11VP9Accelerator::OutputPicture(scoped_refptr<VP9Picture> picture) { D3D11VP9Picture* pic = static_cast<D3D11VP9Picture*>(picture.get()); client_->OutputResult(picture.get(), pic->picture_buffer()); return true; @@ -390,9 +385,8 @@ return false; } -bool D3D11VP9Accelerator::GetFrameContext( - const scoped_refptr<VP9Picture>& picture, - Vp9FrameContext* frame_context) { +bool D3D11VP9Accelerator::GetFrameContext(scoped_refptr<VP9Picture> picture, + Vp9FrameContext* frame_context) { return false; }
diff --git a/media/gpu/windows/d3d11_vp9_accelerator.h b/media/gpu/windows/d3d11_vp9_accelerator.h index a96e8b8..c75505d7 100644 --- a/media/gpu/windows/d3d11_vp9_accelerator.h +++ b/media/gpu/windows/d3d11_vp9_accelerator.h
@@ -31,42 +31,41 @@ scoped_refptr<VP9Picture> CreateVP9Picture() override; - // TODO(crbug/890054): Use constref instead of scoped_refptr. - bool SubmitDecode(const scoped_refptr<VP9Picture>& picture, + bool SubmitDecode(scoped_refptr<VP9Picture> picture, const Vp9SegmentationParams& segmentation_params, const Vp9LoopFilterParams& loop_filter_params, const Vp9ReferenceFrameVector& reference_frames, const base::Closure& on_finished_cb) override; - bool OutputPicture(const scoped_refptr<VP9Picture>& picture) override; + bool OutputPicture(scoped_refptr<VP9Picture> picture) override; bool IsFrameContextRequired() const override; - bool GetFrameContext(const scoped_refptr<VP9Picture>& picture, + bool GetFrameContext(scoped_refptr<VP9Picture> picture, Vp9FrameContext* frame_context) override; private: // Helper methods for SubmitDecode - bool BeginFrame(D3D11VP9Picture* pic); + bool BeginFrame(const D3D11VP9Picture& pic); // TODO(crbug/890054): Use constref instead of scoped_refptr. - void CopyFrameParams(const scoped_refptr<D3D11VP9Picture>& pic, + void CopyFrameParams(const D3D11VP9Picture& pic, DXVA_PicParams_VP9* pic_params); - void CopyReferenceFrames(const scoped_refptr<D3D11VP9Picture>& pic, + void CopyReferenceFrames(const D3D11VP9Picture& pic, DXVA_PicParams_VP9* pic_params, const Vp9ReferenceFrameVector& ref_frames); void CopyFrameRefs(DXVA_PicParams_VP9* pic_params, - const scoped_refptr<D3D11VP9Picture>& picture); + const D3D11VP9Picture& picture); void CopyLoopFilterParams(DXVA_PicParams_VP9* pic_params, const Vp9LoopFilterParams& loop_filter_params); void CopyQuantParams(DXVA_PicParams_VP9* pic_params, - const scoped_refptr<D3D11VP9Picture>& pic); + const D3D11VP9Picture& pic); void CopySegmentationParams(DXVA_PicParams_VP9* pic_params, const Vp9SegmentationParams& segmentation_params); void CopyHeaderSizeAndID(DXVA_PicParams_VP9* pic_params, - const scoped_refptr<D3D11VP9Picture>& pic); + const D3D11VP9Picture& pic); bool SubmitDecoderBuffer(const DXVA_PicParams_VP9& pic_params, - const scoped_refptr<D3D11VP9Picture>& pic); + const D3D11VP9Picture& pic); void RecordFailure(const std::string& fail_type, const std::string& reason);
diff --git a/net/base/network_change_notifier_win.cc b/net/base/network_change_notifier_win.cc index 3393d9a..d93e5b9 100644 --- a/net/base/network_change_notifier_win.cc +++ b/net/base/network_change_notifier_win.cc
@@ -12,7 +12,10 @@ #include "base/logging.h" #include "base/macros.h" #include "base/metrics/histogram_macros.h" +#include "base/sequenced_task_runner.h" #include "base/single_thread_task_runner.h" +#include "base/task/post_task.h" +#include "base/task/task_traits.h" #include "base/task_runner_util.h" #include "base/threading/thread.h" #include "base/threading/thread_task_runner_handle.h" @@ -30,32 +33,18 @@ } // namespace -// Thread on which we can run DnsConfigService, which requires AssertIOAllowed -// to open registry keys and to handle FilePathWatcher updates. -class NetworkChangeNotifierWin::DnsConfigServiceThread : public base::Thread { - public: - DnsConfigServiceThread() : base::Thread("DnsConfigService") {} - - ~DnsConfigServiceThread() override { Stop(); } - - void Init() override { - service_ = DnsConfigService::CreateSystemService(); - service_->WatchConfig(base::Bind(&NetworkChangeNotifier::SetDnsConfig)); - } - - void CleanUp() override { service_.reset(); } - - private: - std::unique_ptr<DnsConfigService> service_; - - DISALLOW_COPY_AND_ASSIGN(DnsConfigServiceThread); -}; - NetworkChangeNotifierWin::NetworkChangeNotifierWin() : NetworkChangeNotifier(NetworkChangeCalculatorParamsWin()), is_watching_(false), sequential_failures_(0), - dns_config_service_thread_(new DnsConfigServiceThread()), + dns_config_service_runner_( + base::CreateSequencedTaskRunnerWithTraits({base::MayBlock()})), + dns_config_service_( + DnsConfigService::CreateSystemService().release(), + // Ensure DnsConfigService lives on |dns_config_service_runner_| + // to prevent races where NetworkChangeNotifierWin outlives + // ScopedTaskEnvironment. https://crbug.com/938126 + base::OnTaskRunnerDeleter(dns_config_service_runner_)), last_computed_connection_type_(RecomputeCurrentConnectionType()), last_announced_offline_(last_computed_connection_type_ == CONNECTION_NONE), @@ -65,7 +54,7 @@ } NetworkChangeNotifierWin::~NetworkChangeNotifierWin() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (is_watching_) { CancelIPChangeNotify(&addr_overlapped_); addr_watcher_.StopWatching(); @@ -204,15 +193,15 @@ : NetworkChangeNotifier::CONNECTION_NONE; } -void NetworkChangeNotifierWin::RecomputeCurrentConnectionTypeOnDnsThread( - base::Callback<void(ConnectionType)> reply_callback) const { +void NetworkChangeNotifierWin::RecomputeCurrentConnectionTypeOnDnsSequence( + base::OnceCallback<void(ConnectionType)> reply_callback) const { // Unretained is safe in this call because this object owns the thread and the // thread is stopped in this object's destructor. base::PostTaskAndReplyWithResult( - dns_config_service_thread_->task_runner().get(), FROM_HERE, - base::Bind(&NetworkChangeNotifierWin::RecomputeCurrentConnectionType, - base::Unretained(this)), - reply_callback); + dns_config_service_runner_.get(), FROM_HERE, + base::BindOnce(&NetworkChangeNotifierWin::RecomputeCurrentConnectionType, + base::Unretained(this)), + std::move(reply_callback)); } NetworkChangeNotifier::ConnectionType @@ -228,19 +217,19 @@ } void NetworkChangeNotifierWin::OnObjectSignaled(HANDLE object) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(is_watching_); is_watching_ = false; // Start watching for the next address change. WatchForAddressChange(); - RecomputeCurrentConnectionTypeOnDnsThread(base::Bind( + RecomputeCurrentConnectionTypeOnDnsSequence(base::BindOnce( &NetworkChangeNotifierWin::NotifyObservers, weak_factory_.GetWeakPtr())); } void NetworkChangeNotifierWin::NotifyObservers(ConnectionType connection_type) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); SetCurrentConnectionType(connection_type); NotifyObserversOfIPAddressChange(); @@ -257,7 +246,7 @@ } void NetworkChangeNotifierWin::WatchForAddressChange() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!is_watching_); // NotifyAddrChange occasionally fails with ERROR_OPEN_FAILED for unknown @@ -287,7 +276,7 @@ // network change event, since network changes were not being observed in // that interval. if (sequential_failures_ > 0) { - RecomputeCurrentConnectionTypeOnDnsThread( + RecomputeCurrentConnectionTypeOnDnsSequence( base::Bind(&NetworkChangeNotifierWin::NotifyObservers, weak_factory_.GetWeakPtr())); } @@ -302,12 +291,13 @@ } bool NetworkChangeNotifierWin::WatchForAddressChangeInternal() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!dns_config_service_thread_->IsRunning()) { - dns_config_service_thread_->StartWithOptions( - base::Thread::Options(base::MessageLoop::TYPE_IO, 0)); - } + dns_config_service_runner_->PostTask( + FROM_HERE, base::BindOnce(&DnsConfigService::WatchConfig, + base::Unretained(dns_config_service_.get()), + base::BindRepeating( + &NetworkChangeNotifier::SetDnsConfig))); ResetEventIfSignaled(addr_overlapped_.hEvent); HANDLE handle = nullptr; @@ -320,7 +310,7 @@ } void NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChange() { - RecomputeCurrentConnectionTypeOnDnsThread(base::Bind( + RecomputeCurrentConnectionTypeOnDnsSequence(base::BindOnce( &NetworkChangeNotifierWin::NotifyParentOfConnectionTypeChangeImpl, weak_factory_.GetWeakPtr())); }
diff --git a/net/base/network_change_notifier_win.h b/net/base/network_change_notifier_win.h index beef6ba..533c90ac 100644 --- a/net/base/network_change_notifier_win.h +++ b/net/base/network_change_notifier_win.h
@@ -12,17 +12,25 @@ #include "base/callback.h" #include "base/compiler_specific.h" #include "base/macros.h" +#include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" -#include "base/threading/thread_checker.h" +#include "base/sequence_checker.h" #include "base/timer/timer.h" #include "base/win/object_watcher.h" #include "net/base/net_export.h" #include "net/base/network_change_notifier.h" +namespace base { +class SequencedTaskRunner; +struct OnTaskRunnerDeleter; +} // namespace base + namespace net { -// NetworkChangeNotifierWin uses a ThreadChecker, as all its internal -// notification code must be called on the thread it is created and destroyed +class DnsConfigService; + +// NetworkChangeNotifierWin uses a SequenceChecker, as all its internal +// notification code must be called on the sequence it is created and destroyed // on. All the NetworkChangeNotifier methods it implements are threadsafe. class NET_EXPORT_PRIVATE NetworkChangeNotifierWin : public NetworkChangeNotifier, @@ -32,8 +40,8 @@ // Begins listening for a single subsequent address change. If it fails to // start watching, it retries on a timer. Must be called only once, on the - // thread |this| was created on. This cannot be called in the constructor, as - // WatchForAddressChangeInternal is mocked out in unit tests. + // sequence |this| was created on. This cannot be called in the constructor, + // as WatchForAddressChangeInternal is mocked out in unit tests. // TODO(mmenke): Consider making this function a part of the // NetworkChangeNotifier interface, so other subclasses can be // unit tested in similar fashion, as needed. @@ -48,30 +56,29 @@ int sequential_failures() { return sequential_failures_; } private: - class DnsConfigServiceThread; friend class NetworkChangeNotifierWinTest; // NetworkChangeNotifier methods: ConnectionType GetCurrentConnectionType() const override; // ObjectWatcher::Delegate methods: - // Must only be called on the thread |this| was created on. + // Must only be called on the sequence |this| was created on. void OnObjectSignaled(HANDLE object) override; // Does the actual work to determine the current connection type. // It is not thread safe, see crbug.com/324913. virtual ConnectionType RecomputeCurrentConnectionType() const; - // Calls RecomputeCurrentConnectionTypeImpl on the DNS thread and runs - // |reply_callback| with the type on the calling thread. - virtual void RecomputeCurrentConnectionTypeOnDnsThread( - base::Callback<void(ConnectionType)> reply_callback) const; + // Calls RecomputeCurrentConnectionTypeImpl on the DNS sequence and runs + // |reply_callback| with the type on the calling sequence. + virtual void RecomputeCurrentConnectionTypeOnDnsSequence( + base::OnceCallback<void(ConnectionType)> reply_callback) const; void SetCurrentConnectionType(ConnectionType connection_type); // Notifies IP address change observers of a change immediately, and notifies // network state change observers on a delay. Must only be called on the - // thread |this| was created on. + // sequence |this| was created on. void NotifyObservers(ConnectionType connection_type); // Forwards connection type notifications to parent class. @@ -80,14 +87,14 @@ // Tries to start listening for a single subsequent address change. Returns // false on failure. The caller is responsible for updating |is_watching_|. - // Virtual for unit tests. Must only be called on the thread |this| was + // Virtual for unit tests. Must only be called on the sequence |this| was // created on. virtual bool WatchForAddressChangeInternal(); static NetworkChangeCalculatorParams NetworkChangeCalculatorParamsWin(); - // All member variables may only be accessed on the thread |this| was created - // on. + // All member variables may only be accessed on the sequence |this| was + // created on. // False when not currently watching for network change events. This only // happens on initialization and when WatchForAddressChangeInternal fails and @@ -102,8 +109,11 @@ // Number of times WatchForAddressChange has failed in a row. int sequential_failures_; - // Thread on which we can run DnsConfigService. - std::unique_ptr<DnsConfigServiceThread> dns_config_service_thread_; + // |dns_config_service_| will live on this runner. + scoped_refptr<base::SequencedTaskRunner> dns_config_service_runner_; + // DnsConfigService that lives on |dns_config_service_runner_|. + std::unique_ptr<DnsConfigService, base::OnTaskRunnerDeleter> + dns_config_service_; mutable base::Lock last_computed_connection_type_lock_; ConnectionType last_computed_connection_type_; @@ -114,7 +124,7 @@ // Number of times polled to check if still offline. int offline_polls_; - THREAD_CHECKER(thread_checker_); + SEQUENCE_CHECKER(sequence_checker_); // Used for calling WatchForAddressChange again on failure. base::WeakPtrFactory<NetworkChangeNotifierWin> weak_factory_;
diff --git a/net/base/network_change_notifier_win_unittest.cc b/net/base/network_change_notifier_win_unittest.cc index ba695806..0d51205 100644 --- a/net/base/network_change_notifier_win_unittest.cc +++ b/net/base/network_change_notifier_win_unittest.cc
@@ -43,10 +43,10 @@ } // From NetworkChangeNotifierWin. - void RecomputeCurrentConnectionTypeOnDnsThread( - base::Callback<void(ConnectionType)> reply_callback) const override { + void RecomputeCurrentConnectionTypeOnDnsSequence( + base::OnceCallback<void(ConnectionType)> reply_callback) const override { base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(reply_callback, + FROM_HERE, base::BindOnce(std::move(reply_callback), NetworkChangeNotifier::CONNECTION_UNKNOWN)); }
diff --git a/net/dns/context_host_resolver.cc b/net/dns/context_host_resolver.cc index 5dad541..9423f1d 100644 --- a/net/dns/context_host_resolver.cc +++ b/net/dns/context_host_resolver.cc
@@ -161,11 +161,6 @@ context_ = request_context; } -const std::vector<DnsConfig::DnsOverHttpsServerConfig>* -ContextHostResolver::GetDnsOverHttpsServersForTesting() const { - return manager_->GetDnsOverHttpsServersForTesting(); -} - HostResolverManager* ContextHostResolver::GetManagerForTesting() { return manager_; }
diff --git a/net/dns/context_host_resolver.h b/net/dns/context_host_resolver.h index 8856d3d..e6b5cf5 100644 --- a/net/dns/context_host_resolver.h +++ b/net/dns/context_host_resolver.h
@@ -58,8 +58,6 @@ bool* secure_out) const override; std::unique_ptr<base::Value> GetDnsConfigAsValue() const override; void SetRequestContext(URLRequestContext* request_context) override; - const std::vector<DnsConfig::DnsOverHttpsServerConfig>* - GetDnsOverHttpsServersForTesting() const override; HostResolverManager* GetManagerForTesting() override; const URLRequestContext* GetContextForTesting() const override;
diff --git a/net/dns/dns_config_service_win.cc b/net/dns/dns_config_service_win.cc index ebb5044..01108c5 100644 --- a/net/dns/dns_config_service_win.cc +++ b/net/dns/dns_config_service_win.cc
@@ -18,13 +18,13 @@ #include "base/macros.h" #include "base/memory/free_deleter.h" #include "base/metrics/histogram_macros.h" +#include "base/sequence_checker.h" #include "base/single_thread_task_runner.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "base/synchronization/lock.h" #include "base/threading/scoped_blocking_call.h" -#include "base/threading/thread_checker.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "base/win/registry.h" @@ -76,11 +76,11 @@ key_.Open(HKEY_LOCAL_MACHINE, key, KEY_QUERY_VALUE); } - ~RegistryReader() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); } + ~RegistryReader() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } bool ReadString(const base::char16* name, DnsSystemSettings::RegString* out) const { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); out->set = false; if (!key_.Valid()) { // Assume that if the |key_| is invalid then the key is missing. @@ -96,7 +96,7 @@ bool ReadDword(const base::char16* name, DnsSystemSettings::RegDword* out) const { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); out->set = false; if (!key_.Valid()) { // Assume that if the |key_| is invalid then the key is missing. @@ -113,7 +113,7 @@ private: base::win::RegKey key_; - THREAD_CHECKER(thread_checker_); + SEQUENCE_CHECKER(sequence_checker_); DISALLOW_COPY_AND_ASSIGN(RegistryReader); }; @@ -275,10 +275,10 @@ typedef base::Callback<void(bool succeeded)> CallbackType; RegistryWatcher() {} - ~RegistryWatcher() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); } + ~RegistryWatcher() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); } bool Watch(const base::char16* key, const CallbackType& callback) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!callback.is_null()); DCHECK(callback_.is_null()); callback_ = callback; @@ -290,7 +290,7 @@ } void OnObjectSignaled() { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!callback_.is_null()); if (key_.StartWatching(base::Bind(&RegistryWatcher::OnObjectSignaled, base::Unretained(this)))) { @@ -305,7 +305,7 @@ CallbackType callback_; base::win::RegKey key_; - THREAD_CHECKER(thread_checker_); + SEQUENCE_CHECKER(sequence_checker_); DISALLOW_COPY_AND_ASSIGN(RegistryWatcher); }; @@ -564,7 +564,7 @@ return result; } -// Watches registry and HOSTS file for changes. Must live on a thread which +// Watches registry and HOSTS file for changes. Must live on a sequence which // allows IO. class DnsConfigServiceWin::Watcher : public NetworkChangeNotifier::IPAddressObserver { @@ -729,13 +729,16 @@ DISALLOW_COPY_AND_ASSIGN(HostsReader); }; -DnsConfigServiceWin::DnsConfigServiceWin() - : config_reader_(new ConfigReader(this)), - hosts_reader_(new HostsReader(this)) {} +DnsConfigServiceWin::DnsConfigServiceWin() { + // Allow constructing on one sequence and living on another. + DETACH_FROM_SEQUENCE(sequence_checker_); +} DnsConfigServiceWin::~DnsConfigServiceWin() { - config_reader_->Cancel(); - hosts_reader_->Cancel(); + if (config_reader_) + config_reader_->Cancel(); + if (hosts_reader_) + hosts_reader_->Cancel(); } void DnsConfigServiceWin::ReadNow() { @@ -744,6 +747,10 @@ } bool DnsConfigServiceWin::StartWatching() { + if (!config_reader_) + config_reader_ = base::MakeRefCounted<ConfigReader>(this); + if (!hosts_reader_) + hosts_reader_ = base::MakeRefCounted<HostsReader>(this); // TODO(szym): re-start watcher if that makes sense. http://crbug.com/116139 watcher_.reset(new Watcher(this)); UMA_HISTOGRAM_ENUMERATION("AsyncDNS.WatchStatus", DNS_CONFIG_WATCH_STARTED,
diff --git a/net/dns/dns_config_service_win.h b/net/dns/dns_config_service_win.h index a1224068..098d476 100644 --- a/net/dns/dns_config_service_win.h +++ b/net/dns/dns_config_service_win.h
@@ -124,6 +124,11 @@ const DnsSystemSettings& settings, DnsConfig* dns_config); +// Service for reading and watching Windows system DNS settings. This object is +// not thread-safe and methods may perform blocking I/O so methods must be +// called on a sequence that allows blocking (i.e. base::MayBlock). It may be +// constructed on a different sequence than which it's later called on. +// WatchConfig() must be called prior to ReadConfig(). // Use DnsConfigService::CreateSystemService to use it outside of tests. class NET_EXPORT_PRIVATE DnsConfigServiceWin : public DnsConfigService { public:
diff --git a/net/dns/host_resolver.cc b/net/dns/host_resolver.cc index 3e40081..065c188 100644 --- a/net/dns/host_resolver.cc +++ b/net/dns/host_resolver.cc
@@ -64,11 +64,6 @@ NOTREACHED(); } -const std::vector<DnsConfig::DnsOverHttpsServerConfig>* -HostResolver::GetDnsOverHttpsServersForTesting() const { - return nullptr; -} - HostResolverManager* HostResolver::GetManagerForTesting() { // Should be overridden in any HostResolver implementation where this method // may be called.
diff --git a/net/dns/host_resolver.h b/net/dns/host_resolver.h index 43ddb19..69a5d4f8 100644 --- a/net/dns/host_resolver.h +++ b/net/dns/host_resolver.h
@@ -298,20 +298,9 @@ // only be called once. virtual void SetRequestContext(URLRequestContext* request_context); - // Returns the currently configured DNS over HTTPS servers. Returns nullptr if - // DNS over HTTPS is not enabled. - virtual const std::vector<DnsConfig::DnsOverHttpsServerConfig>* - GetDnsOverHttpsServersForTesting() const; - virtual HostResolverManager* GetManagerForTesting(); virtual const URLRequestContext* GetContextForTesting() const; - // TODO(crbug.com/934402): Cleanup the various property-setting methods in - // this class. Many only affect manager-wide properties and can probably be - // removed and replaced by calling equivalent methods directly on the - // underlying HostResolverManager (through NetworkService that generally owns - // that manager). - // Creates a new HostResolver. |manager| must outlive the returned resolver. // // If |mapping_rules| is non-empty, the mapping rules will be applied to
diff --git a/net/dns/host_resolver_manager.h b/net/dns/host_resolver_manager.h index 8dcb04d..15828f70 100644 --- a/net/dns/host_resolver_manager.h +++ b/net/dns/host_resolver_manager.h
@@ -166,6 +166,8 @@ void AddHostCacheInvalidator(HostCache::Invalidator* invalidator); void RemoveHostCacheInvalidator(const HostCache::Invalidator* invalidator); + // Returns the currently configured DNS over HTTPS servers. Returns nullptr if + // DNS over HTTPS is not enabled. const std::vector<DnsConfig::DnsOverHttpsServerConfig>* GetDnsOverHttpsServersForTesting() const;
diff --git a/net/dns/mapped_host_resolver.cc b/net/dns/mapped_host_resolver.cc index 86caea5..182958a 100644 --- a/net/dns/mapped_host_resolver.cc +++ b/net/dns/mapped_host_resolver.cc
@@ -90,11 +90,6 @@ impl_->SetRequestContext(request_context); } -const std::vector<DnsConfig::DnsOverHttpsServerConfig>* -MappedHostResolver::GetDnsOverHttpsServersForTesting() const { - return impl_->GetDnsOverHttpsServersForTesting(); -} - HostResolverManager* MappedHostResolver::GetManagerForTesting() { return impl_->GetManagerForTesting(); }
diff --git a/net/dns/mapped_host_resolver.h b/net/dns/mapped_host_resolver.h index 7e3e1914..ca8c9f0 100644 --- a/net/dns/mapped_host_resolver.h +++ b/net/dns/mapped_host_resolver.h
@@ -60,8 +60,6 @@ bool* secure_out) const override; std::unique_ptr<base::Value> GetDnsConfigAsValue() const override; void SetRequestContext(URLRequestContext* request_context) override; - const std::vector<DnsConfig::DnsOverHttpsServerConfig>* - GetDnsOverHttpsServersForTesting() const override; HostResolverManager* GetManagerForTesting() override; private:
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json index cd342a3..8c9488e2 100644 --- a/net/http/transport_security_state_static.json +++ b/net/http/transport_security_state_static.json
@@ -71138,6 +71138,27 @@ { "name": "delawarenation-nsn.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, { "name": "minoritywhip.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, { "name": "gopwhip.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "artransparency.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "ohiosos.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "abitaspringsla.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "nscai.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "morgancountysheriffal.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "franklincountyflorida.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "azrangers.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "sterlingheights.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "innovateohio.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "ohioag.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "cookcountyclerkil.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "aoicprobationil.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "hartfordct.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "bega-dc.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "cityofwoodward-ok.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "manhassetparkdistrictny.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "cecilga.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "floridaagriculture.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "flagriculture.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "floridaconsumerhelp.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, + { "name": "sheriffpawneecountyne.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, { "name": "bmoattachments.org", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true }, // END OF ETLD-OWNER REQUESTED ENTRIES
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h index 48b75a87..769a92d 100644 --- a/net/quic/quic_flags_list.h +++ b/net/quic/quic_flags_list.h
@@ -353,3 +353,8 @@ QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_deprecate_queued_control_frames, false) + +// When true, QUIC server will drop IETF QUIC Version Negotiation packets. +QUIC_FLAG(bool, + FLAGS_quic_restart_flag_quic_server_drop_version_negotiation, + false)
diff --git a/remoting/android/BUILD.gn b/remoting/android/BUILD.gn index 0821d13..888389503 100644 --- a/remoting/android/BUILD.gn +++ b/remoting/android/BUILD.gn
@@ -13,6 +13,7 @@ generate_jni("jni_headers") { sources = [ "java/src/org/chromium/chromoting/jni/Client.java", + "java/src/org/chromium/chromoting/jni/DirectoryService.java", "java/src/org/chromium/chromoting/jni/GlDisplay.java", "java/src/org/chromium/chromoting/jni/JniInterface.java", "java/src/org/chromium/chromoting/jni/JniOAuthTokenGetter.java",
diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_java_tmpl.gni index 7c37778..92dc7eca 100644 --- a/remoting/android/client_java_tmpl.gni +++ b/remoting/android/client_java_tmpl.gni
@@ -26,7 +26,6 @@ "FlingAnimationJob.java", "HostInfo.java", "HostListAdapter.java", - "HostListManager.java", "InputEventSender.java", "InputFeedbackRadiusMapper.java", "InputModeChangedEventParameter.java", @@ -73,6 +72,7 @@ "jni/Client.java", "jni/ConnectionListener.java", "jni/GlDisplay.java", + "jni/DirectoryService.java", "jni/JniInterface.java", "jni/JniOAuthTokenGetter.java", "jni/TouchEventData.java", @@ -82,15 +82,20 @@ deps = [ "//base:base_java", + "//base:jni_java", "//remoting/android:remoting_android_client_java_resources", "//remoting/android:remoting_apk_manifest", + "//remoting/proto/remoting/v1:directory_proto_java", "//third_party/android_deps:android_arch_lifecycle_common_java", "//third_party/android_deps:android_support_v7_appcompat_java", "//third_party/android_deps:com_android_support_mediarouter_v7_java", "//third_party/android_deps:com_android_support_support_annotations_java", + "//third_party/android_deps:com_google_protobuf_protobuf_lite_java", "//ui/android:ui_utils_java", ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] + srcjar_deps = [ "//remoting/client/jni:jni_enums" ] if (defined(invoker.play_services_package)) {
diff --git a/remoting/android/java/src/org/chromium/chromoting/Chromoting.java b/remoting/android/java/src/org/chromium/chromoting/Chromoting.java index 3b8180bd..017a95262 100644 --- a/remoting/android/java/src/org/chromium/chromoting/Chromoting.java +++ b/remoting/android/java/src/org/chromium/chromoting/Chromoting.java
@@ -40,7 +40,8 @@ import org.chromium.chromoting.help.HelpSingleton; import org.chromium.chromoting.jni.Client; import org.chromium.chromoting.jni.ConnectionListener; -import org.chromium.chromoting.jni.ConnectionListener.State; +import org.chromium.chromoting.jni.DirectoryService; +import org.chromium.chromoting.jni.DirectoryServiceRequestError; import org.chromium.chromoting.jni.JniOAuthTokenGetter; import java.util.ArrayList; @@ -50,8 +51,9 @@ * The user interface for querying and displaying a user's host list from the directory server. It * also requests and renews authentication tokens using the system account manager. */ -public class Chromoting extends AppCompatActivity implements ConnectionListener, - AccountSwitcher.Callback, HostListManager.Callback, View.OnClickListener { +public class Chromoting extends AppCompatActivity + implements ConnectionListener, AccountSwitcher.Callback, DirectoryService.HostListCallback, + DirectoryService.DeleteCallback, View.OnClickListener { private static final String TAG = "Chromoting"; /** Only accounts of this type will be selectable for authentication. */ @@ -73,7 +75,7 @@ private String mAccount; /** Helper for fetching the host list. */ - private HostListManager mHostListManager; + private DirectoryService mDirectoryService; /** List of hosts. */ private HostInfo[] mHosts = new HostInfo[0]; @@ -231,7 +233,7 @@ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - mHostListManager = new HostListManager(); + mDirectoryService = new DirectoryService(); // Get ahold of our view widgets. mHostListView = (ListView) findViewById(R.id.hostList_chooser); @@ -556,7 +558,7 @@ }); final SessionConnector connector = - new SessionConnector(mClient, this, this, mHostListManager); + new SessionConnector(mClient, this, this, mDirectoryService); mAuthenticator = new SessionAuthenticator(this, mClient, host); mHostConnectingConsumer.consume(mAccount, new OAuthTokenFetcher.Callback() { @Override @@ -585,7 +587,7 @@ mHostListRetrievingConsumer.consume(mAccount, new OAuthTokenFetcher.Callback() { @Override public void onTokenFetched(String token) { - mHostListManager.retrieveHostList(token, Chromoting.this); + mDirectoryService.retrieveHostList(Chromoting.this); } @Override @@ -602,7 +604,7 @@ mHostDeletingConsumer.consume(mAccount, new OAuthTokenFetcher.Callback() { @Override public void onTokenFetched(String token) { - mHostListManager.deleteHost(token, hostId, Chromoting.this); + mDirectoryService.deleteHost(hostId, Chromoting.this); } @Override @@ -648,7 +650,7 @@ @Override public void onHostListReceived(HostInfo[] hosts) { - // Store a copy of the array, so that it can't be mutated by the HostListManager. HostInfo + // Store a copy of the array, so that it can't be mutated by the DirectoryService. HostInfo // is an immutable type, so a shallow copy of the array is sufficient here. mHosts = Arrays.copyOf(hosts, hosts.length); updateHostListView(); @@ -656,29 +658,24 @@ } @Override - public void onHostUpdated() { - // Not implemented Yet. - } - - @Override public void onHostDeleted() { // Refresh the host list. there is no need to refetch the auth token again. // onHostListReceived is in charge to hide the progress indicator. - mHostListManager.retrieveHostList(mHostDeletingConsumer.getLatestToken(), this); + mDirectoryService.retrieveHostList(this); } @Override - public void onError(@HostListManager.Error int error) { + public void onError(@DirectoryServiceRequestError int error) { String explanation = null; switch (error) { - case HostListManager.Error.AUTH_FAILED: + case DirectoryServiceRequestError.AUTH_FAILED: break; - case HostListManager.Error.NETWORK_ERROR: + case DirectoryServiceRequestError.NETWORK_ERROR: explanation = getString(R.string.error_network_error); break; - case HostListManager.Error.UNEXPECTED_RESPONSE: - case HostListManager.Error.SERVICE_UNAVAILABLE: - case HostListManager.Error.UNKNOWN: + case DirectoryServiceRequestError.UNEXPECTED_RESPONSE: + case DirectoryServiceRequestError.SERVICE_UNAVAILABLE: + case DirectoryServiceRequestError.UNKNOWN: explanation = getString(R.string.error_unexpected); break; default:
diff --git a/remoting/android/java/src/org/chromium/chromoting/HostInfo.java b/remoting/android/java/src/org/chromium/chromoting/HostInfo.java index 795347f8..1318a007 100644 --- a/remoting/android/java/src/org/chromium/chromoting/HostInfo.java +++ b/remoting/android/java/src/org/chromium/chromoting/HostInfo.java
@@ -27,6 +27,7 @@ public final String name; public final String id; public final String jabberId; + public final String ftlId; public final String publicKey; public final boolean isOnline; public final String hostOfflineReason; @@ -47,30 +48,21 @@ // to have a safe fallback in case it does happen. private static final Date FALLBACK_DATE_IN_THE_PAST = new Date(0); - public HostInfo(String name, String id, String jabberId, String publicKey, + public HostInfo(String name, String id, String jabberId, String ftlId, String publicKey, ArrayList<String> tokenUrlPatterns, boolean isOnline, String hostOfflineReason, - String updatedTime, String hostVersion, String hostOs, String hostOsVersion) { + Date updatedTime, String hostVersion, String hostOs, String hostOsVersion) { this.name = name; this.id = id; this.jabberId = jabberId; + this.ftlId = ftlId; this.publicKey = publicKey; this.mTokenUrlPatterns = tokenUrlPatterns; this.isOnline = isOnline; this.hostOfflineReason = hostOfflineReason; + this.updatedTime = updatedTime; this.hostVersion = hostVersion; this.hostOs = hostOs; this.hostOsVersion = hostOsVersion; - - ParsePosition parsePosition = new ParsePosition(0); - SimpleDateFormat format = new SimpleDateFormat(RFC_3339_FORMAT, Locale.US); - format.setTimeZone(TimeZone.getTimeZone("UTC")); - Date updatedTimeCandidate = format.parse(updatedTime, parsePosition); - if (updatedTimeCandidate == null) { - Log.e(TAG, "Unparseable host.updatedTime JSON: errorIndex = %d, input = %s", - parsePosition.getErrorIndex(), updatedTime); - updatedTimeCandidate = FALLBACK_DATE_IN_THE_PAST; - } - this.updatedTime = updatedTimeCandidate; } private int getHostOfflineReasonResourceId(String reason) { @@ -132,10 +124,23 @@ } } } + + final String updatedTime = json.optString("updatedTime"); + ParsePosition parsePosition = new ParsePosition(0); + SimpleDateFormat format = new SimpleDateFormat(RFC_3339_FORMAT, Locale.US); + format.setTimeZone(TimeZone.getTimeZone("UTC")); + Date updatedTimeCandidate = format.parse(updatedTime, parsePosition); + if (updatedTimeCandidate == null) { + Log.e(TAG, "Unparseable host.updatedTime JSON: errorIndex = %d, input = %s", + parsePosition.getErrorIndex(), updatedTime); + updatedTimeCandidate = FALLBACK_DATE_IN_THE_PAST; + } + final Date parsedUpdatedTime = updatedTimeCandidate; + return new HostInfo(json.getString("hostName"), json.getString("hostId"), - json.optString("jabberId"), json.optString("publicKey"), tokenUrlPatterns, + json.optString("jabberId"), null, json.optString("publicKey"), tokenUrlPatterns, json.optString("status").equals("ONLINE"), json.optString("hostOfflineReason"), - json.optString("updatedTime"), json.optString("hostVersion"), - json.optString("hostOs"), json.optString("hostOsVersion")); + parsedUpdatedTime, json.optString("hostVersion"), json.optString("hostOs"), + json.optString("hostOsVersion")); } }
diff --git a/remoting/android/java/src/org/chromium/chromoting/HostListManager.java b/remoting/android/java/src/org/chromium/chromoting/HostListManager.java deleted file mode 100644 index 2b5133bd..0000000 --- a/remoting/android/java/src/org/chromium/chromoting/HostListManager.java +++ /dev/null
@@ -1,325 +0,0 @@ -// Copyright 2014 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. - -package org.chromium.chromoting; - -import android.os.Handler; -import android.os.HandlerThread; -import android.os.Looper; -import android.support.annotation.IntDef; -import android.support.annotation.Nullable; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import org.chromium.base.Log; - -import java.io.IOException; -import java.io.OutputStream; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Locale; -import java.util.Scanner; - -/** Helper for fetching and modifying the host list. */ -@SuppressWarnings("JavaLangClash") -public class HostListManager { - @IntDef({Error.AUTH_FAILED, Error.NETWORK_ERROR, Error.SERVICE_UNAVAILABLE, - Error.UNEXPECTED_RESPONSE, Error.UNKNOWN}) - @Retention(RetentionPolicy.SOURCE) - public @interface Error { - int AUTH_FAILED = 0; - int NETWORK_ERROR = 1; - int SERVICE_UNAVAILABLE = 2; - int UNEXPECTED_RESPONSE = 3; - int UNKNOWN = 4; - } - - /** Callback for receiving the host list, or getting notified of an error. */ - public interface Callback { - void onHostListReceived(HostInfo[] response); - void onHostUpdated(); - void onHostDeleted(); - void onError(@Error int error); - } - - /** - * Represents a response from the directory server. - * If the request failed, |error| will not be null and |body| will be null. - * If the request succeeds, |error| will be null and |body| will not be null. - **/ - private static class Response { - public final @Error Integer error; - public final String body; - public Response(@Nullable @Error Integer error, String body) { - this.error = error; - this.body = body; - } - } - - private static final String TAG = "Chromoting"; - - /** Path from which to download a user's host list JSON object. */ - private static final String HOST_LIST_PATH = - "https://www.googleapis.com/chromoting/v1/@me/hosts"; - - /** Callback handler to be used for network operations. */ - private Handler mNetworkThread; - - /** Handler for main thread. */ - private Handler mMainThread; - - public HostListManager() { - // Thread responsible for downloading the host list. - - mMainThread = new Handler(Looper.getMainLooper()); - } - - private void runOnNetworkThread(Runnable runnable) { - if (mNetworkThread == null) { - HandlerThread thread = new HandlerThread("network"); - thread.start(); - mNetworkThread = new Handler(thread.getLooper()); - } - mNetworkThread.post(runnable); - } - - /** - * Causes the host list to be fetched on a background thread. This should be called on the - * main thread, and callbacks will also be invoked on the main thread. On success, - * callback.onHostListReceived() will be called, otherwise callback.onError() will be called - * with an error-code describing the failure. - */ - public void retrieveHostList(final String authToken, final Callback callback) { - runOnNetworkThread(new Runnable() { - @Override - public void run() { - doRetrieveHostList(authToken, callback); - } - }); - } - - private void doRetrieveHostList(String authToken, Callback callback) { - Response response = sendRequest(authToken, HOST_LIST_PATH, "GET", null, null); - if (response.error != null) { - postError(callback, response.error); - return; - } - - // Parse directory response. - ArrayList<HostInfo> hostList = new ArrayList<HostInfo>(); - try { - JSONObject data = new JSONObject(response.body).getJSONObject("data"); - if (data.has("items")) { - JSONArray hostsJson = data.getJSONArray("items"); - - int index = 0; - while (!hostsJson.isNull(index)) { - JSONObject hostJson = hostsJson.getJSONObject(index); - // If a host is only recently registered, it may be missing some of the keys - // below. It should still be visible in the list, even though a connection - // attempt will fail because of the missing keys. The failed attempt will - // trigger reloading of the host-list, by which time the keys will hopefully be - // present, and the retried connection can succeed. - HostInfo host = HostInfo.create(hostJson); - hostList.add(host); - ++index; - } - } - } catch (JSONException ex) { - // Logging the exception stack trace may be too spammy. - Log.e(TAG, "Error parsing host list response: %s", ex.getMessage()); - postError(callback, Error.UNEXPECTED_RESPONSE); - return; - } - - sortHosts(hostList); - - final Callback callbackFinal = callback; - final HostInfo[] hosts = hostList.toArray(new HostInfo[hostList.size()]); - mMainThread.post(new Runnable() { - @Override - public void run() { - callbackFinal.onHostListReceived(hosts); - } - }); - } - - /** - * Updates a host on the background thread. On success, callback.onHostUpdated() will be called, - * otherwise callback.onError() will be called with an error-code describing the failure. - */ - public void putHost(final String authToken, final String hostId, final String hostName, - final String publicKey, final Callback callback) { - runOnNetworkThread(new Runnable() { - @Override - public void run() { - doPutHost(authToken, hostId, hostName, publicKey, callback); - } - }); - } - - private void doPutHost(String authToken, String hostId, String hostName, String publicKey, - final Callback callback) { - String requestJson; - try { - JSONObject data = new JSONObject(); - data.put("hostId", hostId); - data.put("hostName", hostName); - data.put("publicKey", publicKey); - JSONObject request = new JSONObject(); - request.put("data", data); - requestJson = request.toString(); - } catch (JSONException ex) { - Log.e(TAG, "Error creating put host JSON string: %s", ex.getMessage()); - postError(callback, Error.UNKNOWN); - return; - } - Response response = sendRequest(authToken, HOST_LIST_PATH + '/' + hostId, "PUT", - "application/json", requestJson); - if (response.error != null) { - postError(callback, response.error); - } else { - mMainThread.post(new Runnable() { - @Override - public void run() { - callback.onHostUpdated(); - } - }); - } - } - - /** - * Deletes a host on the background thread. On success, callback.onHostUpdated() will be called, - * otherwise callback.onError() will be called with an error-code describing the failure. - */ - public void deleteHost(final String authToken, final String hostId, - final Callback callback) { - runOnNetworkThread(new Runnable() { - @Override - public void run() { - doDeleteHost(authToken, hostId, callback); - } - }); - } - - private void doDeleteHost(String authToken, String hostId, final Callback callback) { - Response response = sendRequest(authToken, HOST_LIST_PATH + '/' + hostId, "DELETE", - null, null); - if (response.error != null) { - postError(callback, response.error); - } else { - mMainThread.post(new Runnable() { - @Override - public void run() { - callback.onHostDeleted(); - } - }); - } - } - - /** Posts error to callback on main thread. */ - private void postError(Callback callback, @Error int error) { - final Callback callbackFinal = callback; - final @Error int errorFinal = error; - mMainThread.post(new Runnable() { - @Override - public void run() { - callbackFinal.onError(errorFinal); - } - }); - } - - private static void sortHosts(ArrayList<HostInfo> hosts) { - Comparator<HostInfo> hostComparator = new Comparator<HostInfo>() { - @Override - public int compare(HostInfo a, HostInfo b) { - if (a.isOnline != b.isOnline) { - return a.isOnline ? -1 : 1; - } - String aName = a.name.toUpperCase(Locale.getDefault()); - String bName = b.name.toUpperCase(Locale.getDefault()); - return aName.compareTo(bName); - } - }; - Collections.sort(hosts, hostComparator); - } - - /** - * Sends request to the url and returns the response. - * @param authToken auth token - * @param url the URL to send the request - * @param method /GET/POST/PUT/DELETE/etc. - * @param requestContentType The content type of the request body. This can be null. - * @param requestBody This can be null. - * @return The response. - */ - private static Response sendRequest(String authToken, String url, String method, - String requestContentType, String requestBody) { - HttpURLConnection link = null; - @Nullable - @Error - Integer error = null; - try { - link = (HttpURLConnection) new URL(url).openConnection(); - link.setRequestMethod(method); - link.setRequestProperty("Authorization", "OAuth " + authToken); - if (requestContentType != null) { - link.setRequestProperty("Content-Type", requestContentType); - } - if (requestBody != null) { - byte[] requestBytes = requestBody.getBytes("UTF-8"); - OutputStream outStream = link.getOutputStream(); - outStream.write(requestBytes); - outStream.close(); - } - - // Listen for the server to respond. - int status = link.getResponseCode(); - // TODO(yuweih): Turn this switch statement into range testing. e.g. 200-299 = OK. - switch (status) { - case HttpURLConnection.HTTP_OK: // 200 - case HttpURLConnection.HTTP_NO_CONTENT: // 204 - break; - case HttpURLConnection.HTTP_UNAUTHORIZED: // 401 - error = Error.AUTH_FAILED; - break; - case HttpURLConnection.HTTP_BAD_GATEWAY: // 502 - case HttpURLConnection.HTTP_UNAVAILABLE: // 503 - error = Error.SERVICE_UNAVAILABLE; - break; - default: - error = Error.UNKNOWN; - } - - if (error != null) { - return new Response(error, null); - } - - StringBuilder responseBuilder = new StringBuilder(); - Scanner incoming = new Scanner(link.getInputStream()); - while (incoming.hasNext()) { - responseBuilder.append(incoming.nextLine()); - } - incoming.close(); - return new Response(null, responseBuilder.toString()); - } catch (MalformedURLException ex) { - // This should never happen. - throw new RuntimeException("Unexpected error while fetching host list: ", ex); - } catch (IOException ex) { - return new Response(Error.NETWORK_ERROR, null); - } finally { - if (link != null) { - link.disconnect(); - } - } - } -}
diff --git a/remoting/android/java/src/org/chromium/chromoting/SessionConnector.java b/remoting/android/java/src/org/chromium/chromoting/SessionConnector.java index 5bf59ed..4153e219 100644 --- a/remoting/android/java/src/org/chromium/chromoting/SessionConnector.java +++ b/remoting/android/java/src/org/chromium/chromoting/SessionConnector.java
@@ -6,16 +6,18 @@ import org.chromium.chromoting.jni.Client; import org.chromium.chromoting.jni.ConnectionListener; +import org.chromium.chromoting.jni.DirectoryService; +import org.chromium.chromoting.jni.DirectoryServiceRequestError; /** * This class manages making a connection to a host, with logic for reloading the host list and * retrying the connection in the case of a stale host JID. */ -public class SessionConnector implements ConnectionListener, HostListManager.Callback { +public class SessionConnector implements ConnectionListener, DirectoryService.HostListCallback { private Client mClient; private ConnectionListener mConnectionListener; - private HostListManager.Callback mHostListCallback; - private HostListManager mHostListManager; + private DirectoryService.HostListCallback mHostListCallback; + private DirectoryService mDirectoryService; private SessionAuthenticator mAuthenticator; private String mAccountName; @@ -36,14 +38,14 @@ /** * @param connectionListener Object to be notified on connection success/failure. * @param hostListCallback Object to be notified whenever the host list is reloaded. - * @param hostListManager The object used for reloading the host list. + * @param directoryService The object used for reloading the host list. */ public SessionConnector(Client client, ConnectionListener connectionListener, - HostListManager.Callback hostListCallback, HostListManager hostListManager) { + DirectoryService.HostListCallback hostListCallback, DirectoryService directoryService) { mClient = client; mConnectionListener = connectionListener; mHostListCallback = hostListCallback; - mHostListManager = hostListManager; + mDirectoryService = directoryService; } /** Initiates a connection to the host. */ @@ -77,7 +79,7 @@ private void reloadHostListAndConnect() { mTriedReloadingHostList = true; - mHostListManager.retrieveHostList(mAuthToken, this); + mDirectoryService.retrieveHostList(this); } @Override @@ -130,17 +132,7 @@ } @Override - public void onHostUpdated() { - // Not implemented Yet. - } - - @Override - public void onHostDeleted() { - // Not implemented Yet. - } - - @Override - public void onError(@HostListManager.Error int error) { + public void onError(@DirectoryServiceRequestError int error) { // Connection failed and reloading the host list also failed, so report the connection // error. mConnectionListener.onConnectionState(ConnectionListener.State.FAILED,
diff --git a/remoting/android/java/src/org/chromium/chromoting/jni/DirectoryService.java b/remoting/android/java/src/org/chromium/chromoting/jni/DirectoryService.java new file mode 100644 index 0000000..24609d2c --- /dev/null +++ b/remoting/android/java/src/org/chromium/chromoting/jni/DirectoryService.java
@@ -0,0 +1,137 @@ +// Copyright 2019 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. + +package org.chromium.chromoting.jni; + +import com.google.protobuf.InvalidProtocolBufferException; + +import org.chromium.base.annotations.CalledByNative; +import org.chromium.base.annotations.JCaller; +import org.chromium.base.annotations.JNINamespace; +import org.chromium.base.annotations.NativeMethods; +import org.chromium.chromoting.HostInfo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.Date; + +/** Helper for fetching and modifying the host list. */ +@JNINamespace("remoting") +public class DirectoryService { + /** All callbacks can receive an error. */ + public interface CallbackBase { void onError(@DirectoryServiceRequestError int error); } + + /** Callback for receiving the host list */ + public interface HostListCallback extends CallbackBase { + void onHostListReceived(HostInfo[] response); + } + + /** Callback for receiving the delete result */ + public interface DeleteCallback extends CallbackBase { void onHostDeleted(); } + + public DirectoryService() { + mNativeJniDirectoryService = DirectoryServiceJni.get().init(); + } + + /** + * Causes the host list to be fetched on a background thread. This should be called on the + * main thread, and callbacks will also be invoked on the main thread. On success, + * callback.onHostListReceived() will be called, otherwise callback.onError() will be called + * with an error-code describing the failure. + */ + public void retrieveHostList(final HostListCallback callback) { + DirectoryServiceJni.get().retrieveHostList(this, mNativeJniDirectoryService, callback); + } + + /** + * Deletes a host on the background thread. On success, callback.onHostUpdated() will be called, + * otherwise callback.onError() will be called with an error-code describing the failure. + */ + public void deleteHost(final String hostId, final DeleteCallback callback) { + DirectoryServiceJni.get().deleteHost(this, mNativeJniDirectoryService, hostId, callback); + } + + @Override + public void finalize() { + DirectoryServiceJni.get().destroy(this, mNativeJniDirectoryService); + } + + private final long mNativeJniDirectoryService; + + @NativeMethods + interface Natives { + long init(); + void retrieveHostList(@JCaller DirectoryService self, long nativeJniDirectoryService, + HostListCallback callback); + void deleteHost(@JCaller DirectoryService self, long nativeJniDirectoryService, + String hostId, DeleteCallback callback); + void destroy(@JCaller DirectoryService self, long nativeJniDirectoryService); + } + + /** + * Called by native code when the host list has been successfully retrieved. + * @param callback The Java callback originally provided to retrieveHostList. + * @param response The serialized response. + */ + @CalledByNative + static void onHostListRetrieved(final HostListCallback callback, final byte[] response) { + remoting.apis.v1.GetHostListResponse hostListResponse; + try { + hostListResponse = remoting.apis.v1.GetHostListResponse.parseFrom(response); + } catch (InvalidProtocolBufferException e) { + callback.onError(DirectoryServiceRequestError.UNEXPECTED_RESPONSE); + return; + } + + final int count = hostListResponse.getHostsCount(); + + final HostInfo[] hosts = new HostInfo[count]; + + for (int i = 0; i < count; ++i) { + remoting.apis.v1.HostInfo hostProto = hostListResponse.getHosts(i); + HostInfo host = new HostInfo(hostProto.getHostName(), hostProto.getHostId(), + hostProto.getJabberId(), hostProto.getFtlId(), hostProto.getPublicKey(), + new ArrayList<String>(hostProto.getTokenUrlPatternList()), + hostProto.getStatus() == remoting.apis.v1.HostInfo.Status.ONLINE, + hostProto.getHostOfflineReason(), new Date(hostProto.getLastSeenTime()), + hostProto.getHostVersion(), hostProto.getHostOsName(), + hostProto.getHostOsVersion()); + hosts[i] = host; + } + + Arrays.sort(hosts, new Comparator<HostInfo>() { + @Override + public int compare(HostInfo o1, HostInfo o2) { + // Sort online hosts first. + int result = -Boolean.compare(o1.isOnline, o2.isOnline); + if (result == 0) { + result = String.CASE_INSENSITIVE_ORDER.compare(o1.name, o2.name); + } + return result; + } + }); + + callback.onHostListReceived(hosts); + } + + /** + * Called by native code when the delete request was successfully completed. + * @param callback The Java callback originally provided to deleteHost. + */ + @CalledByNative + static void onHostDeleted(final DeleteCallback callback) { + callback.onHostDeleted(); + } + + /** + * Called by native code when an error occurs while performing the request. + * @param callback The Java callback originally provided to deleteHost. + * @param error The type of error that occurred. + */ + @CalledByNative + static void onError(final CallbackBase callback, @DirectoryServiceRequestError int error) { + callback.onError(error); + } +}
diff --git a/remoting/client/BUILD.gn b/remoting/client/BUILD.gn index 9889a93..57ec138 100644 --- a/remoting/client/BUILD.gn +++ b/remoting/client/BUILD.gn
@@ -63,7 +63,6 @@ "//remoting/base:authorization", "//remoting/client/input", "//remoting/client/ui", - "//remoting/proto/remoting/v1:directory_grpc_library", "//services/network:network_service", "//services/network/public/mojom", ]
diff --git a/remoting/client/jni/BUILD.gn b/remoting/client/jni/BUILD.gn index 34c08965..30ff03e 100644 --- a/remoting/client/jni/BUILD.gn +++ b/remoting/client/jni/BUILD.gn
@@ -22,6 +22,7 @@ "//remoting/base", "//remoting/client", "//remoting/client/display", + "//remoting/proto/remoting/v1:directory_grpc_library", "//remoting/protocol", "//ui/gfx", ] @@ -30,6 +31,8 @@ "egl_thread_context.h", "jni_client.cc", "jni_client.h", + "jni_directory_service.cc", + "jni_directory_service.h", "jni_gl_display_handler.cc", "jni_gl_display_handler.h", "jni_oauth_token_getter.cc", @@ -54,6 +57,7 @@ java_cpp_enum("jni_enums") { sources = [ + "jni_directory_service.h", "jni_oauth_token_getter.h", ] }
diff --git a/remoting/client/jni/jni_directory_service.cc b/remoting/client/jni/jni_directory_service.cc new file mode 100644 index 0000000..4487ab7 --- /dev/null +++ b/remoting/client/jni/jni_directory_service.cc
@@ -0,0 +1,136 @@ +// Copyright 2019 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 "remoting/client/jni/jni_directory_service.h" + +#include <memory> +#include <string> +#include <utility> + +#include "base/android/jni_android.h" +#include "base/android/jni_array.h" +#include "base/android/jni_string.h" +#include "base/bind.h" +#include "base/macros.h" +#include "base/threading/sequenced_task_runner_handle.h" +#include "jni/DirectoryService_jni.h" +#include "remoting/base/grpc_support/grpc_async_unary_request.h" +#include "remoting/base/grpc_support/grpc_authenticated_executor.h" +#include "remoting/base/grpc_support/grpc_channel.h" +#include "remoting/base/oauth_token_getter.h" +#include "remoting/base/service_urls.h" +#include "remoting/proto/remoting/v1/directory_service.grpc.pb.h" + +#include "base/logging.h" + +namespace remoting { + +namespace { + +JniDirectoryService::RequestError MapError(grpc::StatusCode status_code) { + switch (status_code) { + case grpc::UNAVAILABLE: + return JniDirectoryService::RequestError::SERVICE_UNAVAILABLE; + break; + case grpc::PERMISSION_DENIED: + case grpc::UNAUTHENTICATED: + return JniDirectoryService::RequestError::AUTH_FAILED; + break; + default: + return JniDirectoryService::RequestError::UNKNOWN; + break; + } +} + +} // namespace + +JniDirectoryService::JniDirectoryService() + : grpc_executor_(&token_getter_), + stub_(apis::v1::RemotingDirectoryService::NewStub( + CreateSslChannelForEndpoint( + ServiceUrls::GetInstance()->remoting_server_endpoint()))), + sequence_(base::SequencedTaskRunnerHandle::Get()) {} + +JniDirectoryService::~JniDirectoryService() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +} + +void JniDirectoryService::RetrieveHostList( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& caller, + const base::android::JavaParamRef<jobject>& callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + grpc_executor_.ExecuteRpc(CreateGrpcAsyncUnaryRequest( + base::BindOnce( + &apis::v1::RemotingDirectoryService::Stub::AsyncGetHostList, + base::Unretained(stub_.get())), + std::make_unique<grpc::ClientContext>(), apis::v1::GetHostListRequest(), + base::BindOnce(&JniDirectoryService::OnHostListRetrieved, + base::Unretained(this), + base::android::ScopedJavaGlobalRef<jobject>(callback)))); +} + +void JniDirectoryService::DeleteHost( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& caller, + const base::android::JavaParamRef<jstring>& host_id, + const base::android::JavaParamRef<jobject>& callback) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + apis::v1::DeleteHostRequest request; + request.set_host_id(base::android::ConvertJavaStringToUTF8(env, host_id)); + grpc_executor_.ExecuteRpc(CreateGrpcAsyncUnaryRequest( + base::BindOnce(&apis::v1::RemotingDirectoryService::Stub::AsyncDeleteHost, + base::Unretained(stub_.get())), + std::make_unique<grpc::ClientContext>(), request, + base::BindOnce(&JniDirectoryService::OnHostDeleted, + base::Unretained(this), + base::android::ScopedJavaGlobalRef<jobject>(callback)))); +} + +void JniDirectoryService::Destroy( + JNIEnv* env, + const base::android::JavaParamRef<jobject>& caller) { + if (sequence_->RunsTasksInCurrentSequence()) { + delete this; + } else { + sequence_->DeleteSoon(FROM_HERE, this); + } +} + +void JniDirectoryService::OnHostListRetrieved( + base::android::ScopedJavaGlobalRef<jobject> callback, + const grpc::Status& status, + const apis::v1::GetHostListResponse& response) { + JNIEnv* env = base::android::AttachCurrentThread(); + if (status.ok()) { + Java_DirectoryService_onHostListRetrieved( + env, callback, + base::android::ToJavaByteArray(env, response.SerializeAsString())); + } else { + LOG(ERROR) << "Retrieving host list failed: " << status.error_message(); + Java_DirectoryService_onError( + env, callback, static_cast<jint>(MapError(status.error_code()))); + } +} + +void JniDirectoryService::OnHostDeleted( + base::android::ScopedJavaGlobalRef<jobject> callback, + const grpc::Status& status, + const apis::v1::DeleteHostResponse& response) { + JNIEnv* env = base::android::AttachCurrentThread(); + if (status.ok()) { + Java_DirectoryService_onHostDeleted(env, callback); + } else { + LOG(ERROR) << "Deleting host failed: " << status.error_message(); + // TODO(rkjnsn): Translate error code from status. + Java_DirectoryService_onError( + env, callback, static_cast<jint>(MapError(status.error_code()))); + } +} + +static jlong JNI_DirectoryService_Init(JNIEnv* env) { + return reinterpret_cast<intptr_t>(new JniDirectoryService()); +} + +} // namespace remoting
diff --git a/remoting/client/jni/jni_directory_service.h b/remoting/client/jni/jni_directory_service.h new file mode 100644 index 0000000..469810b --- /dev/null +++ b/remoting/client/jni/jni_directory_service.h
@@ -0,0 +1,63 @@ +// Copyright 2019 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 REMOTING_CLIENT_JNI_JNI_DIRECTORY_SERVICE_H_ +#define REMOTING_CLIENT_JNI_JNI_DIRECTORY_SERVICE_H_ + +#include <memory> + +#include "base/android/scoped_java_ref.h" +#include "base/memory/scoped_refptr.h" +#include "base/sequence_checker.h" +#include "base/sequenced_task_runner.h" +#include "remoting/base/grpc_support/grpc_authenticated_executor.h" +#include "remoting/client/jni/jni_oauth_token_getter.h" +#include "remoting/proto/remoting/v1/directory_service.grpc.pb.h" + +namespace remoting { + +class JniDirectoryService { + public: + // TODO(rkjnsn): Update error codes to better align with those returned by the + // new gRPC API. + // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chromoting.jni + // GENERATED_JAVA_CLASS_NAME_OVERRIDE: DirectoryServiceRequestError + enum class RequestError : int { + AUTH_FAILED = 0, + NETWORK_ERROR = 1, + SERVICE_UNAVAILABLE = 2, + UNEXPECTED_RESPONSE = 3, + UNKNOWN = 4, + }; + JniDirectoryService(); + ~JniDirectoryService(); + + void RetrieveHostList(JNIEnv* env, + const base::android::JavaParamRef<jobject>& caller, + const base::android::JavaParamRef<jobject>& callback); + void DeleteHost(JNIEnv* env, + const base::android::JavaParamRef<jobject>& caller, + const base::android::JavaParamRef<jstring>& host_id, + const base::android::JavaParamRef<jobject>& callback); + + void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& caller); + + private: + void OnHostListRetrieved(base::android::ScopedJavaGlobalRef<jobject> callback, + const grpc::Status& status, + const apis::v1::GetHostListResponse& response); + void OnHostDeleted(base::android::ScopedJavaGlobalRef<jobject> callback, + const grpc::Status& status, + const apis::v1::DeleteHostResponse& response); + + JniOAuthTokenGetter token_getter_; + GrpcAuthenticatedExecutor grpc_executor_; + std::unique_ptr<apis::v1::RemotingDirectoryService::Stub> stub_; + scoped_refptr<base::SequencedTaskRunner> sequence_; + SEQUENCE_CHECKER(sequence_checker_); +}; + +} // namespace remoting + +#endif // REMOTING_CLIENT_JNI_JNI_DIRECTORY_SERVICE_H_
diff --git a/remoting/ios/app/app_delegate.h b/remoting/ios/app/app_delegate.h index 52f0d52..31fea8b 100644 --- a/remoting/ios/app/app_delegate.h +++ b/remoting/ios/app/app_delegate.h
@@ -20,8 +20,10 @@ // controller. - (void)navigateToHelpCenter:(UINavigationController*)navigationController; -// Presents the help center modally onto the topmost view controller. +// Presents contents modally onto the topmost view controller. - (void)presentHelpCenter; +- (void)presentTermsOfService; +- (void)presentPrivacyPolicy; // TODO(yuweih): Replace calls to this method with methods from HelpAndFeedback. // This will present the Send Feedback view controller onto the topmost view
diff --git a/remoting/ios/app/app_delegate.mm b/remoting/ios/app/app_delegate.mm index 97fe90c..ff967e6 100644 --- a/remoting/ios/app/app_delegate.mm +++ b/remoting/ios/app/app_delegate.mm
@@ -10,6 +10,7 @@ #import <AVFoundation/AVFoundation.h> +#include "remoting/base/string_resources.h" #import "remoting/ios/app/app_initializer.h" #import "remoting/ios/app/app_view_controller.h" #import "remoting/ios/app/first_launch_view_presenter.h" @@ -21,12 +22,17 @@ #import "remoting/ios/app/view_utils.h" #import "remoting/ios/app/web_view_controller.h" #import "remoting/ios/facade/remoting_oauth_authentication.h" +#include "ui/base/l10n/l10n_util.h" #include "base/logging.h" #include "remoting/base/string_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/resource/resource_bundle.h" +static NSString* const kTosUrl = @"https://policies.google.com/terms"; +static NSString* const kPrivacyPolicyUrl = + @"https://policies.google.com/privacy"; + @interface AppDelegate ()<FirstLaunchViewControllerDelegate> { AppViewController* _appViewController; FirstLaunchViewPresenter* _firstLaunchViewPresenter; @@ -121,6 +127,14 @@ [UserStatusPresenter.instance start]; } +- (void)presentOnTopPresentingVC:(UIViewController*)viewController { + UINavigationController* navController = [[UINavigationController alloc] + initWithRootViewController:viewController]; + [remoting::TopPresentingVC() presentViewController:navController + animated:YES + completion:nil]; +} + #pragma mark - AppDelegate - (void)navigateToHelpCenter:(UINavigationController*)navigationController { @@ -129,11 +143,21 @@ } - (void)presentHelpCenter { - UINavigationController* navController = [[UINavigationController alloc] - initWithRootViewController:[[HelpViewController alloc] init]]; - [remoting::TopPresentingVC() presentViewController:navController - animated:YES - completion:nil]; + [self presentOnTopPresentingVC:[[HelpViewController alloc] init]]; +} + +- (void)presentTermsOfService { + [self presentOnTopPresentingVC:[[WebViewController alloc] + initWithUrl:kTosUrl + title:l10n_util::GetNSString( + IDS_TERMS_OF_SERVICE)]]; +} + +- (void)presentPrivacyPolicy { + [self presentOnTopPresentingVC:[[WebViewController alloc] + initWithUrl:kPrivacyPolicyUrl + title:l10n_util::GetNSString( + IDS_PRIVACY_POLICY)]]; } - (void)presentFeedbackFlowWithContext:(NSString*)context {
diff --git a/remoting/ios/app/side_menu_items.mm b/remoting/ios/app/side_menu_items.mm index 3da806d..39eb1df 100644 --- a/remoting/ios/app/side_menu_items.mm +++ b/remoting/ios/app/side_menu_items.mm
@@ -81,6 +81,20 @@ action:^{ [AppDelegate.instance presentHelpCenter]; }], + ], + @[ + [[SideMenuItem alloc] + initWithTitle:l10n_util::GetNSString(IDS_TERMS_OF_SERVICE) + icon:nil + action:^{ + [AppDelegate.instance presentTermsOfService]; + }], + [[SideMenuItem alloc] + initWithTitle:l10n_util::GetNSString(IDS_PRIVACY_POLICY) + icon:nil + action:^{ + [AppDelegate.instance presentPrivacyPolicy]; + }] ] ]; });
diff --git a/remoting/proto/remoting/v1/BUILD.gn b/remoting/proto/remoting/v1/BUILD.gn index 0a27851..dc82817 100644 --- a/remoting/proto/remoting/v1/BUILD.gn +++ b/remoting/proto/remoting/v1/BUILD.gn
@@ -11,3 +11,15 @@ "host_info.proto", ] } + +if (is_android) { + import("///build/config/android/rules.gni") + + proto_java_library("directory_proto_java") { + proto_path = "." + sources = [ + "directory_messages.proto", + "host_info.proto", + ] + } +}
diff --git a/remoting/proto/remoting/v1/directory_messages.proto b/remoting/proto/remoting/v1/directory_messages.proto index 0208160..94adc3b4 100644 --- a/remoting/proto/remoting/v1/directory_messages.proto +++ b/remoting/proto/remoting/v1/directory_messages.proto
@@ -4,6 +4,7 @@ syntax = "proto2"; +option java_multiple_files = true; option optimize_for = LITE_RUNTIME; package remoting.apis.v1; @@ -84,6 +85,31 @@ HEARTBEATRESULT_ERROR = 2; } +// Requests that a new host entry to added to the Directory. +message RegisterHostRequest { + // Host identity. Normally a UUID. + optional string host_id = 1; + + // Public key for the host. Must be a 2048-bit RSA key encoded with BASE64. + optional string public_key = 2; + + // A readable name shown to the user. + optional string host_name = 3; + + // The OAuth client ID for the host. + optional string host_client_id = 4; +} + +// Response to a RegisterHostRequest. +message RegisterHostResponse { + // The Directory entry for the registered host. + optional remoting.apis.v1.HostInfo host_info = 1; + + // An auth code nonce which can be exchanged for a new token from Gaia by the + // robot account created for the new host instance. + optional string auth_code = 2; +} + // Requests an auth_code with updated OAuth scopes. Should only be called by // robot accounts assigned to a Me2me host. message UpdateRobotTokenRequest {}
diff --git a/remoting/proto/remoting/v1/directory_service.proto b/remoting/proto/remoting/v1/directory_service.proto index b66338a..be06f04 100644 --- a/remoting/proto/remoting/v1/directory_service.proto +++ b/remoting/proto/remoting/v1/directory_service.proto
@@ -4,6 +4,7 @@ syntax = "proto2"; +option java_multiple_files = true; option optimize_for = LITE_RUNTIME; // Note that the package name is used to build the service URL. @@ -14,6 +15,9 @@ // A set of RPC services which provide functionality for remote access hosts // and clients. service RemotingDirectoryService { + // RPC service which deletes a host from the directory. + rpc DeleteHost(DeleteHostRequest) returns (DeleteHostResponse) {} + // RPC service which returns the info for a specific host. rpc GetHost(GetHostRequest) returns (GetHostResponse) {} @@ -24,6 +28,9 @@ // and update Directory info such as the signaling ID and OS info. rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse) {} + // RPC service which allows adding a new host to the Directory. + rpc RegisterHost(RegisterHostRequest) returns (RegisterHostResponse) {} + // RPC service which provides an update token for a robot account. rpc UpdateRobotToken(UpdateRobotTokenRequest) returns (UpdateRobotTokenResponse) {}
diff --git a/remoting/proto/remoting/v1/host_info.proto b/remoting/proto/remoting/v1/host_info.proto index bd90a3b..54f9907 100644 --- a/remoting/proto/remoting/v1/host_info.proto +++ b/remoting/proto/remoting/v1/host_info.proto
@@ -4,6 +4,7 @@ syntax = "proto2"; +option java_multiple_files = true; option optimize_for = LITE_RUNTIME; package remoting.apis.v1;
diff --git a/services/device/device_service_test_base.cc b/services/device/device_service_test_base.cc index 70f751b..14ea6a61 100644 --- a/services/device/device_service_test_base.cc +++ b/services/device/device_service_test_base.cc
@@ -19,7 +19,6 @@ #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" #include "services/network/test/test_network_connection_tracker.h" #include "services/service_manager/public/cpp/binder_registry.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" namespace device {
diff --git a/services/service_manager/background_service_manager.cc b/services/service_manager/background_service_manager.cc index a8eb9cb..407fc55 100644 --- a/services/service_manager/background_service_manager.cc +++ b/services/service_manager/background_service_manager.cc
@@ -68,15 +68,14 @@ void BackgroundServiceManager::RegisterService( const Identity& identity, - mojom::ServicePtr service, - mojom::PIDReceiverRequest pid_receiver_request) { - mojom::ServicePtrInfo service_info = service.PassInterface(); + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver) { background_thread_.task_runner()->PostTask( FROM_HERE, base::BindOnce( &BackgroundServiceManager::RegisterServiceOnBackgroundThread, - base::Unretained(this), identity, base::Passed(&service_info), - base::Passed(&pid_receiver_request))); + base::Unretained(this), identity, std::move(service), + std::move(metadata_receiver))); } void BackgroundServiceManager::InitializeOnBackgroundThread( @@ -99,12 +98,10 @@ void BackgroundServiceManager::RegisterServiceOnBackgroundThread( const Identity& identity, - mojom::ServicePtrInfo service_info, - mojom::PIDReceiverRequest pid_receiver_request) { - mojom::ServicePtr service; - service.Bind(std::move(service_info)); + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver) { service_manager_->RegisterService(identity, std::move(service), - std::move(pid_receiver_request)); + std::move(metadata_receiver)); } } // namespace service_manager
diff --git a/services/service_manager/background_service_manager.h b/services/service_manager/background_service_manager.h index a5621253a..73827f9 100644 --- a/services/service_manager/background_service_manager.h +++ b/services/service_manager/background_service_manager.h
@@ -40,19 +40,20 @@ // Service Manager's embedder to register instances directly, without // requiring a Connector. // - // |pid_receiver_request| may be null, in which case the service manager - // assumes the new service is running in this process. - void RegisterService(const Identity& identity, - mojom::ServicePtr service, - mojom::PIDReceiverRequest pid_receiver_request); + // |metadata_receiver| may be null, in which case the Service Manager assumes + // the new service is running in the calling process. + void RegisterService( + const Identity& identity, + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver); private: void InitializeOnBackgroundThread(const std::vector<Manifest>& manifests); void ShutDownOnBackgroundThread(base::WaitableEvent* done_event); void RegisterServiceOnBackgroundThread( const Identity& identity, - mojom::ServicePtrInfo service_info, - mojom::PIDReceiverRequest pid_receiver_request); + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver); base::Thread background_thread_;
diff --git a/services/service_manager/public/cpp/connector.cc b/services/service_manager/public/cpp/connector.cc index 3b07cfcc..78b85aef3 100644 --- a/services/service_manager/public/cpp/connector.cc +++ b/services/service_manager/public/cpp/connector.cc
@@ -38,17 +38,17 @@ void Connector::RegisterServiceInstance( const Identity& identity, - mojom::ServicePtr service, - mojom::PIDReceiverRequest pid_receiver_request, + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver, RegisterServiceInstanceCallback callback) { if (!BindConnectorIfNecessary()) return; DCHECK(identity.IsValid()); - DCHECK(service.is_bound() && pid_receiver_request.is_pending()); - connector_->RegisterServiceInstance( - identity, service.PassInterface().PassHandle(), - std::move(pid_receiver_request), std::move(callback)); + DCHECK(service); + connector_->RegisterServiceInstance(identity, service.PassPipe(), + std::move(metadata_receiver), + std::move(callback)); } void Connector::QueryService(const std::string& service_name,
diff --git a/services/service_manager/public/cpp/connector.h b/services/service_manager/public/cpp/connector.h index 668ae478..734c3bb 100644 --- a/services/service_manager/public/cpp/connector.h +++ b/services/service_manager/public/cpp/connector.h
@@ -13,6 +13,7 @@ #include "base/optional.h" #include "base/sequence_checker.h" #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "services/service_manager/public/cpp/export.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/mojom/connector.mojom.h" @@ -107,10 +108,11 @@ // manifest. This is considered privileged behavior. using RegisterServiceInstanceCallback = base::OnceCallback<void(mojom::ConnectResult result)>; - void RegisterServiceInstance(const Identity& identity, - mojom::ServicePtr service, - mojom::PIDReceiverRequest pid_receiver_request, - RegisterServiceInstanceCallback callback = {}); + void RegisterServiceInstance( + const Identity& identity, + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver, + RegisterServiceInstanceCallback callback = {}); // Determines if the service for |service_name| is known, and returns // information about it from the catalog.
diff --git a/services/service_manager/public/cpp/manifest_unittest.cc b/services/service_manager/public/cpp/manifest_unittest.cc index 4c2b523..9c7a0da 100644 --- a/services/service_manager/public/cpp/manifest_unittest.cc +++ b/services/service_manager/public/cpp/manifest_unittest.cc
@@ -51,9 +51,9 @@ .CanConnectToInstancesInAnyGroup(true) .CanRegisterOtherServiceInstances(false) .Build()) - .ExposeCapability( - "capability_1", - Manifest::InterfaceList<mojom::Connector, mojom::PIDReceiver>()) + .ExposeCapability("capability_1", + Manifest::InterfaceList<mojom::Connector, + mojom::ProcessMetadata>()) .ExposeCapability("capability_2", Manifest::InterfaceList<mojom::Connector>()) .RequireCapability("service_42", "computation") @@ -87,8 +87,9 @@ manifest.options.instance_sharing_policy); EXPECT_EQ(2u, manifest.exposed_capabilities.size()); - EXPECT_THAT(manifest.exposed_capabilities["capability_1"], - ElementsAre(mojom::Connector::Name_, mojom::PIDReceiver::Name_)); + EXPECT_THAT( + manifest.exposed_capabilities["capability_1"], + ElementsAre(mojom::Connector::Name_, mojom::ProcessMetadata::Name_)); EXPECT_THAT(manifest.exposed_capabilities["capability_2"], ElementsAre(mojom::Connector::Name_));
diff --git a/services/service_manager/public/cpp/service_binding.cc b/services/service_manager/public/cpp/service_binding.cc index 65bb7de1..6b364ac 100644 --- a/services/service_manager/public/cpp/service_binding.cc +++ b/services/service_manager/public/cpp/service_binding.cc
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/no_destructor.h" #include "base/synchronization/lock.h" +#include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/service.h" #include "services/tracing/public/cpp/traced_process.h" #include "services/tracing/public/mojom/traced_process.mojom.h" @@ -168,11 +169,7 @@ return; } - if (interface_name == mojom::ServiceFactory::Name_) { - factory_bindings_.AddBinding( - this, mojom::ServiceFactoryRequest(std::move(interface_pipe))); - return; - } else if (interface_name == tracing::mojom::TracedProcess::Name_) { + if (interface_name == tracing::mojom::TracedProcess::Name_) { tracing::TracedProcess::OnTracedProcessRequest( tracing::mojom::TracedProcessRequest(std::move(interface_pipe))); return; @@ -181,20 +178,22 @@ service_->OnConnect(source_info, interface_name, std::move(interface_pipe)); } -void ServiceBinding::CreateService(mojom::ServiceRequest request, - const std::string& service_name, - mojom::PIDReceiverPtr pid_receiver) { - auto receiver = - mojo::PendingReceiver<mojom::Service>(request.PassMessagePipe()); - auto callback = base::BindOnce( - [](mojom::PIDReceiverPtr pid_receiver, - base::Optional<base::ProcessId> pid) { - if (pid) - pid_receiver->SetPID(*pid); - }, - std::move(pid_receiver)); - service_->CreatePackagedServiceInstance(service_name, std::move(receiver), - std::move(callback)); +void ServiceBinding::CreatePackagedServiceInstance( + const Identity& identity, + mojo::PendingReceiver<mojom::Service> receiver, + mojo::PendingRemote<mojom::ProcessMetadata> metadata) { + service_->CreatePackagedServiceInstance( + identity.name(), std::move(receiver), + base::BindOnce( + [](mojo::PendingRemote<mojom::ProcessMetadata> pending_metadata, + base::Optional<base::ProcessId> pid) { + if (pid) { + mojo::Remote<mojom::ProcessMetadata> metadata( + std::move(pending_metadata)); + metadata->SetPID(*pid); + } + }, + std::move(metadata))); } } // namespace service_manager
diff --git a/services/service_manager/public/cpp/service_binding.h b/services/service_manager/public/cpp/service_binding.h index 77e7869..102b8d3 100644 --- a/services/service_manager/public/cpp/service_binding.h +++ b/services/service_manager/public/cpp/service_binding.h
@@ -14,11 +14,11 @@ #include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding_set.h" #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/public/mojom/service_control.mojom.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" namespace service_manager { @@ -44,8 +44,7 @@ // can reasonably be made for system-wide shutdown situations where even the // Service Manager itself will be imminently torn down. class COMPONENT_EXPORT(SERVICE_MANAGER_CPP) ServiceBinding - : public mojom::Service, - public mojom::ServiceFactory { + : public mojom::Service { public: // Creates a new ServiceBinding bound to |service|. The service will not // receive any Service interface calls until |Bind()| is called, but its @@ -166,11 +165,10 @@ const std::string& interface_name, mojo::ScopedMessagePipeHandle interface_pipe, OnBindInterfaceCallback callback) override; - - // mojom::ServiceFactory: - void CreateService(mojom::ServiceRequest request, - const std::string& service_name, - mojom::PIDReceiverPtr pid_Receiver) override; + void CreatePackagedServiceInstance( + const Identity& identity, + mojo::PendingReceiver<mojom::Service> receiver, + mojo::PendingRemote<mojom::ProcessMetadata> metadata) override; // The Service instance to which all incoming events from the Service Manager // should be directed. Typically this is the object which owns this @@ -187,11 +185,6 @@ Identity identity_; std::unique_ptr<Connector> connector_; - // TODO(https://crbug.com/952860): Remove this. Temporary until an API is - // added to the mojom::Service interface for creating packaged service - // instances. - mojo::BindingSet<mojom::ServiceFactory> factory_bindings_; - // This instance's control interface to the service manager. Note that this // is unbound and therefore invalid until OnStart() is called. mojom::ServiceControlAssociatedPtr service_control_;
diff --git a/services/service_manager/public/cpp/test/test_connector_factory.cc b/services/service_manager/public/cpp/test/test_connector_factory.cc index 6dfa2981..59f8448e 100644 --- a/services/service_manager/public/cpp/test/test_connector_factory.cc +++ b/services/service_manager/public/cpp/test/test_connector_factory.cc
@@ -79,7 +79,7 @@ void RegisterServiceInstance( const Identity& identity, mojo::ScopedMessagePipeHandle service, - mojom::PIDReceiverRequest pid_receiver_request, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver, RegisterServiceInstanceCallback callback) override { NOTREACHED(); }
diff --git a/services/service_manager/public/cpp/test/test_service_manager.cc b/services/service_manager/public/cpp/test/test_service_manager.cc index ca72829..e938bfd 100644 --- a/services/service_manager/public/cpp/test/test_service_manager.cc +++ b/services/service_manager/public/cpp/test/test_service_manager.cc
@@ -4,6 +4,8 @@ #include "services/service_manager/public/cpp/test/test_service_manager.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "services/service_manager/background_service_manager.h" namespace service_manager { @@ -25,11 +27,11 @@ mojom::ServiceRequest TestServiceManager::RegisterInstance( const Identity& identity) { - mojom::ServicePtr service; - mojom::ServiceRequest request = mojo::MakeRequest(&service); + mojo::PendingRemote<mojom::Service> service; + auto receiver = service.InitWithNewPipeAndPassReceiver(); background_service_manager_->RegisterService(identity, std::move(service), - nullptr); - return request; + mojo::NullReceiver()); + return receiver; } } // namespace service_manager
diff --git a/services/service_manager/public/mojom/BUILD.gn b/services/service_manager/public/mojom/BUILD.gn index 2c51db2..cf653180 100644 --- a/services/service_manager/public/mojom/BUILD.gn +++ b/services/service_manager/public/mojom/BUILD.gn
@@ -14,7 +14,6 @@ "interface_provider_spec.mojom", "service.mojom", "service_control.mojom", - "service_factory.mojom", "service_filter.mojom", "service_manager.mojom", ]
diff --git a/services/service_manager/public/mojom/connector.mojom b/services/service_manager/public/mojom/connector.mojom index a90f2dd..3918315 100644 --- a/services/service_manager/public/mojom/connector.mojom +++ b/services/service_manager/public/mojom/connector.mojom
@@ -4,6 +4,7 @@ module service_manager.mojom; +import "mojo/public/mojom/base/process_id.mojom"; import "mojo/public/mojom/base/token.mojom"; import "services/service_manager/public/mojom/constants.mojom"; import "services/service_manager/public/mojom/interface_provider.mojom"; @@ -80,11 +81,13 @@ string sandbox_type; }; -// Implemented by an object in the service manager associated with a specific -// instance. Tells the service manager the PID for a process launched by the -// client. -interface PIDReceiver { - SetPID(uint32 pid); +// Implemented by an object in the Service Manager associated with a specific +// instance. Used by privileged clients to inform the Service Manager about +// metadata concerning a specific service process controlled by the client. See +// |Connector.RegisterServiceInstance()| and +// |Service.CreatePackagedServiceInstance()|. +interface ProcessMetadata { + SetPID(mojo_base.mojom.ProcessId pid); }; // An interface that allows the holder to start other services & bind to @@ -159,8 +162,8 @@ // // |service| is a |Service| interface pipe (i.e. a ServicePtr in C++). // - // |pid_receiver_request| is the receiving end of a PIDReceiver pipe. The - // caller is expected to call |SetPid()| on the other end of this pipe in + // |metadata_receiver| is the receiving end of a ProcessMetadata pipe. The + // caller is expected to call |SetPID()| on the other end of this pipe in // order to inform the Service Manager about which process is actually hosting // the service instance. // @@ -170,8 +173,8 @@ // message pipe. RegisterServiceInstance(Identity identity, handle<message_pipe> service, - PIDReceiver& pid_receiver_request) => - (ConnectResult result); + pending_receiver<ProcessMetadata>? metadata_receiver) + => (ConnectResult result); // Binds another Connector pipe to this same implementation. This effectively // allows the client to "clone" its Connector arbitrarily many times, for
diff --git a/services/service_manager/public/mojom/service.mojom b/services/service_manager/public/mojom/service.mojom index 77f3ba1..403e4dc 100644 --- a/services/service_manager/public/mojom/service.mojom +++ b/services/service_manager/public/mojom/service.mojom
@@ -4,6 +4,7 @@ module service_manager.mojom; +import "mojo/public/mojom/base/process_id.mojom"; import "services/service_manager/public/mojom/connector.mojom"; import "services/service_manager/public/mojom/interface_provider.mojom"; import "services/service_manager/public/mojom/interface_provider_spec.mojom"; @@ -72,4 +73,16 @@ OnBindInterface(BindSourceInfo source, string interface_name, handle<message_pipe> interface_pipe) => (); + + // Requests that the service initialize a new instance of the service + // identified by |identity|. The identified service will always be a service + // packaged by the service receiving this request, according to its manifest. + // + // |receiver| should be bound to a Service implementation for the new service + // instance. |metadata| should be used to submit information (like PID) about + // the process running the new service instance if different from the + // packaging service's own process. + CreatePackagedServiceInstance(Identity identity, + pending_receiver<Service> receiver, + pending_remote<ProcessMetadata> metadata); };
diff --git a/services/service_manager/public/mojom/service_factory.mojom b/services/service_manager/public/mojom/service_factory.mojom deleted file mode 100644 index a62e1ae..0000000 --- a/services/service_manager/public/mojom/service_factory.mojom +++ /dev/null
@@ -1,20 +0,0 @@ -// Copyright 2016 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. - -module service_manager.mojom; - -import "services/service_manager/public/mojom/connector.mojom"; -import "services/service_manager/public/mojom/service.mojom"; - -// Implemented by a package containing multiple services identified by -// unique names. -interface ServiceFactory { - // Sent by the Service Manager to delegate the creation of a new instance of - // service |name|. |service| is the Service pipe to which the new instance - // should bind. - // - // The ServiceFactory implementation should use |pid_receiver| to communicate - // the PID of the process in which the new service instance is running. - CreateService(Service& service, string name, PIDReceiver pid_receiver); -};
diff --git a/services/service_manager/sandbox/mac/gpu_v2.sb b/services/service_manager/sandbox/mac/gpu_v2.sb index af09bab8..c0bf7e9 100644 --- a/services/service_manager/sandbox/mac/gpu_v2.sb +++ b/services/service_manager/sandbox/mac/gpu_v2.sb
@@ -17,6 +17,9 @@ (global-name "com.apple.gpumemd.source") (global-name "com.apple.lsd.mapdb") (global-name "com.apple.lsd.modifydb") + (global-name "com.apple.powerlog.plxpclogger.xpc") + (global-name "com.apple.PowerManagement.control") + (global-name "com.apple.SecurityServer") (global-name "com.apple.system.notification_center") (global-name "com.apple.tsm.uiserver") (global-name "com.apple.windowserver.active") @@ -85,7 +88,3 @@ (subpath "/Library/Video/Plug-Ins") (subpath "/System/Library/Video/Plug-Ins") ) - -; A temporary test to diagnose a hang. -(if (string=? (param bundle-id) "com.google.Chrome.canary") - (allow mach-lookup))
diff --git a/services/service_manager/service_instance.cc b/services/service_manager/service_instance.cc index dcb5078..48af8bb 100644 --- a/services/service_manager/service_instance.cc +++ b/services/service_manager/service_instance.cc
@@ -205,21 +205,29 @@ Stop(); } +void ServiceInstance::SetPID(base::ProcessId pid) { +#if !defined(OS_IOS) + // iOS does not support base::Process and simply passes 0 here, so elide + // this check on that platform. + if (pid == base::kNullProcessId) { + // Destroys |this|. + service_manager_->DestroyInstance(this); + return; + } +#endif + pid_ = pid; + MaybeNotifyPidAvailable(); +} + void ServiceInstance::StartWithRemote( - mojo::PendingRemote<mojom::Service> remote, - mojo::PendingReceiver<mojom::PIDReceiver> pid_receiver) { + mojo::PendingRemote<mojom::Service> remote) { DCHECK(!service_remote_); - - if (pid_receiver) - pid_receiver_receiver_.Bind(std::move(pid_receiver)); - service_remote_.Bind(std::move(remote)); service_remote_.set_disconnect_handler(base::BindOnce( &ServiceInstance::OnServiceDisconnected, base::Unretained(this))); service_remote_->OnStart(identity_, base::BindOnce(&ServiceInstance::OnStartCompleted, base::Unretained(this))); - service_manager_->NotifyServiceCreated(*this); } @@ -237,15 +245,19 @@ if (!process_launcher_) return false; // TODO(tsepez): use actual sandbox type. https://crbug.com/788778 - mojom::ServicePtr service = - process_launcher_->Start(identity_, SANDBOX_TYPE_NO_SANDBOX, - base::BindOnce(&ServiceInstance::set_pid, - weak_ptr_factory_.GetWeakPtr())); - StartWithRemote(service.PassInterface(), mojo::NullReceiver()); + mojom::ServicePtr service = process_launcher_->Start( + identity_, SANDBOX_TYPE_NO_SANDBOX, + base::BindOnce(&ServiceInstance::SetPID, weak_ptr_factory_.GetWeakPtr())); + StartWithRemote(service.PassInterface()); return true; #endif } +void ServiceInstance::BindProcessMetadataReceiver( + mojo::PendingReceiver<mojom::ProcessMetadata> receiver) { + process_metadata_receiver_.Bind(std::move(receiver)); +} + bool ServiceInstance::MaybeAcceptConnectionRequest( const ServiceInstance& source_instance, const std::string& interface_name, @@ -284,6 +296,17 @@ return true; } +bool ServiceInstance::CreatePackagedServiceInstance( + const Identity& packaged_instance_identity, + mojo::PendingReceiver<mojom::Service> receiver, + mojo::PendingRemote<mojom::ProcessMetadata> metadata) { + if (!service_remote_) + return false; + service_remote_->CreatePackagedServiceInstance( + packaged_instance_identity, std::move(receiver), std::move(metadata)); + return true; +} + void ServiceInstance::Stop() { DCHECK(!stopped_); @@ -291,7 +314,7 @@ // observe disconnection of its corresponding Service receiver and react by // self-terminating ASAP. service_remote_.reset(); - pid_receiver_receiver_.reset(); + process_metadata_receiver_.reset(); connector_receivers_.Clear(); service_manager_receivers_.Clear(); MarkUnreachable(); @@ -487,7 +510,7 @@ void ServiceInstance::RegisterServiceInstance( const Identity& identity, mojo::ScopedMessagePipeHandle service_remote_handle, - mojom::PIDReceiverRequest pid_receiver_request, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver, RegisterServiceInstanceCallback callback) { auto target_filter = ServiceFilter::ForExactIdentity(identity); if (!CanConnectToOtherInstance(target_filter, @@ -514,9 +537,8 @@ return; } - mojom::ServicePtr service(std::move(service_remote)); - if (!service_manager_->RegisterService(identity, std::move(service), - std::move(pid_receiver_request))) { + if (!service_manager_->RegisterService(identity, std::move(service_remote), + std::move(metadata_receiver))) { std::move(callback).Run(mojom::ConnectResult::ACCESS_DENIED); } @@ -537,20 +559,6 @@ target.PassInterface(), std::move(source_request))); } -void ServiceInstance::SetPID(uint32_t pid) { -#if !defined(OS_IOS) - // iOS does not support base::Process and simply passes 0 here, so elide - // this check on that platform. - if (pid == base::kNullProcessId) { - // Destroys |this|. - service_manager_->DestroyInstance(this); - return; - } -#endif - pid_ = pid; - MaybeNotifyPidAvailable(); -} - void ServiceInstance::RequestQuit() { // Ignore quit requests when there are in-flight connection requests that the // instance hasn't acknowledged yet.
diff --git a/services/service_manager/service_instance.h b/services/service_manager/service_instance.h index 039753e6..2e7f0d7 100644 --- a/services/service_manager/service_instance.h +++ b/services/service_manager/service_instance.h
@@ -20,6 +20,7 @@ #include "base/process/process_handle.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/associated_receiver.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/remote.h" @@ -42,7 +43,7 @@ // corresponding ServiceInstance object in the Service Manager, dedicated to // that instance. class ServiceInstance : public mojom::Connector, - public mojom::PIDReceiver, + public mojom::ProcessMetadata, public mojom::ServiceControl, public mojom::ServiceManager { public: @@ -55,24 +56,21 @@ const Identity& identity() const { return identity_; } const Manifest& manifest() const { return manifest_; } - // Overrides the Identity set at construction time. - void set_identity(const Identity& identity) { - DCHECK(identity.IsValid()); - identity_ = identity; - } - - // Sets the PID explicitly for this instance rather than waiting for a PID - // from a bound PIDReceiver endpoint. - void set_pid(base::ProcessId pid) { pid_ = pid; } + // mojom::ProcessMetadata: + void SetPID(base::ProcessId pid) override; // Starts this instance using an already-established Service pipe. - void StartWithRemote(mojo::PendingRemote<mojom::Service> remote, - mojo::PendingReceiver<mojom::PIDReceiver> pid_receiver); + void StartWithRemote(mojo::PendingRemote<mojom::Service> remote); // Starts this instance from a path to a service executable on disk. bool StartWithExecutablePath(const base::FilePath& path, SandboxType sandbox_type); + // Binds an endpoint for this instance to receive metadata about its + // corresponding service process, if any. + void BindProcessMetadataReceiver( + mojo::PendingReceiver<mojom::ProcessMetadata> receiver); + // Forwards a BindInterface request from |source_instance| to this instance, // iff it should be allowed based on manifest constraints. Returns |true| if // the request was allowed, or |false| otherwise. @@ -82,6 +80,14 @@ mojo::ScopedMessagePipeHandle receiving_pipe, mojom::BindInterfacePriority priority); + // Asks this service instance to bind a new concrete service implementation + // for |packaged_instance_identity|. The packaged instance will always + // correspond to a service packaged in this service's manifest. + bool CreatePackagedServiceInstance( + const Identity& packaged_instance_identity, + mojo::PendingReceiver<mojom::Service> receiver, + mojo::PendingRemote<mojom::ProcessMetadata> metadata); + // Stops receiving any new messages from the service instance and renders the // instance permanently unreachable. Note that this does NOT make any attempt // to join the service instance's process if any exists. @@ -133,7 +139,7 @@ void RegisterServiceInstance( const Identity& identity, mojo::ScopedMessagePipeHandle service_remote_handle, - mojom::PIDReceiverRequest pid_receiver_request, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver, RegisterServiceInstanceCallback callback) override; void Clone(mojom::ConnectorRequest request) override; void FilterInterfaces(const std::string& filter_name, @@ -141,9 +147,6 @@ mojom::InterfaceProviderRequest source_request, mojom::InterfaceProviderPtr target) override; - // mojom::PIDReceiver: - void SetPID(uint32_t pid) override; - // mojom::ServiceControl: void RequestQuit() override; @@ -155,7 +158,7 @@ // A unique identity for this instance. Distinct from PID, as a single process // may host multiple service instances. Globally unique across time and space. - Identity identity_; + const Identity identity_; // The static service manifest provided for this service at system // initialization time. @@ -175,7 +178,7 @@ // Receivers for the various interfaces implemented by this object. These all // receive calls directly from the service instance itself or some trusted // representative thereof. - mojo::Receiver<mojom::PIDReceiver> pid_receiver_receiver_{this}; + mojo::Receiver<mojom::ProcessMetadata> process_metadata_receiver_{this}; mojo::ReceiverSet<mojom::Connector> connector_receivers_; mojo::ReceiverSet<mojom::ServiceManager> service_manager_receivers_; mojo::AssociatedReceiver<mojom::ServiceControl> control_receiver_{this};
diff --git a/services/service_manager/service_manager.cc b/services/service_manager/service_manager.cc index b6e3f929..09d6829 100644 --- a/services/service_manager/service_manager.cc +++ b/services/service_manager/service_manager.cc
@@ -79,17 +79,14 @@ .Build()) .ExposeCapability(kCapability_ServiceManager, Manifest::InterfaceList<mojom::ServiceManager>()) - .WithInterfacesBindableOnAnyService( - service_manager::Manifest::InterfaceList<mojom::ServiceFactory>()) .Build(); service_manager_instance_ = CreateServiceInstance( GetServiceManagerInstanceIdentity(), service_manager_manifest); - service_manager_instance_->set_pid(GetCurrentPid()); + service_manager_instance_->SetPID(GetCurrentPid()); mojo::PendingRemote<mojom::Service> remote; service_binding_.Bind(remote.InitWithNewPipeAndPassReceiver()); - service_manager_instance_->StartWithRemote(std::move(remote), - mojo::NullReceiver()); + service_manager_instance_->StartWithRemote(std::move(remote)); } ServiceManager::~ServiceManager() { @@ -121,18 +118,29 @@ TRACE_EVENT_INSTANT1("service_manager", "ServiceManager::Connect", TRACE_EVENT_SCOPE_THREAD, "original_name", partial_target_filter.service_name()); + if (partial_target_filter.service_name() == mojom::kServiceName) + return service_manager_instance_; - const Identity& source_identity = source_instance.identity(); - ServiceFilter target_filter = partial_target_filter; + const service_manager::Manifest* manifest = + catalog_.GetManifest(partial_target_filter.service_name()); + if (!manifest) { + LOG(ERROR) << "Failed to resolve service name: " + << partial_target_filter.service_name(); + return nullptr; + } - // If the target filter does not specify an instance group, we assume the - // source's own. - if (!target_filter.instance_group()) - target_filter.set_instance_group(source_identity.instance_group()); - - // If the target filter does not specify an instance ID, we assume zero. - if (!target_filter.instance_id()) + service_manager::ServiceFilter target_filter = partial_target_filter; + if (!target_filter.instance_group()) { + // Inherit the source instance's group if none was specified by the + // caller's provided filter. + target_filter.set_instance_group( + source_instance.identity().instance_group()); + } + if (!target_filter.instance_id()) { + // Assume the default (zero) instance ID if none was specified by the + // caller's provided filter. target_filter.set_instance_id(base::Token()); + } // Use an existing instance if possible. ServiceInstance* target_instance = @@ -140,86 +148,64 @@ if (target_instance) return target_instance; - const service_manager::Manifest* manifest = - catalog_.GetManifest(target_filter.service_name()); - if (!manifest) { - LOG(ERROR) << "Failed to resolve service name: " - << target_filter.service_name(); - return nullptr; - } - // If there was no existing instance but the caller is requesting a specific // globally unique ID for the target, ignore the request. That instance is // obviously no longer running, and globally unique IDs are never reused. if (target_filter.globally_unique_id()) return nullptr; - Identity new_instance_identity; - if (manifest->options.instance_sharing_policy == - Manifest::InstanceSharingPolicy::kSingleton) { - // For singleton instances, we generate a random group ID along with the - // random GUID. - new_instance_identity = - Identity(target_filter.service_name(), base::Token::CreateRandom(), - base::Token{}, base::Token::CreateRandom()); - } else if (manifest->options.instance_sharing_policy == - Manifest::InstanceSharingPolicy::kSharedAcrossGroups) { - // Services that use |kSharedAcrossGroups| sharing policy are allowed to - // match ServiceFilters targeting any instance group. They run with a - // random group ID generated here, and the group provided by |target_filter| - // is ignored. The instance ID from |target_filter| is still used. - new_instance_identity = - Identity(target_filter.service_name(), base::Token::CreateRandom(), - *target_filter.instance_id(), base::Token::CreateRandom()); - } else { - DCHECK_EQ(manifest->options.instance_sharing_policy, - Manifest::InstanceSharingPolicy::kNoSharing); - new_instance_identity = - Identity(target_filter.service_name(), *target_filter.instance_group(), - *target_filter.instance_id(), base::Token::CreateRandom()); - } - - DCHECK(!target_instance); - target_instance = CreateServiceInstance(new_instance_identity, *manifest); - const service_manager::Manifest* parent_manifest = catalog_.GetParentManifest(manifest->service_name); - if (parent_manifest) { - // This service is provided by another service via a ServiceFactory. - // - // We normally ignore the target instance group and generate a unique - // instance group identifier when starting shared instances, but when those - // instances need to be started by a service factory, it's conceivable that - // the factory itself may be part of the originally targeted instance group. - // In that case we use the originally targeted instance group to identify - // the factory service. - // - // TODO(https://crbug.com/904240): This is super weird and hard to - // rationalize. Maybe it's the wrong thing to do. - target_instance->set_identity( - Identity(new_instance_identity.name(), *target_filter.instance_group(), - new_instance_identity.instance_id(), - new_instance_identity.globally_unique_id())); + // New instances to be shared globally or across instance groups are assigned + // their own random instance group. Packaged service instances also retain + // the target filter group regardless of sharing policy. + const base::Token target_group = + manifest->options.instance_sharing_policy == + Manifest::InstanceSharingPolicy::kNoSharing || + parent_manifest + ? *target_filter.instance_group() + : base::Token::CreateRandom(); + + // New singleton instances are always forced to instance ID zero. + const base::Token target_instance_id = + manifest->options.instance_sharing_policy == + Manifest::InstanceSharingPolicy::kSingleton + ? base::Token() + : *target_filter.instance_id(); + + DCHECK(!target_instance); + target_instance = CreateServiceInstance( + Identity(target_filter.service_name(), target_group, target_instance_id, + target_filter.globally_unique_id().value_or( + base::Token::CreateRandom())), + *manifest); + + if (parent_manifest) { + // This service is provided by another service, as indicated by the + // providing service's manifest. Get an instance of that service first, and + // ask it to create an instance of this one. auto factory_filter = ServiceFilter::ByNameWithIdInGroup( parent_manifest->service_name, *target_filter.instance_id(), *target_filter.instance_group()); + ServiceInstance* factory_instance = FindOrCreateMatchingTargetInstance( + *service_manager_instance_, factory_filter); - mojom::PIDReceiverPtr pid_receiver; - auto pid_receiver_request = mojo::MakeRequest(&pid_receiver); - + mojo::PendingRemote<mojom::ProcessMetadata> metadata; + auto metadata_receiver = metadata.InitWithNewPipeAndPassReceiver(); mojo::PendingRemote<mojom::Service> remote; - auto* factory = GetServiceFactory(factory_filter); - if (!factory) { + bool created = + factory_instance && + factory_instance->CreatePackagedServiceInstance( + target_instance->identity(), + remote.InitWithNewPipeAndPassReceiver(), std::move(metadata)); + if (!created) { DestroyInstance(target_instance); return nullptr; } - factory->CreateService(remote.InitWithNewPipeAndPassReceiver(), - target_filter.service_name(), - std::move(pid_receiver)); - target_instance->StartWithRemote(std::move(remote), - std::move(pid_receiver_request)); + target_instance->BindProcessMetadataReceiver(std::move(metadata_receiver)); + target_instance->StartWithRemote(std::move(remote)); } else { base::FilePath service_exe_root; CHECK(base::PathService::Get(base::DIR_ASSETS, &service_exe_root)); @@ -253,8 +239,8 @@ bool ServiceManager::RegisterService( const Identity& identity, - mojom::ServicePtr service, - mojom::PIDReceiverRequest pid_receiver_request) { + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver) { if (!identity.IsValid()) return false; @@ -265,15 +251,12 @@ return false; } - if (!pid_receiver_request.is_pending()) { - mojo::Remote<mojom::PIDReceiver> pid_receiver; - pid_receiver_request = pid_receiver.BindNewPipeAndPassReceiver(); - pid_receiver->SetPID(GetCurrentPid()); - } - ServiceInstance* instance = CreateServiceInstance(identity, *manifest); - instance->StartWithRemote(service.PassInterface(), - std::move(pid_receiver_request)); + if (metadata_receiver) + instance->BindProcessMetadataReceiver(std::move(metadata_receiver)); + else + instance->SetPID(GetCurrentPid()); + instance->StartWithRemote(std::move(service)); return true; } @@ -364,37 +347,6 @@ listeners_.AddPtr(std::move(listener)); } -mojom::ServiceFactory* ServiceManager::GetServiceFactory( - const ServiceFilter& filter) { - auto it = service_factories_.find(filter); - if (it != service_factories_.end()) - return it->second.get(); - - mojom::ServiceFactoryPtr factory; - ServiceInstance* factory_instance = - FindOrCreateMatchingTargetInstance(*service_manager_instance_, filter); - if (!factory_instance) - return nullptr; - - factory_instance->MaybeAcceptConnectionRequest( - *service_manager_instance_, mojom::ServiceFactory::Name_, - mojo::MakeRequest(&factory).PassMessagePipe(), - mojom::BindInterfacePriority::kImportant); - - mojom::ServiceFactory* factory_interface = factory.get(); - factory.set_connection_error_handler(base::BindOnce( - &ServiceManager::OnServiceFactoryLost, base::Unretained(this), filter)); - service_factories_[filter] = std::move(factory); - return factory_interface; -} - -void ServiceManager::OnServiceFactoryLost(const ServiceFilter& which) { - // Remove the mapping. - auto it = service_factories_.find(which); - DCHECK(it != service_factories_.end()); - service_factories_.erase(it); -} - void ServiceManager::OnBindInterface( const BindSourceInfo& source_info, const std::string& interface_name,
diff --git a/services/service_manager/service_manager.h b/services/service_manager/service_manager.h index c63dcfc..f48d26d7 100644 --- a/services/service_manager/service_manager.h +++ b/services/service_manager/service_manager.h
@@ -5,7 +5,6 @@ #ifndef SERVICES_SERVICE_MANAGER_SERVICE_MANAGER_H_ #define SERVICES_SERVICE_MANAGER_SERVICE_MANAGER_H_ -#include <map> #include <memory> #include <set> #include <vector> @@ -16,6 +15,8 @@ #include "base/process/process.h" #include "base/token.h" #include "mojo/public/cpp/bindings/interface_ptr_set.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/pending_remote.h" #include "services/service_manager/catalog.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/manifest.h" @@ -24,7 +25,6 @@ #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/interface_provider.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" #include "services/service_manager/public/mojom/service_manager.mojom.h" #include "services/service_manager/service_instance_registry.h" #include "services/service_manager/service_process_launcher_factory.h" @@ -62,13 +62,14 @@ // Service Manager's embedder to register instances directly, without // requiring a Connector. // - // |pid_receiver_request| may be null, in which case the service manager - // assumes the new service is running in this process. + // |metadata_receiver| may be null, in which case the Service Manager assumes + // the new service is running in the calling process. // // Returns |true| if registration succeeded, or |false| otherwise. - bool RegisterService(const Identity& identity, - mojom::ServicePtr service, - mojom::PIDReceiverRequest pid_receiver_request); + bool RegisterService( + const Identity& identity, + mojo::PendingRemote<mojom::Service> service, + mojo::PendingReceiver<mojom::ProcessMetadata> metadata_receiver); // Determine information about |service_name| from its manifests. Returns // false if the identity does not have a catalog entry. @@ -77,8 +78,8 @@ std::string* sandbox_type); // Attempts to locate a ServiceInstance as a target for a connection request - // from |source_instance| by matching against |partial_target_filter|. If - // a suitable instance exists it is returned, otherwise the Service Manager + // from |source_instance| by matching against |partial_target_filter|. If a + // suitable instance exists it is returned, otherwise the Service Manager // attempts to create a new suitable instance. // // Returns null if a matching instance did not exist and could not be created, @@ -120,11 +121,6 @@ // Called from the instance implementing mojom::ServiceManager. void AddListener(mojom::ServiceManagerListenerPtr listener); - // Returns a running ServiceFactory for |filter|. If there is not one running, - // one is started. - mojom::ServiceFactory* GetServiceFactory(const ServiceFilter& filter); - void OnServiceFactoryLost(const ServiceFilter& which); - // Service: void OnBindInterface(const BindSourceInfo& source_info, const std::string& interface_name, @@ -147,7 +143,6 @@ // ServiceInstance still has an entry in |instances_|. ServiceInstance* service_manager_instance_; - std::map<ServiceFilter, mojom::ServiceFactoryPtr> service_factories_; mojo::InterfacePtrSet<mojom::ServiceManagerListener> listeners_; base::Callback<void(const Identity&)> instance_quit_callback_; std::unique_ptr<ServiceProcessLauncherFactory>
diff --git a/services/service_manager/service_process_launcher.h b/services/service_manager/service_process_launcher.h index 50b968dac..12ad886 100644 --- a/services/service_manager/service_process_launcher.h +++ b/services/service_manager/service_process_launcher.h
@@ -15,7 +15,7 @@ #include "base/memory/weak_ptr.h" #include "base/process/process.h" #include "base/sequenced_task_runner.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" +#include "services/service_manager/public/mojom/service.mojom.h" #include "services/service_manager/sandbox/sandbox_type.h" #include "services/service_manager/service_process_launcher_delegate.h"
diff --git a/services/service_manager/tests/background_service_manager_unittest.cc b/services/service_manager/tests/background_service_manager_unittest.cc index e651f6d2..60ad807 100644 --- a/services/service_manager/tests/background_service_manager_unittest.cc +++ b/services/service_manager/tests/background_service_manager_unittest.cc
@@ -13,6 +13,7 @@ #include "base/test/scoped_task_environment.h" #include "base/values.h" #include "build/build_config.h" +#include "mojo/public/cpp/bindings/receiver.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/manifest.h" @@ -82,7 +83,7 @@ background_service_manager.RegisterService( Identity(kTestName, kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(service), nullptr); + service.PassInterface(), mojo::NullReceiver() /* metadata_receiver */); mojom::TestServicePtr test_service; service_impl.connector()->BindInterface(ServiceFilter::ByName(kAppName),
diff --git a/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc b/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc index 6927e6c8..8bfbc5a6 100644 --- a/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc +++ b/services/service_manager/tests/service_manager/service_manager_listener_unittest.cc
@@ -11,6 +11,7 @@ #include "base/run_loop.h" #include "base/test/scoped_task_environment.h" #include "mojo/public/cpp/bindings/binding.h" +#include "mojo/public/cpp/bindings/remote.h" #include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/constants.h" #include "services/service_manager/public/cpp/service.h" @@ -125,15 +126,15 @@ mojom::ServiceRequest RegisterServiceInstance(const std::string& service_name, uint32_t fake_pid) { - mojom::ServicePtr proxy; - mojom::ServiceRequest request = mojo::MakeRequest(&proxy); - mojom::PIDReceiverPtr pid_receiver; + mojo::PendingRemote<mojom::Service> service; + auto receiver = service.InitWithNewPipeAndPassReceiver(); + mojo::Remote<mojom::ProcessMetadata> metadata; service_manager_.RegisterService( Identity(service_name, kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(proxy), mojo::MakeRequest(&pid_receiver)); - pid_receiver->SetPID(fake_pid); - return request; + std::move(service), metadata.BindNewPipeAndPassReceiver()); + metadata->SetPID(fake_pid); + return receiver; } void WaitForServiceStarted(Identity* out_identity, uint32_t* out_pid) {
diff --git a/services/service_manager/tests/service_manager/service_manager_unittest.cc b/services/service_manager/tests/service_manager/service_manager_unittest.cc index 5a0c78c..4aa1009 100644 --- a/services/service_manager/tests/service_manager/service_manager_unittest.cc +++ b/services/service_manager/tests/service_manager/service_manager_unittest.cc
@@ -24,6 +24,7 @@ #include "base/token.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/binding_set.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/platform/platform_channel.h" #include "mojo/public/cpp/platform/platform_handle.h" #include "mojo/public/cpp/system/invitation.h" @@ -267,16 +268,16 @@ service_manager::mojom::ServicePtr client = ServiceProcessLauncher::PassServiceRequestOnCommandLine( &invitation, &child_command_line); - service_manager::mojom::PIDReceiverPtr receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; connector()->RegisterServiceInstance( service_manager::Identity(kTestTargetName, kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(client), mojo::MakeRequest(&receiver)); + client.PassInterface(), metadata.BindNewPipeAndPassReceiver()); target_ = base::LaunchProcess(child_command_line, options); DCHECK(target_.IsValid()); channel.RemoteProcessLaunchAttempted(); - receiver->SetPID(target_.Pid()); + metadata->SetPID(target_.Pid()); mojo::OutgoingInvitation::Send(std::move(invitation), target_.Handle(), channel.TakeLocalEndpoint()); } @@ -535,11 +536,11 @@ // |can_create_other_service_instances| set to |true| in its manifest. mojom::ServicePtr test_service_proxy1; SimpleService test_service1(mojo::MakeRequest(&test_service_proxy1)); - mojom::PIDReceiverPtr pid_receiver1; + mojo::Remote<mojom::ProcessMetadata> metadata1; connector()->RegisterServiceInstance(kInstance1Id, - std::move(test_service_proxy1), - mojo::MakeRequest(&pid_receiver1)); - pid_receiver1->SetPID(42); + test_service_proxy1.PassInterface(), + metadata1.BindNewPipeAndPassReceiver()); + metadata1->SetPID(42); WaitForInstanceToStart(kInstance1Id); EXPECT_EQ(1u, instances().size()); EXPECT_TRUE(ContainsInstanceWithName(kTestTargetName)); @@ -548,11 +549,11 @@ // to attempt introduction of yet another instance. This should fail. mojom::ServicePtr test_service_proxy2; SimpleService test_service2(mojo::MakeRequest(&test_service_proxy2)); - mojom::PIDReceiverPtr pid_receiver2; + mojo::Remote<mojom::ProcessMetadata> metadata2; test_service1.connector()->RegisterServiceInstance( - kInstance2Id, std::move(test_service_proxy2), - mojo::MakeRequest(&pid_receiver2)); - pid_receiver2->SetPID(43); + kInstance2Id, test_service_proxy2.PassInterface(), + metadata2.BindNewPipeAndPassReceiver()); + metadata2->SetPID(43); // The new service should be disconnected immediately. test_service2.WaitForDisconnect();
diff --git a/services/service_manager/tests/util.cc b/services/service_manager/tests/util.cc index de1443b..3168edd3 100644 --- a/services/service_manager/tests/util.cc +++ b/services/service_manager/tests/util.cc
@@ -17,6 +17,8 @@ #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "build/build_config.h" +#include "mojo/public/cpp/bindings/receiver.h" +#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/platform/features.h" #include "mojo/public/cpp/platform/platform_channel.h" #include "mojo/public/cpp/system/invitation.h" @@ -24,7 +26,6 @@ #include "services/service_manager/public/cpp/service_executable/switches.h" #include "services/service_manager/public/mojom/connector.mojom.h" #include "services/service_manager/public/mojom/service.mojom.h" -#include "services/service_manager/public/mojom/service_factory.mojom.h" namespace service_manager { namespace test { @@ -70,15 +71,14 @@ child_command_line.AppendSwitchASCII(switches::kServiceRequestAttachmentName, pipe_name); - service_manager::mojom::ServicePtr client; - client.Bind(mojo::InterfacePtrInfo<service_manager::mojom::Service>( - std::move(pipe), 0u)); - service_manager::mojom::PIDReceiverPtr receiver; + mojo::Remote<service_manager::mojom::ProcessMetadata> metadata; mojom::ConnectResult result; base::RunLoop loop(base::RunLoop::Type::kNestableTasksAllowed); connector->RegisterServiceInstance( - target, std::move(client), MakeRequest(&receiver), + target, + mojo::PendingRemote<service_manager::mojom::Service>(std::move(pipe), 0), + metadata.BindNewPipeAndPassReceiver(), base::BindOnce(&GrabConnectResult, &loop, &result)); loop.Run(); @@ -99,7 +99,7 @@ *process = base::LaunchProcess(child_command_line, options); DCHECK(process->IsValid()); channel.RemoteProcessLaunchAttempted(); - receiver->SetPID(process->Pid()); + metadata->SetPID(process->Pid()); mojo::OutgoingInvitation::Send(std::move(invitation), process->Handle(), channel.TakeLocalEndpoint()); return result;
diff --git a/services/tracing/perfetto/perfetto_service.cc b/services/tracing/perfetto/perfetto_service.cc index f919dc5..980aec9 100644 --- a/services/tracing/perfetto/perfetto_service.cc +++ b/services/tracing/perfetto/perfetto_service.cc
@@ -63,15 +63,6 @@ // from threads without a MessageLoop doesn't get lost. service_->SetSMBScrapingEnabled(true); DCHECK(service_); - - // Trace events emitted from the taskqueue and other places can cause the - // Perfetto task runner to queue tasks instead of directly posting them to the - // taskrunner; we start a timer to periodically flush these (rare) tasks. - // This is needed in addition to the timer we start in - // TraceEventDataSource::BeginTracing as the SharedMemoryArbiter will post - // tasks to the taskrunner used by the Perfetto service rather than the - // taskrunner used by the ProducerClient, when running in in-process mode. - perfetto_task_runner_.StartDeferredTasksDrainTimer(); } PerfettoService::~PerfettoService() = default;
diff --git a/services/tracing/public/cpp/perfetto/task_runner.cc b/services/tracing/public/cpp/perfetto/task_runner.cc index 9f6faac..ea9b7cc 100644 --- a/services/tracing/public/cpp/perfetto/task_runner.cc +++ b/services/tracing/public/cpp/perfetto/task_runner.cc
@@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/no_destructor.h" #include "base/task/common/checked_lock_impl.h" +#include "base/task/common/scoped_defer_task_posting.h" #include "base/task/post_task.h" #include "base/task/thread_pool/thread_pool.h" #include "base/threading/sequenced_task_runner_handle.h" @@ -19,42 +20,6 @@ namespace tracing { -namespace { - -base::ThreadLocalBoolean* PostTaskIsBlockedForThread() { - static base::NoDestructor<base::ThreadLocalBoolean> post_task_is_blocked; - return post_task_is_blocked.get(); -} - -} // namespace - -ScopedPerfettoPostTaskBlocker::ScopedPerfettoPostTaskBlocker(bool enable) - : enabled_(enable) { - if (enabled_) { - PerfettoTaskRunner::BlockPostTaskForThread(); - } else { - base::internal::CheckedLockImpl::AssertNoLockHeldOnCurrentThread(); - } -} - -ScopedPerfettoPostTaskBlocker::~ScopedPerfettoPostTaskBlocker() { - if (enabled_) { - PerfettoTaskRunner::UnblockPostTaskForThread(); - } -} - -// static -void PerfettoTaskRunner::BlockPostTaskForThread() { - DCHECK(!PostTaskIsBlockedForThread()->Get()); - PostTaskIsBlockedForThread()->Set(true); -} - -// static -void PerfettoTaskRunner::UnblockPostTaskForThread() { - DCHECK(PostTaskIsBlockedForThread()->Get()); - PostTaskIsBlockedForThread()->Set(false); -} - PerfettoTaskRunner::PerfettoTaskRunner( scoped_refptr<base::SequencedTaskRunner> task_runner) : task_runner_(std::move(task_runner)) {} @@ -62,45 +27,25 @@ PerfettoTaskRunner::~PerfettoTaskRunner() = default; void PerfettoTaskRunner::PostTask(std::function<void()> task) { - // If we're blocked from PostTasking, we defer the task until - // later. If we're not blocked, but there's tasks that have previously been - // deferred, we PostTask them now; this is important to preserve ordering, - // in case the previously deferred tasks have been posted from the same - // sequence as we're now posting a new task from. - { - base::AutoLock lock(lock_); - if (!base::ThreadPool::GetInstance() || - PostTaskIsBlockedForThread()->Get()) { - deferred_tasks_.emplace_back(std::move(task)); - return; - } - - while (!deferred_tasks_.empty()) { - GetOrCreateTaskRunner()->PostTask( - FROM_HERE, base::BindOnce([](std::function<void()> task) { task(); }, - deferred_tasks_.front())); - deferred_tasks_.pop_front(); - } - } - - GetOrCreateTaskRunner()->PostTask( - FROM_HERE, base::BindOnce( - [](std::function<void()> task) { - // We block any trace events that happens while any - // Perfetto task is running, or we'll get deadlocks in - // situations where the StartupTraceWriterRegistry tries - // to bind a writer which in turn causes a PostTask where - // a trace event can be emitted, which then deadlocks as - // it needs a new chunk from the same StartupTraceWriter - // which we're trying to bind and are keeping the lock - // to. - // TODO(oysteine): Try to see if we can be more selective - // about this. - AutoThreadLocalBoolean thread_is_in_trace_event( - TraceEventDataSource::GetThreadIsInTraceEventTLS()); - task(); - }, - task)); + base::ScopedDeferTaskPosting::PostOrDefer( + GetOrCreateTaskRunner(), FROM_HERE, + base::BindOnce( + [](std::function<void()> task) { + // We block any trace events that happens while any + // Perfetto task is running, or we'll get deadlocks in + // situations where the StartupTraceWriterRegistry tries + // to bind a writer which in turn causes a PostTask where + // a trace event can be emitted, which then deadlocks as + // it needs a new chunk from the same StartupTraceWriter + // which we're trying to bind and are keeping the lock + // to. + // TODO(oysteine): Try to see if we can be more selective + // about this. + AutoThreadLocalBoolean thread_is_in_trace_event( + TraceEventDataSource::GetThreadIsInTraceEventTLS()); + task(); + }, + task)); } void PerfettoTaskRunner::PostDelayedTask(std::function<void()> task, @@ -113,7 +58,7 @@ // There's currently nothing which uses PostDelayedTask on the ProducerClient // side, where PostTask sometimes requires blocking. If this DCHECK ever // triggers, support for deferring delayed tasks need to be added. - DCHECK(!PostTaskIsBlockedForThread()->Get()); + DCHECK(!base::ScopedDeferTaskPosting::IsPresent()); GetOrCreateTaskRunner()->PostDelayedTask( FROM_HERE, base::BindOnce([](std::function<void()> task) { task(); }, task), @@ -138,36 +83,6 @@ task_runner_ = std::move(task_runner); } -void PerfettoTaskRunner::StartDeferredTasksDrainTimer() { - DCHECK(!PostTaskIsBlockedForThread()->Get()); - // The deferred tasks will generally be posted by another task being - // posted when PostTask isn't blocked; this timer is a fallback for the - // rare case where we're *only* getting trace events when PostTask is - // blocked, and hence doesn't need to run very often (just often enough so - // the SMB doesn't get filled up with uncommitted chunks). - deferred_tasks_timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(1), this, - &PerfettoTaskRunner::OnDeferredTasksDrainTimer); -} - -void PerfettoTaskRunner::StopDeferredTasksDrainTimer() { - DCHECK(!PostTaskIsBlockedForThread()->Get()); - - deferred_tasks_timer_.Stop(); - OnDeferredTasksDrainTimer(); -} - -void PerfettoTaskRunner::OnDeferredTasksDrainTimer() { - DCHECK(!PostTaskIsBlockedForThread()->Get()); - - base::AutoLock lock(lock_); - while (!deferred_tasks_.empty()) { - task_runner_->PostTask( - FROM_HERE, base::BindOnce([](std::function<void()> task) { task(); }, - deferred_tasks_.front())); - deferred_tasks_.pop_front(); - } -} - void PerfettoTaskRunner::SetTaskRunner( scoped_refptr<base::SequencedTaskRunner> task_runner) { DCHECK(!task_runner_);
diff --git a/services/tracing/public/cpp/perfetto/task_runner.h b/services/tracing/public/cpp/perfetto/task_runner.h index 76e91ad..020bfda52 100644 --- a/services/tracing/public/cpp/perfetto/task_runner.h +++ b/services/tracing/public/cpp/perfetto/task_runner.h
@@ -17,15 +17,6 @@ namespace tracing { -class COMPONENT_EXPORT(TRACING_CPP) ScopedPerfettoPostTaskBlocker { - public: - explicit ScopedPerfettoPostTaskBlocker(bool enable); - ~ScopedPerfettoPostTaskBlocker(); - - private: - const bool enabled_; -}; - // This wraps a base::TaskRunner implementation to be able // to provide it to Perfetto. class COMPONENT_EXPORT(TRACING_CPP) PerfettoTaskRunner @@ -58,25 +49,11 @@ void ResetTaskRunnerForTesting( scoped_refptr<base::SequencedTaskRunner> task_runner); - // Sometimes we have to temporarily defer any posted tasks, like - // when trace events are added when the taskqueue is locked. For this purpose - // we keep a timer running when tracing is enabled, which will periodically - // drain these posted tasks. - void StartDeferredTasksDrainTimer(); - void StopDeferredTasksDrainTimer(); - - static void BlockPostTaskForThread(); - static void UnblockPostTaskForThread(); - private: void OnDeferredTasksDrainTimer(); scoped_refptr<base::SequencedTaskRunner> task_runner_; - base::Lock lock_; // Protects deferred_tasks_; - std::list<std::function<void()>> deferred_tasks_; - base::RepeatingTimer deferred_tasks_timer_; - DISALLOW_COPY_AND_ASSIGN(PerfettoTaskRunner); };
diff --git a/services/tracing/public/cpp/perfetto/task_runner_unittest.cc b/services/tracing/public/cpp/perfetto/task_runner_unittest.cc index 39e8318f..d0af6fe 100644 --- a/services/tracing/public/cpp/perfetto/task_runner_unittest.cc +++ b/services/tracing/public/cpp/perfetto/task_runner_unittest.cc
@@ -72,8 +72,6 @@ void BeforeJoin() override {} void Run() override { - task_runner_->BlockPostTaskForThread(); - for (int i = 0; i < n_; ++i) { auto weak_ptr = weak_ptr_; auto sequence_number = sequence_number_; @@ -81,8 +79,6 @@ weak_ptr->TestTask(i, sequence_number); }); } - - task_runner_->UnblockPostTaskForThread(); } private: @@ -132,71 +128,6 @@ wait_for_tasks.Run(); } -TEST_F(PerfettoTaskRunnerTest, SequentialDeferredTasks) { - base::RunLoop wait_for_tasks; - SetTaskExpectations(wait_for_tasks.QuitClosure(), 3); - - auto weak_ptr = destination()->GetWeakPtr(); - { - ScopedPerfettoPostTaskBlocker block(true); - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(1); }); - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(2); }); - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(0u, destination()->tasks_run()); - } - // Posting an unblocked task should post the earlier deferred ones, - // in the right order. - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(3); }); - - wait_for_tasks.Run(); -} - -TEST_F(PerfettoTaskRunnerTest, SequentialDeferredTasksByTimer) { - base::RunLoop wait_for_tasks; - SetTaskExpectations(wait_for_tasks.QuitClosure(), 3); - - ScopedPerfettoPostTaskBlocker block(true); - auto weak_ptr = destination()->GetWeakPtr(); - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(1); }); - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(2); }); - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(3); }); - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(0u, destination()->tasks_run()); - - // Start the timer which eventually will tick and post the previously - // deferred tasks. Note that this is posted directly to the taskqueue - // rather than the Perfetto wrapper, so it won't be deferred. - task_runner()->GetOrCreateTaskRunner()->PostTask( - FROM_HERE, - base::BindOnce(&PerfettoTaskRunner::StartDeferredTasksDrainTimer, - base::Unretained(task_runner()))); - - wait_for_tasks.Run(); -} - -TEST_F(PerfettoTaskRunnerTest, SequentialByMultipleSequences) { - base::RunLoop wait_for_tasks; - SetTaskExpectations(wait_for_tasks.QuitClosure(), 2001, 3); - - auto weak_ptr = destination()->GetWeakPtr(); - - PosterThread first_thread(task_runner(), weak_ptr, 1000, 1); - PosterThread second_thread(task_runner(), weak_ptr, 1000, 2); - first_thread.Start(); - second_thread.Start(); - first_thread.Join(); - second_thread.Join(); - - // Both threads set the taskrunner to defer new tasks, so none - // should have run at this point. - EXPECT_EQ(0u, destination()->tasks_run()); - - // Posting an unblocked task should post the earlier deferred ones, - // in the right order. - task_runner()->PostTask([weak_ptr]() { weak_ptr->TestTask(1, 0); }); - wait_for_tasks.Run(); -} - } // namespace } // namespace tracing
diff --git a/services/tracing/public/cpp/perfetto/trace_event_data_source.cc b/services/tracing/public/cpp/perfetto/trace_event_data_source.cc index aadb0b4..df1c396 100644 --- a/services/tracing/public/cpp/perfetto/trace_event_data_source.cc +++ b/services/tracing/public/cpp/perfetto/trace_event_data_source.cc
@@ -267,7 +267,6 @@ TraceConfig(data_source_config.chrome_config().trace_config()); TraceLog::GetInstance()->SetEnabled(trace_config, TraceLog::RECORDING_MODE); ResetHistograms(trace_config); - PerfettoTracedProcess::GetTaskRunner()->StartDeferredTasksDrainTimer(); } void TraceEventDataSource::StopTracing( @@ -282,12 +281,6 @@ return; } - // It's extremely unlikely any threads are still in mid-trace-event - // at this point and end up posting new tasks to the PerfettoTaskRunner - // which end up not getting run until the next tracing session; worst - // case is we lose some chunk commit messages and Perfetto will - // scrape the chunks. - PerfettoTracedProcess::GetTaskRunner()->StopDeferredTasksDrainTimer(); data_source->UnregisterFromTraceLog(); if (data_source->stop_complete_callback_) { @@ -448,20 +441,13 @@ // events emitted while the taskqueue is locked), we can't reset the // sink as the TraceWriter deletion is done through PostTask. if (new_session_id > kFirstSessionID && - new_session_id != thread_local_event_sink->session_id() && - !(trace_event->flags() & TRACE_EVENT_FLAG_DISALLOW_POSTTASK)) { + new_session_id != thread_local_event_sink->session_id()) { delete thread_local_event_sink; thread_local_event_sink = nullptr; } } if (!thread_local_event_sink) { - // Trace events emitted by the task queue itself can happen while the task - // queue is locked, posting to it reentrantly would deadlock so these events - // need to be flagged so we can avoid PostTasks while they're being emitted. - ScopedPerfettoPostTaskBlocker post_task_blocker( - !!(trace_event->flags() & TRACE_EVENT_FLAG_DISALLOW_POSTTASK)); - thread_local_event_sink = GetInstance()->CreateThreadLocalEventSink(thread_will_flush); ThreadLocalEventSinkSlot()->Set(thread_local_event_sink);
diff --git a/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc b/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc index 9059709..dd0a5971 100644 --- a/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc +++ b/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc
@@ -176,9 +176,6 @@ bool copy_strings = flags & TRACE_EVENT_FLAG_COPY; bool explicit_timestamp = flags & TRACE_EVENT_FLAG_EXPLICIT_TIMESTAMP; - ScopedPerfettoPostTaskBlocker post_task_blocker( - !!(flags & TRACE_EVENT_FLAG_DISALLOW_POSTTASK)); - if (reset_incremental_state_) { interned_event_categories_.ResetEmittedState(); interned_event_names_.ResetEmittedState();
diff --git a/services/tracing/public/cpp/tracing_features.cc b/services/tracing/public/cpp/tracing_features.cc index ee6a3979..7b446da 100644 --- a/services/tracing/public/cpp/tracing_features.cc +++ b/services/tracing/public/cpp/tracing_features.cc
@@ -22,7 +22,7 @@ // Runs the tracing service as an in-process browser service. const base::Feature kTracingServiceInProcess { "TracingServiceInProcess", -#if defined(OS_ANDROID) +#if defined(OS_ANDROID) || defined(IS_CHROMECAST) base::FEATURE_ENABLED_BY_DEFAULT #else base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/testing/buildbot/chromium.webrtc.fyi.json b/testing/buildbot/chromium.webrtc.fyi.json index 7414f2c..0aefd4f 100644 --- a/testing/buildbot/chromium.webrtc.fyi.json +++ b/testing/buildbot/chromium.webrtc.fyi.json
@@ -17,20 +17,44 @@ "gtest_tests": [ { "args": [ - "--gtest_filter=WebRtc*" + "--gtest_filter=WebRtc*", + "--gs-results-bucket=chromium-result-details", + "--recover-devices" ], "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "content_browsertests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" }, "swarming": { "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "infra/tools/luci/logdog/butler/${platform}", + "location": "bin", + "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" + } + ], "dimension_sets": [ { "device_os": "K", "device_type": "hammerhead", "os": "Android" } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } ] }, "test": "content_browsertests" @@ -41,20 +65,44 @@ "gtest_tests": [ { "args": [ - "--gtest_filter=WebRtc*" + "--gtest_filter=WebRtc*", + "--gs-results-bucket=chromium-result-details", + "--recover-devices" ], "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "content_browsertests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" }, "swarming": { "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "infra/tools/luci/logdog/butler/${platform}", + "location": "bin", + "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" + } + ], "dimension_sets": [ { "device_os": "MMB29Q", "device_type": "bullhead", "os": "Android" } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } ] }, "test": "content_browsertests"
diff --git a/testing/buildbot/chromium.webrtc.json b/testing/buildbot/chromium.webrtc.json index acd79ed..a27c8db 100644 --- a/testing/buildbot/chromium.webrtc.json +++ b/testing/buildbot/chromium.webrtc.json
@@ -6,14 +6,38 @@ "gtest_tests": [ { "args": [ - "--gtest_filter=WebRtc*" + "--gtest_filter=WebRtc*", + "--gs-results-bucket=chromium-result-details", + "--recover-devices" ], "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "content_browsertests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" }, "swarming": { - "can_use_on_swarming_builders": true + "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "infra/tools/luci/logdog/butler/${platform}", + "location": "bin", + "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" + } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } + ] }, "test": "content_browsertests" }, @@ -21,15 +45,39 @@ "args": [ "--gtest_filter=UsingRealWebcam*", "--run-manual", - "--test-launcher-jobs=1" + "--test-launcher-jobs=1", + "--gs-results-bucket=chromium-result-details", + "--recover-devices" ], "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_gtest_merge.py" + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "content_browsertests_sequential" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" }, "name": "content_browsertests_sequential", "swarming": { - "can_use_on_swarming_builders": true + "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "infra/tools/luci/logdog/butler/${platform}", + "location": "bin", + "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" + } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } + ] }, "test": "content_browsertests" }
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index 30ebeb6..102cf638 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -3944,6 +3944,7 @@ 'machines': { 'WebRTC Chromium Android Builder': {}, 'WebRTC Chromium Android Tester': { + 'os_type': 'android', 'test_suites': { 'gtest_tests': 'webrtc_android_tests_with_baremetal_tests', }, @@ -4017,6 +4018,7 @@ 'WebRTC Chromium FYI Android Builder (dbg)': {}, 'WebRTC Chromium FYI Android Builder ARM64 (dbg)': {}, 'WebRTC Chromium FYI Android Tests (dbg) (K Nexus5)': { + 'os_type': 'android', 'mixins': [ 'kitkat', 'hammerhead', @@ -4026,6 +4028,7 @@ }, }, 'WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)': { + 'os_type': 'android', 'mixins': [ 'marshmallow', 'bullhead',
diff --git a/testing/merge_scripts/code_coverage/merge_results.py b/testing/merge_scripts/code_coverage/merge_results.py index 59db3ff..aedfb267 100755 --- a/testing/merge_scripts/code_coverage/merge_results.py +++ b/testing/merge_scripts/code_coverage/merge_results.py
@@ -51,43 +51,11 @@ parser = _MergeAPIArgumentParser(description=desc) params = parser.parse_args() - logging.info('Merging %d test results', len(params.jsons_to_merge)) - - failed = False - - # If given, always run the additional merge script, even if we only have one - # output json. Merge scripts sometimes upload artifacts to cloud storage, or - # do other processing which can be needed even if there's only one output. - if params.additional_merge_script: - new_args = [ - '--build-properties', params.build_properties, - '--summary-json', params.summary_json, - '--task-output-dir', params.task_output_dir, - '--output-json', params.output_json, - ] - if params.additional_merge_script_args: - new_args += json.loads(params.additional_merge_script_args) - - new_args += params.jsons_to_merge - - args = [ - sys.executable, params.additional_merge_script] + new_args - rc = subprocess.call(args) - if rc != 0: - failed = True - logging.warning('Additional merge script %s exited with %s' % ( - params.additional_merge_script, rc - )) - elif len(params.jsons_to_merge) == 1: - logging.info("Only one output needs to be merged; directly copying it.") - with open(params.jsons_to_merge[0]) as f_read: - with open(params.output_json, 'w') as f_write: - f_write.write(f_read.read()) - else: - logging.warning( - "This script was told to merge %d test results, but no additional " - "merge script was given.") - + # NOTE: The coverage data merge script must make sure that the profraw files + # are deleted from the task output directory after merging, otherwise, other + # test results merge script such as layout tests will treat them as json test + # results files and result in errors. + logging.info('Merging code coverage profraw data') invalid_profiles = coverage_merger.merge_profiles( params.task_output_dir, os.path.join(params.profdata_dir, 'default.profdata'), '.profraw', @@ -97,6 +65,44 @@ 'w') as f: json.dump(invalid_profiles, f) + logging.info('Merging %d test results', len(params.jsons_to_merge)) + failed = False + + # If given, always run the additional merge script, even if we only have one + # output json. Merge scripts sometimes upload artifacts to cloud storage, or + # do other processing which can be needed even if there's only one output. + if params.additional_merge_script: + new_args = [ + '--build-properties', + params.build_properties, + '--summary-json', + params.summary_json, + '--task-output-dir', + params.task_output_dir, + '--output-json', + params.output_json, + ] + if params.additional_merge_script_args: + new_args += json.loads(params.additional_merge_script_args) + + new_args += params.jsons_to_merge + + args = [sys.executable, params.additional_merge_script] + new_args + rc = subprocess.call(args) + if rc != 0: + failed = True + logging.warning('Additional merge script %s exited with %s' % + (params.additional_merge_script, rc)) + elif len(params.jsons_to_merge) == 1: + logging.info("Only one output needs to be merged; directly copying it.") + with open(params.jsons_to_merge[0]) as f_read: + with open(params.output_json, 'w') as f_write: + f_write.write(f_read.read()) + else: + logging.warning( + "This script was told to merge %d test results, but no additional " + "merge script was given.") + return 1 if (failed or bool(invalid_profiles)) else 0
diff --git a/third_party/blink/common/push_messaging/OWNERS b/third_party/blink/common/push_messaging/OWNERS new file mode 100644 index 0000000..b4200c27 --- /dev/null +++ b/third_party/blink/common/push_messaging/OWNERS
@@ -0,0 +1,7 @@ +file://third_party/blink/renderer/modules/push_messaging/OWNERS + +per-file *_mojom_traits*.*=set noparent +per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS + +# TEAM: platform-capabilities@chromium.org +# COMPONENT: Blink>PushAPI
diff --git a/third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.cc b/third_party/blink/common/push_messaging/push_messaging_mojom_traits.cc similarity index 100% rename from third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.cc rename to third_party/blink/common/push_messaging/push_messaging_mojom_traits.cc
diff --git a/third_party/blink/public/common/push_messaging/push_messaging.typemap b/third_party/blink/public/common/push_messaging/push_messaging.typemap index 7a01b25..9f8410c 100644 --- a/third_party/blink/public/common/push_messaging/push_messaging.typemap +++ b/third_party/blink/public/common/push_messaging/push_messaging.typemap
@@ -9,7 +9,7 @@ ] traits_headers = [ "//third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.h" ] sources = [ - "//third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.cc", + "//third_party/blink/common/push_messaging/push_messaging_mojom_traits.cc", ] type_mappings = [ "blink.mojom.PushErrorType=blink::WebPushError::ErrorType",
diff --git a/third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.h b/third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.h index d265541..2b316d47 100644 --- a/third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.h +++ b/third_party/blink/public/common/push_messaging/push_messaging_mojom_traits.h
@@ -8,14 +8,16 @@ #include <stddef.h> #include "mojo/public/cpp/bindings/struct_traits.h" +#include "third_party/blink/public/common/common_export.h" #include "third_party/blink/public/mojom/push_messaging/push_messaging.mojom.h" #include "third_party/blink/public/mojom/push_messaging/push_messaging_status.mojom.h" namespace mojo { template <> -struct StructTraits<blink::mojom::PushSubscriptionOptionsDataView, - blink::PushSubscriptionOptionsParams> { +struct BLINK_COMMON_EXPORT + StructTraits<blink::mojom::PushSubscriptionOptionsDataView, + blink::PushSubscriptionOptionsParams> { static bool user_visible_only(const blink::PushSubscriptionOptionsParams& r) { return r.user_visible_only; } @@ -28,7 +30,8 @@ }; template <> -struct EnumTraits<blink::mojom::PushErrorType, blink::WebPushError::ErrorType> { +struct BLINK_COMMON_EXPORT + EnumTraits<blink::mojom::PushErrorType, blink::WebPushError::ErrorType> { static blink::mojom::PushErrorType ToMojom( blink::WebPushError::ErrorType input); static bool FromMojom(blink::mojom::PushErrorType input,
diff --git a/third_party/blink/public/mojom/reporting/reporting.mojom b/third_party/blink/public/mojom/reporting/reporting.mojom index 605f4b3..1390f90 100644 --- a/third_party/blink/public/mojom/reporting/reporting.mojom +++ b/third_party/blink/public/mojom/reporting/reporting.mojom
@@ -34,18 +34,17 @@ // (See //third_party/blink/renderer/core/events/security_policy_violation_event.h.) QueueCspViolationReport(url.mojom.Url url, string group, - string document_uri, - string referrer, - string violated_directive, + string document_url, + string? referrer, + string? blocked_url, string effective_directive, string original_policy, - string disposition, - string blocked_uri, - int32 line_number, - int32 column_number, string? source_file, + string? script_sample, + string disposition, uint16 status_code, - string script_sample); + int32 line_number, + int32 column_number); // Attempts to queue a Feature Policy violation report using the Reporting API. //
diff --git a/third_party/blink/renderer/core/editing/BUILD.gn b/third_party/blink/renderer/core/editing/BUILD.gn index c7ab9a5a..9517a04 100644 --- a/third_party/blink/renderer/core/editing/BUILD.gn +++ b/third_party/blink/renderer/core/editing/BUILD.gn
@@ -246,8 +246,6 @@ "selection_editor.h", "selection_modifier.cc", "selection_modifier.h", - "selection_modifier_character.cc", - "selection_modifier_word.cc", "selection_strategy.h", "selection_template.cc", "selection_template.h", @@ -393,9 +391,7 @@ "relocatable_position_test.cc", "selection_adjuster_test.cc", "selection_controller_test.cc", - "selection_modifier_character_test.cc", "selection_modifier_test.cc", - "selection_modifier_word_test.cc", "selection_template_test.cc", "serializers/styled_markup_serializer_test.cc", "set_selection_options_test.cc",
diff --git a/third_party/blink/renderer/core/editing/inline_box_traversal.cc b/third_party/blink/renderer/core/editing/inline_box_traversal.cc index 955e7d94..e121ea2a 100644 --- a/third_party/blink/renderer/core/editing/inline_box_traversal.cc +++ b/third_party/blink/renderer/core/editing/inline_box_traversal.cc
@@ -131,24 +131,9 @@ TextDirection ParagraphDirection() const { DCHECK(IsNotNull()); - if (IsOldLayout()) { - const ComputedStyle& block_style = *GetInlineBox().Root().Block().Style(); - if (block_style.GetUnicodeBidi() != UnicodeBidi::kPlaintext) - return block_style.Direction(); - - // There is no reliable way to get the paragraph direction in legacy - // layout when 'unicode-bidi: plaintext' is set. Use the lowest-level - // inline box's direction as a workaround. - UBiDiLevel min_level = 128; - for (const InlineBox* runner = GetInlineBox().Root().FirstLeafChild(); - runner; runner = runner->NextLeafChild()) { - min_level = std::min(min_level, runner->BidiLevel()); - } - return DirectionFromLevel(min_level); - } - const auto& line_box = To<NGPhysicalLineBoxFragment>( - GetNGPaintFragment().ContainerLineBox()->PhysicalFragment()); - return line_box.BaseDirection(); + if (IsOldLayout()) + return ParagraphDirectionOf(GetInlineBox()); + return ParagraphDirectionOf(GetNGPaintFragment()); } private: @@ -811,44 +796,6 @@ } // namespace -const InlineBox* InlineBoxTraversal::FindLeftBidiRun(const InlineBox& box, - unsigned bidi_level) { - const AbstractInlineBox& result = - FindBidiRun<TraverseLeft>(AbstractInlineBox(box), bidi_level); - if (result.IsNull()) - return nullptr; - DCHECK(result.IsOldLayout()); - return &result.GetInlineBox(); -} - -const InlineBox* InlineBoxTraversal::FindRightBidiRun(const InlineBox& box, - unsigned bidi_level) { - const AbstractInlineBox& result = - FindBidiRun<TraverseRight>(AbstractInlineBox(box), bidi_level); - if (result.IsNull()) - return nullptr; - DCHECK(result.IsOldLayout()); - return &result.GetInlineBox(); -} - -const InlineBox& InlineBoxTraversal::FindLeftBoundaryOfEntireBidiRun( - const InlineBox& box, - unsigned bidi_level) { - const AbstractInlineBox& result = FindBoundaryOfEntireBidiRun<TraverseLeft>( - AbstractInlineBox(box), bidi_level); - DCHECK(result.IsOldLayout()); - return result.GetInlineBox(); -} - -const InlineBox& InlineBoxTraversal::FindRightBoundaryOfEntireBidiRun( - const InlineBox& box, - unsigned bidi_level) { - const AbstractInlineBox& result = FindBoundaryOfEntireBidiRun<TraverseRight>( - AbstractInlineBox(box), bidi_level); - DCHECK(result.IsOldLayout()); - return result.GetInlineBox(); -} - InlineBoxPosition BidiAdjustment::AdjustForCaretPositionResolution( const InlineBoxPosition& caret_position) { const AbstractInlineBoxAndSideAffinity unadjusted(caret_position); @@ -901,4 +848,28 @@ return RangeSelectionAdjuster::AdjustFor(base, extent); } +// TODO(xiaochengh): Move this function to a better place +TextDirection ParagraphDirectionOf(const InlineBox& box) { + const ComputedStyle& block_style = *box.Root().Block().Style(); + if (block_style.GetUnicodeBidi() != UnicodeBidi::kPlaintext) + return block_style.Direction(); + + // There is no reliable way to get the paragraph direction in legacy + // layout when 'unicode-bidi: plaintext' is set. Use the lowest-level + // inline box's direction as a workaround. + UBiDiLevel min_level = 128; + for (const InlineBox* runner = box.Root().FirstLeafChild(); runner; + runner = runner->NextLeafChild()) { + min_level = std::min(min_level, runner->BidiLevel()); + } + return DirectionFromLevel(min_level); +} + +// TODO(xiaochengh): Move this function to a better place +TextDirection ParagraphDirectionOf(const NGPaintFragment& fragment) { + const auto& line_box = To<NGPhysicalLineBoxFragment>( + fragment.ContainerLineBox()->PhysicalFragment()); + return line_box.BaseDirection(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/editing/inline_box_traversal.h b/third_party/blink/renderer/core/editing/inline_box_traversal.h index 3e433017..5bccc36e 100644 --- a/third_party/blink/renderer/core/editing/inline_box_traversal.h +++ b/third_party/blink/renderer/core/editing/inline_box_traversal.h
@@ -15,6 +15,8 @@ class InlineBox; struct InlineBoxPosition; struct NGCaretPosition; +class NGPaintFragment; +enum class TextDirection : uint8_t; class BidiAdjustment final { STATIC_ONLY(BidiAdjustment); @@ -41,31 +43,8 @@ const PositionInFlatTreeWithAffinity&); }; -// This class provides common traveral functions on list of |InlineBox|. -// TODO(xiaochengh): Code using InlineBoxTraversal should be merged into the .cc -// file and templatized to share code with NG bidi traversal. -class InlineBoxTraversal final { - STATIC_ONLY(InlineBoxTraversal); - - public: - // TODO(yosin): We should take |bidi_level| from |InlineBox::BidiLevel()|, - // once all call sites satisfy it. - - // Traverses left/right from |box|, and returns the first box with bidi level - // less than or equal to |bidi_level| (excluding |box| itself). Returns - // |nullptr| when such a box doesn't exist. - static const InlineBox* FindLeftBidiRun(const InlineBox& box, - unsigned bidi_level); - static const InlineBox* FindRightBidiRun(const InlineBox& box, - unsigned bidi_level); - - // Traverses left/right from |box|, and returns the last box with bidi level - // greater than or equal to |bidi_level| (including |box| itself). - static const InlineBox& FindLeftBoundaryOfEntireBidiRun(const InlineBox& box, - unsigned bidi_level); - static const InlineBox& FindRightBoundaryOfEntireBidiRun(const InlineBox& box, - unsigned bidi_level); -}; +TextDirection ParagraphDirectionOf(const InlineBox&); +TextDirection ParagraphDirectionOf(const NGPaintFragment&); } // namespace blink
diff --git a/third_party/blink/renderer/core/editing/selection_modifier.cc b/third_party/blink/renderer/core/editing/selection_modifier.cc index 900d2b7..029a2fb 100644 --- a/third_party/blink/renderer/core/editing/selection_modifier.cc +++ b/third_party/blink/renderer/core/editing/selection_modifier.cc
@@ -31,6 +31,7 @@ #include "third_party/blink/renderer/core/editing/editor.h" #include "third_party/blink/renderer/core/editing/ephemeral_range.h" #include "third_party/blink/renderer/core/editing/inline_box_position.h" +#include "third_party/blink/renderer/core/editing/inline_box_traversal.h" #include "third_party/blink/renderer/core/editing/local_caret_rect.h" #include "third_party/blink/renderer/core/editing/selection_template.h" #include "third_party/blink/renderer/core/editing/visible_position.h" @@ -168,6 +169,30 @@ return base::nullopt; } +// TODO(xiaochengh): Deduplicate code with |DirectionAt()|. +base::Optional<TextDirection> LineDirectionAt(const VisiblePosition& position) { + if (position.IsNull()) + return base::nullopt; + const PositionWithAffinity adjusted = ComputeInlineAdjustedPosition(position); + if (adjusted.IsNull()) + return base::nullopt; + + if (NGInlineFormattingContextOf(adjusted.GetPosition())) { + if (const NGPaintFragment* fragment = + ComputeNGCaretPosition(adjusted).fragment) { + return ParagraphDirectionOf(*fragment); + } + return base::nullopt; + } + + if (const InlineBox* box = + ComputeInlineBoxPositionForInlineAdjustedPosition(adjusted) + .inline_box) { + return ParagraphDirectionOf(*box); + } + return base::nullopt; +} + TextDirection DirectionOf(const VisibleSelection& visible_selection) { base::Optional<TextDirection> maybe_start_direction = DirectionAt(visible_selection.VisibleStart()); @@ -186,6 +211,11 @@ return DirectionOf(selection_); } +TextDirection SelectionModifier::LineDirectionOfExtent() const { + return LineDirectionAt(selection_.VisibleExtent()) + .value_or(DirectionOfEnclosingBlockOf(selection_.Extent())); +} + static bool IsBaseStart(const VisibleSelection& visible_selection, SelectionModifyDirection direction) { switch (direction) { @@ -386,17 +416,17 @@ switch (granularity) { case TextGranularity::kCharacter: if (!selection_.IsRange()) { - return RightPositionOf(ComputeVisibleExtent(selection_)); + if (LineDirectionOfExtent() == TextDirection::kLtr) + return ModifyMovingForward(granularity); + return ModifyMovingBackward(granularity); } if (DirectionOfSelection() == TextDirection::kLtr) return CreateVisiblePosition(selection_.End(), selection_.Affinity()); return CreateVisiblePosition(selection_.Start(), selection_.Affinity()); - case TextGranularity::kWord: { - const bool skips_space_when_moving_right = - GetFrame().GetEditor().Behavior().ShouldSkipSpaceWhenMovingRight(); - return RightWordPosition(ComputeVisibleExtent(selection_), - skips_space_when_moving_right); - } + case TextGranularity::kWord: + if (LineDirectionOfExtent() == TextDirection::kLtr) + return ModifyMovingForward(granularity); + return ModifyMovingBackward(granularity); case TextGranularity::kSentence: case TextGranularity::kLine: case TextGranularity::kParagraph: @@ -560,17 +590,17 @@ switch (granularity) { case TextGranularity::kCharacter: if (!selection_.IsRange()) { - return LeftPositionOf(ComputeVisibleExtent(selection_)); + if (LineDirectionOfExtent() == TextDirection::kLtr) + return ModifyMovingBackward(granularity); + return ModifyMovingForward(granularity); } if (DirectionOfSelection() == TextDirection::kLtr) return CreateVisiblePosition(selection_.Start(), selection_.Affinity()); return CreateVisiblePosition(selection_.End(), selection_.Affinity()); - case TextGranularity::kWord: { - const bool skips_space_when_moving_right = - GetFrame().GetEditor().Behavior().ShouldSkipSpaceWhenMovingRight(); - return LeftWordPosition(ComputeVisibleExtent(selection_), - skips_space_when_moving_right); - } + case TextGranularity::kWord: + if (LineDirectionOfExtent() == TextDirection::kLtr) + return ModifyMovingBackward(granularity); + return ModifyMovingForward(granularity); case TextGranularity::kSentence: case TextGranularity::kLine: case TextGranularity::kParagraph:
diff --git a/third_party/blink/renderer/core/editing/selection_modifier.h b/third_party/blink/renderer/core/editing/selection_modifier.h index 30e3d75..7633511 100644 --- a/third_party/blink/renderer/core/editing/selection_modifier.h +++ b/third_party/blink/renderer/core/editing/selection_modifier.h
@@ -79,6 +79,7 @@ SelectionModifyDirection) const; TextDirection DirectionOfEnclosingBlock() const; TextDirection DirectionOfSelection() const; + TextDirection LineDirectionOfExtent() const; VisiblePosition PositionForPlatform(bool is_get_start) const; VisiblePosition StartForPlatform() const; VisiblePosition EndForPlatform() const; @@ -100,13 +101,6 @@ VisiblePosition ModifyMovingBackward(TextGranularity); Position NextWordPositionForPlatform(const Position&); - // TODO(editing-dev): We should handle |skips_spaces_when_moving_right| in - // another way, e.g. pass |EditingBehavior()|. - static VisiblePosition LeftWordPosition(const VisiblePosition&, - bool skips_space_when_moving_right); - static VisiblePosition RightWordPosition(const VisiblePosition&, - bool skips_space_when_moving_right); - Member<const LocalFrame> frame_; // TODO(editing-dev): We should get rid of |selection_| once we change // all member functions not to use |selection_|. @@ -124,22 +118,6 @@ LayoutUnit NoXPosForVerticalArrowNavigation(); -// Following functions are exported for using in SelectionModifier and -// testing only. - -// TODO(yosin) Since return value of |leftPositionOf()| with |VisiblePosition| -// isn't defined well on flat tree, we should not use it for a position in -// flat tree. -CORE_EXPORT VisiblePosition LeftPositionOf(const VisiblePosition&); -CORE_EXPORT VisiblePositionInFlatTree -LeftPositionOf(const VisiblePositionInFlatTree&); -// TODO(yosin) Since return value of |rightPositionOf()| with |VisiblePosition| -// isn't defined well on flat tree, we should not use it for a position in -// flat tree. -CORE_EXPORT VisiblePosition RightPositionOf(const VisiblePosition&); -CORE_EXPORT VisiblePositionInFlatTree -RightPositionOf(const VisiblePositionInFlatTree&); - } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SELECTION_MODIFIER_H_
diff --git a/third_party/blink/renderer/core/editing/selection_modifier_character.cc b/third_party/blink/renderer/core/editing/selection_modifier_character.cc deleted file mode 100644 index 694593dd..0000000 --- a/third_party/blink/renderer/core/editing/selection_modifier_character.cc +++ /dev/null
@@ -1,844 +0,0 @@ -/* - * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -// Copyright 2017 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/renderer/core/editing/selection_modifier.h" - -#include "third_party/blink/renderer/core/editing/editing_utilities.h" -#include "third_party/blink/renderer/core/editing/inline_box_position.h" -#include "third_party/blink/renderer/core/editing/inline_box_traversal.h" -#include "third_party/blink/renderer/core/editing/ng_flat_tree_shorthands.h" -#include "third_party/blink/renderer/core/editing/visible_position.h" -#include "third_party/blink/renderer/core/editing/visible_units.h" -#include "third_party/blink/renderer/core/layout/api/line_layout_api_shim.h" -#include "third_party/blink/renderer/core/layout/api/line_layout_item.h" -#include "third_party/blink/renderer/core/layout/layout_block_flow.h" -#include "third_party/blink/renderer/core/layout/layout_text_fragment.h" -#include "third_party/blink/renderer/core/layout/line/inline_text_box.h" -#include "third_party/blink/renderer/core/layout/line/root_inline_box.h" -#include "third_party/blink/renderer/core/layout/ng/inline/ng_caret_navigator.h" -#include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h" -#include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h" - -namespace blink { - -namespace { - -// The traversal strategy for |LeftPositionOf()|. -template <typename Strategy> -struct TraversalLeft { - STATIC_ONLY(TraversalLeft); - - static int CaretBackwardOffsetOf(const InlineBox& box) { - return box.CaretRightmostOffset(); - } - - static int CaretForwardOffsetOf(const InlineBox& box) { - return box.CaretLeftmostOffset(); - } - - static const InlineBox* ForwardLeafChildOf(const InlineBox& box) { - return box.PrevLeafChild(); - } - - static const InlineBox* ForwardLeafChildIgnoringLineBreakOf( - const InlineBox& box) { - return box.PrevLeafChildIgnoringLineBreak(); - } - - static int ForwardGraphemeBoundaryOf(TextDirection direction, - const Node& node, - int offset) { - if (direction == TextDirection::kLtr) - return PreviousGraphemeBoundaryOf(node, offset); - return NextGraphemeBoundaryOf(node, offset); - } - - static bool IsOvershot(int offset, const InlineBox& box) { - if (box.IsLeftToRightDirection()) - return offset < box.CaretMinOffset(); - return offset > box.CaretMaxOffset(); - } - - static PositionTemplate<Strategy> ForwardVisuallyDistinctCandidateOf( - TextDirection direction, - const PositionTemplate<Strategy>& position) { - if (direction == TextDirection::kLtr) - return PreviousVisuallyDistinctCandidate(position); - return NextVisuallyDistinctCandidate(position); - } - - static VisiblePositionTemplate<Strategy> HonorEditingBoundary( - TextDirection direction, - const VisiblePositionTemplate<Strategy>& visible_position, - const PositionTemplate<Strategy>& anchor) { - if (direction == TextDirection::kLtr) { - return AdjustBackwardPositionToAvoidCrossingEditingBoundaries( - visible_position, anchor); - } - return AdjustForwardPositionToAvoidCrossingEditingBoundaries( - visible_position, anchor); - } - - // TODO(xiaochengh): The functions below are used only by bidi adjustment. - // Merge them into inline_box_traversal.cc. - - static int CaretForwardOffsetInLineDirection(TextDirection line_direction, - const InlineBox& box) { - if (line_direction == TextDirection::kLtr) - return box.CaretMinOffset(); - return box.CaretMaxOffset(); - } - - static const InlineBox* FindBackwardBidiRun(const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindRightBidiRun(box, bidi_level); - } - - static const InlineBox& FindBackwardBoundaryOfEntireBidiRun( - const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindRightBoundaryOfEntireBidiRun(box, - bidi_level); - } - - static const InlineBox* FindForwardBidiRun(const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindLeftBidiRun(box, bidi_level); - } - - static const InlineBox& FindForwardBoundaryOfEntireBidiRun( - const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindLeftBoundaryOfEntireBidiRun(box, bidi_level); - } - - static const InlineBox* ForwardNonPseudoLeafChildOf(const InlineBox& box) { - for (const InlineBox* runner = ForwardLeafChildOf(box); runner; - runner = ForwardLeafChildOf(*runner)) { - if (runner->GetLineLayoutItem().GetNode()) - return runner; - } - return nullptr; - } - - static const InlineBox* LogicalForwardMostInLine(TextDirection line_direction, - const InlineBox& box) { - if (line_direction == TextDirection::kLtr) - return box.Root().GetLogicalStartNonPseudoBox(); - return box.Root().GetLogicalEndNonPseudoBox(); - } - - static NGCaretNavigator::VisualCaretMovementResult ForwardPositionOf( - const NGCaretNavigator& caret_navigator, - const NGCaretNavigator::Position& caret_position) { - DCHECK(RuntimeEnabledFeatures::BidiCaretAffinityEnabled()); - return caret_navigator.LeftPositionOf(caret_position); - } - - static NGCaretNavigator::Position MostBackwardPositionInFirstLine( - const NGCaretNavigator& caret_navigator) { - DCHECK(RuntimeEnabledFeatures::BidiCaretAffinityEnabled()); - return caret_navigator.RightmostPositionInFirstLine(); - } - - static NGCaretNavigator::Position MostBackwardPositionInLastLine( - const NGCaretNavigator& caret_navigator) { - DCHECK(RuntimeEnabledFeatures::BidiCaretAffinityEnabled()); - return caret_navigator.RightmostPositionInLastLine(); - } -}; - -// The traversal strategy for |RightPositionOf()|. -template <typename Strategy> -struct TraversalRight { - STATIC_ONLY(TraversalRight); - - static int CaretBackwardOffsetOf(const InlineBox& box) { - return box.CaretLeftmostOffset(); - } - - static int CaretForwardOffsetOf(const InlineBox& box) { - return box.CaretRightmostOffset(); - } - - static const InlineBox* ForwardLeafChildOf(const InlineBox& box) { - return box.NextLeafChild(); - } - - static const InlineBox* ForwardLeafChildIgnoringLineBreakOf( - const InlineBox& box) { - return box.NextLeafChildIgnoringLineBreak(); - } - - static int ForwardGraphemeBoundaryOf(TextDirection direction, - const Node& node, - int offset) { - if (direction == TextDirection::kLtr) - return NextGraphemeBoundaryOf(node, offset); - return PreviousGraphemeBoundaryOf(node, offset); - } - - static bool IsOvershot(int offset, const InlineBox& box) { - if (box.IsLeftToRightDirection()) - return offset > box.CaretMaxOffset(); - return offset < box.CaretMinOffset(); - } - - static PositionTemplate<Strategy> ForwardVisuallyDistinctCandidateOf( - TextDirection direction, - const PositionTemplate<Strategy>& position) { - if (direction == TextDirection::kLtr) - return NextVisuallyDistinctCandidate(position); - return PreviousVisuallyDistinctCandidate(position); - } - - static VisiblePositionTemplate<Strategy> HonorEditingBoundary( - TextDirection direction, - const VisiblePositionTemplate<Strategy>& visible_position, - const PositionTemplate<Strategy>& anchor) { - if (direction == TextDirection::kLtr) { - return AdjustForwardPositionToAvoidCrossingEditingBoundaries( - visible_position, anchor); - } - return AdjustBackwardPositionToAvoidCrossingEditingBoundaries( - visible_position, anchor); - } - - // TODO(xiaochengh): The functions below are used only by bidi adjustment. - // Merge them into inline_box_traversal.cc. - - static int CaretForwardOffsetInLineDirection(TextDirection line_direction, - const InlineBox& box) { - if (line_direction == TextDirection::kLtr) - return box.CaretMaxOffset(); - return box.CaretMinOffset(); - } - - static const InlineBox* FindBackwardBidiRun(const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindLeftBidiRun(box, bidi_level); - } - - static const InlineBox& FindBackwardBoundaryOfEntireBidiRun( - const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindLeftBoundaryOfEntireBidiRun(box, bidi_level); - } - - static const InlineBox* FindForwardBidiRun(const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindRightBidiRun(box, bidi_level); - } - - static const InlineBox& FindForwardBoundaryOfEntireBidiRun( - const InlineBox& box, - unsigned bidi_level) { - return InlineBoxTraversal::FindRightBoundaryOfEntireBidiRun(box, - bidi_level); - } - - static const InlineBox* ForwardNonPseudoLeafChildOf(const InlineBox& box) { - for (const InlineBox* runner = ForwardLeafChildOf(box); runner; - runner = ForwardLeafChildOf(*runner)) { - if (runner->GetLineLayoutItem().GetNode()) - return runner; - } - return nullptr; - } - - static const InlineBox* LogicalForwardMostInLine(TextDirection line_direction, - const InlineBox& box) { - if (line_direction == TextDirection::kLtr) - return box.Root().GetLogicalEndNonPseudoBox(); - return box.Root().GetLogicalStartNonPseudoBox(); - } - - static NGCaretNavigator::VisualCaretMovementResult ForwardPositionOf( - const NGCaretNavigator& caret_navigator, - const NGCaretNavigator::Position& caret_position) { - DCHECK(RuntimeEnabledFeatures::BidiCaretAffinityEnabled()); - return caret_navigator.RightPositionOf(caret_position); - } - - static NGCaretNavigator::Position MostBackwardPositionInFirstLine( - const NGCaretNavigator& caret_navigator) { - DCHECK(RuntimeEnabledFeatures::BidiCaretAffinityEnabled()); - return caret_navigator.LeftmostPositionInFirstLine(); - } - - static NGCaretNavigator::Position MostBackwardPositionInLastLine( - const NGCaretNavigator& caret_navigator) { - DCHECK(RuntimeEnabledFeatures::BidiCaretAffinityEnabled()); - return caret_navigator.LeftmostPositionInLastLine(); - } -}; - -template <typename Traversal> -bool IsBeforeAtomicInlineOrLineBreak(const InlineBox& box, int offset) { - if (offset != Traversal::CaretBackwardOffsetOf(box)) - return false; - if (box.IsInlineTextBox() && ToInlineTextBox(box).IsLineBreak()) - return true; - return box.GetLineLayoutItem().IsAtomicInlineLevel(); -} - -// TODO(xiaochengh): The function is for bidi adjustment. -// Merge it into inline_box_traversal.cc. -template <typename Traversal> -const InlineBox* LeadingBoxOfEntireSecondaryRun(const InlineBox* box) { - const InlineBox* runner = box; - while (true) { - const InlineBox& backward_box = - Traversal::FindBackwardBoundaryOfEntireBidiRun(*runner, - runner->BidiLevel()); - if (backward_box.BidiLevel() == runner->BidiLevel()) - return &backward_box; - DCHECK_GT(backward_box.BidiLevel(), runner->BidiLevel()); - runner = &backward_box; - - const InlineBox& forward_box = - Traversal::FindForwardBoundaryOfEntireBidiRun(*runner, - runner->BidiLevel()); - if (forward_box.BidiLevel() == runner->BidiLevel()) - return &forward_box; - DCHECK_GT(forward_box.BidiLevel(), runner->BidiLevel()); - runner = &forward_box; - } -} - -// TODO(xiaochengh): The function is for bidi adjustment. -// Merge it into inline_box_traversal.cc. -// TODO(xiaochengh): Stop passing return value by non-const reference parameters -template <typename Traversal> -bool FindForwardBoxInPossiblyBidiContext(const InlineBox*& box, - int& offset, - TextDirection line_direction) { - const unsigned char level = box->BidiLevel(); - if (box->Direction() == line_direction) { - const InlineBox* const forward_box = Traversal::ForwardLeafChildOf(*box); - if (!forward_box) { - if (const InlineBox* logical_forward_most = - Traversal::LogicalForwardMostInLine(line_direction, *box)) { - box = logical_forward_most; - offset = - Traversal::CaretForwardOffsetInLineDirection(line_direction, *box); - } - return true; - } - if (forward_box->BidiLevel() >= level) - return true; - - const unsigned char forward_level = forward_box->BidiLevel(); - const InlineBox* const backward_box = - Traversal::FindBackwardBidiRun(*box, forward_level); - if (backward_box && backward_box->BidiLevel() == forward_level) - return true; - - box = forward_box; - offset = Traversal::CaretBackwardOffsetOf(*box); - return box->Direction() == line_direction; - } - - const InlineBox* const forward_non_pseudo_box = - Traversal::ForwardNonPseudoLeafChildOf(*box); - if (forward_non_pseudo_box) { - box = forward_non_pseudo_box; - offset = Traversal::CaretBackwardOffsetOf(*box); - if (box->BidiLevel() > level) { - const InlineBox* const forward_bidi_run = - Traversal::FindForwardBidiRun(*forward_non_pseudo_box, level); - if (!forward_bidi_run || forward_bidi_run->BidiLevel() < level) - return false; - } - return true; - } - // Trailing edge of a secondary run. Set to the leading edge of - // the entire run. - box = LeadingBoxOfEntireSecondaryRun<Traversal>(box); - offset = Traversal::CaretForwardOffsetInLineDirection(line_direction, *box); - return true; -} - -template <typename Strategy, typename Traversal> -static PositionTemplate<Strategy> TraverseInternalAlgorithm( - const VisiblePositionTemplate<Strategy>& visible_position) { - DCHECK(visible_position.IsValid()) << visible_position; - if (visible_position.IsNull()) - return PositionTemplate<Strategy>(); - - const PositionTemplate<Strategy> deep_position = - visible_position.DeepEquivalent(); - const PositionTemplate<Strategy> downstream_start = - MostForwardCaretPosition(deep_position); - const TextDirection line_direction = - PrimaryDirectionOf(*deep_position.AnchorNode()); - const TextAffinity affinity = visible_position.Affinity(); - - // Conceptually, starting from the given caret position, traverse each leaf - // inline box and each caret position in the box (skipping CSS generated - // content) until we have: - // - crossed a grapheme boundary, or - // - reached the line boundary, or - // - reached an atomic inline. - // TODO(xiaochengh): Refactor the code to make it closer to the above. - // TODO(xiaochengh): Simplify loop termination conditions. Find and fix any - // possibility of infinite iterations. - for (InlineBoxPosition box_position = - ComputeInlineBoxPosition(visible_position.ToPositionWithAffinity()); - ;) { - const InlineBox* const box = box_position.inline_box; - const int offset = box_position.offset_in_box; - if (!box) { - return Traversal::ForwardVisuallyDistinctCandidateOf(line_direction, - deep_position); - } - - const InlineBox* next_box = nullptr; - int next_offset = 0; - bool can_create_position = false; - - // TODO(xiaochengh): The loop below iterates for exactly once. Merge it into - // the outer loop and clean up the code. - do { - if (IsBeforeAtomicInlineOrLineBreak<Traversal>(*box, offset)) { - return Traversal::ForwardVisuallyDistinctCandidateOf(box->Direction(), - deep_position); - } - - const LineLayoutItem line_layout_item = box->GetLineLayoutItem(); - - // Skip generated content. - if (!line_layout_item.GetNode()) { - next_box = Traversal::ForwardLeafChildOf(*box); - if (!next_box) { - return Traversal::ForwardVisuallyDistinctCandidateOf(line_direction, - deep_position); - } - next_offset = Traversal::CaretBackwardOffsetOf(*next_box); - continue; - } - - const int forward_grapheme_boundary = - Traversal::ForwardGraphemeBoundaryOf( - box->Direction(), *line_layout_item.GetNode(), offset); - - const int caret_min_offset = box->CaretMinOffset(); - const int caret_max_offset = box->CaretMaxOffset(); - - if (forward_grapheme_boundary > caret_min_offset && - forward_grapheme_boundary < caret_max_offset) { - next_box = box; - next_offset = forward_grapheme_boundary; - can_create_position = true; - break; - } - - if (Traversal::IsOvershot(forward_grapheme_boundary, *box)) { - // Overshot forwardly. - const InlineBox* const forward_box = - Traversal::ForwardLeafChildIgnoringLineBreakOf(*box); - if (!forward_box) { - const PositionTemplate<Strategy>& forward_position = - Traversal::ForwardVisuallyDistinctCandidateOf( - line_direction, visible_position.DeepEquivalent()); - if (forward_position.IsNull()) - return PositionTemplate<Strategy>(); - - const InlineBox* forward_position_box = - ComputeInlineBoxPosition(PositionWithAffinityTemplate<Strategy>( - forward_position, affinity)) - .inline_box; - if (forward_position_box && - forward_position_box->Root() == box->Root()) - return PositionTemplate<Strategy>(); - return forward_position; - } - - // Reposition at the other logical position corresponding to our - // edge's visual position and go for another round. - next_box = forward_box; - next_offset = Traversal::CaretBackwardOffsetOf(*forward_box); - continue; - } - - DCHECK_EQ(forward_grapheme_boundary, - Traversal::CaretForwardOffsetOf(*box)); - next_box = box; - next_offset = forward_grapheme_boundary; - // We may be at a bidi boundary, in which case the visual caret position - // doesn't match its DOM position, and certain adjustment is needed. - can_create_position = FindForwardBoxInPossiblyBidiContext<Traversal>( - next_box, next_offset, line_direction); - } while (false); - - if (!can_create_position) { - box_position = InlineBoxPosition(next_box, next_offset); - continue; - } - - // TODO(xiaochengh): Eliminate single-char variable name. - const PositionTemplate<Strategy> p = - PositionTemplate<Strategy>::EditingPositionOf( - next_box->GetLineLayoutItem().GetNode(), next_offset); - - if ((IsVisuallyEquivalentCandidate(p) && - MostForwardCaretPosition(p) != downstream_start) || - p.AtStartOfTree() || p.AtEndOfTree()) - return p; - - // TODO(xiaochengh): This detour to |p| seems unnecessary. Investigate if we - // can simply use |InlineBoxPosition(next_box, next_offset)|. - DCHECK_NE(p, deep_position); - box_position = ComputeInlineBoxPosition( - PositionWithAffinityTemplate<Strategy>(p, affinity)); - } -} - -// TODO(xiaochengh): This class will likely be reused elsewhere. Move it to its -// own files. -class InlineFormattingContextTraversal { - STATIC_ONLY(InlineFormattingContextTraversal); - - public: - static LayoutBlockFlow* PreviousContextOf(const LayoutBlockFlow& start) { - const LayoutObject* stay_within = AncestorToStayWithin(start); - for (LayoutObject* runner = - start.PreviousInPostOrderBeforeChildren(stay_within); - runner;) { - if (ShouldNotEnter(*runner)) { - runner = runner->PreviousInPostOrderBeforeChildren(stay_within); - continue; - } - - if (IsValidContextForCaretNavigation(*runner)) - return To<LayoutBlockFlow>(runner); - - runner = runner->PreviousInPostOrder(stay_within); - } - return nullptr; - } - - static LayoutBlockFlow* NextContextOf(const LayoutBlockFlow& start) { - const LayoutObject* stay_within = AncestorToStayWithin(start); - for (LayoutObject* runner = start.NextInPreOrderAfterChildren(stay_within); - runner;) { - if (ShouldNotEnter(*runner)) { - runner = runner->NextInPreOrderAfterChildren(stay_within); - continue; - } - - if (IsValidContextForCaretNavigation(*runner)) - return To<LayoutBlockFlow>(runner); - - runner = runner->NextInPreOrder(stay_within); - } - return nullptr; - } - - private: - static bool IsValidContextForCaretNavigation(LayoutObject& object) { - auto* block_flow = DynamicTo<LayoutBlockFlow>(object); - if (!block_flow || !object.ChildrenInline()) - return false; - - if (block_flow->IsLayoutNGMixin()) { - if (!block_flow->HasNGInlineNodeData() || - !block_flow->GetNGInlineNodeData()->text_content.length()) { - return false; - } - } - - const NGOffsetMapping* mapping = NGInlineNode::GetOffsetMapping(block_flow); - DCHECK(mapping); - - // Reject empty blocks - // TODO(xiaochengh): We may need to support empty block. - if (!mapping->GetText().length()) - return false; - - // Reject if the block has CSS-generated contents only - for (const NGOffsetMappingUnit& unit : mapping->GetUnits()) { - if (unit.GetType() != NGOffsetMappingUnitType::kCollapsed && - unit.AssociatedNode()) - return true; - } - return false; - } - - // TODO(xiaochengh): Move it to another place as it seems general. - static bool IsUserAgentShadowHost(const LayoutObject& object) { - if (!object.NonPseudoNode() || !object.NonPseudoNode()->IsElementNode()) - return false; - const Element& element = *ToElement(object.NonPseudoNode()); - return element.GetShadowRoot() && element.GetShadowRoot()->IsUserAgent(); - } - - static bool ShouldNotEnter(const LayoutObject& object) { - // Heuristic rules of whether caret movement can enter an object. - // TODO(xiaochengh): The rules will likely be extended in the future. - return IsUserAgentShadowHost(object); - } - - static bool ShouldNotExit(const LayoutObject& object) { - // Heuristic rules of whether caret movement can exit an object. - // TODO(xiaochengh): The rules will likely be extended in the future. - return IsUserAgentShadowHost(object); - } - - static const LayoutObject* AncestorToStayWithin( - const LayoutBlockFlow& start) { - for (const LayoutObject* runner = start.Parent(); runner; - runner = runner->Parent()) { - if (ShouldNotExit(*runner)) - return runner; - } - return nullptr; - } -}; - -template <typename Strategy, typename Traversal> -PositionWithAffinityTemplate<Strategy> TraverseOutOfCurrentContext( - const LayoutBlockFlow& context, - NGCaretNavigator::VisualMovementResultType type) { - // TODO(xiaochengh): Handle the case where we move out from an inline block - // into its parent/ancestor inline formatting context. - - const bool is_before_context = - type == NGCaretNavigator::VisualMovementResultType::kBeforeContext; - LayoutBlockFlow* target_context = - is_before_context - ? InlineFormattingContextTraversal::PreviousContextOf(context) - : InlineFormattingContextTraversal::NextContextOf(context); - if (!target_context) - return PositionWithAffinityTemplate<Strategy>(); - - if (!target_context->IsLayoutNGMixin()) { - // We have traversed to a legacy block. - // TODO(xiaochengh): In most cases, we reach here by crossing an editability - // boundary, for which we can simply return null. Investigate if there are - // other cases that require a non-trivial fallback. - return PositionWithAffinityTemplate<Strategy>(); - } - - NGCaretNavigator target_navigator(*target_context); - const NGCaretNavigator::Position result = - is_before_context - ? Traversal::MostBackwardPositionInLastLine(target_navigator) - : Traversal::MostBackwardPositionInFirstLine(target_navigator); - - DCHECK(NGInlineNode::GetOffsetMapping(target_context)); - return FromPositionInDOMTree<Strategy>( - NGInlineNode::GetOffsetMapping(target_context) - ->GetPositionWithAffinity(result)); -} - -template <typename Strategy, typename Traversal> -PositionWithAffinityTemplate<Strategy> TraverseIntoChildContext( - const PositionTemplate<Strategy>& position) { - DCHECK(position.IsNotNull()); - DCHECK(position.IsBeforeAnchor() || position.IsAfterAnchor()) << position; - DCHECK(position.AnchorNode()->GetLayoutObject()) << position; - DCHECK(position.AnchorNode()->GetLayoutObject()->IsLayoutBlockFlow()) - << position; - - auto* target_block = - To<LayoutBlockFlow>(position.AnchorNode()->GetLayoutObject()); - - if (!target_block->IsLayoutNGMixin()) { - // In most cases, we reach here by crossing editing boundary, in which case - // returning null position suffices. - // TODO(xiaochengh): Investigate if there are other cases that need a - // non-trivial legacy fallback. - return PositionWithAffinityTemplate<Strategy>(); - } - - if (!target_block->ChildrenInline() || !target_block->HasNGInlineNodeData() || - !target_block->GetNGInlineNodeData()->text_content.length()) { - // TODO(xiaochengh): Implement when |target_block| has its own child blocks, - // or when |target_block| is empty. - return PositionWithAffinityTemplate<Strategy>(); - } - - NGCaretNavigator caret_navigator(*target_block); - DCHECK(caret_navigator.GetText().length()); - - const NGCaretNavigator::Position position_in_target = - position.IsBeforeAnchor() - ? Traversal::MostBackwardPositionInFirstLine(caret_navigator) - : Traversal::MostBackwardPositionInLastLine(caret_navigator); - - // When moving into inline block, the caret moves over the first character - // seamlessly as if there's no inline block boundary. For example: - // RightPositionOf(foo|<inline-block>bar</inline-block>) - // -> foo<inline-block>b|ar</inline-block> - const NGCaretNavigator::VisualCaretMovementResult result_position = - Traversal::ForwardPositionOf(caret_navigator, position_in_target); - - if (!result_position.IsWithinContext()) { - // TODO(xiaochengh): We reach here if |target_block| starts with an - // enterable child context. Fix it with proper block navigation. - // Also investigate if we reach here for other reasons. - return PositionWithAffinityTemplate<Strategy>(); - } - - const NGOffsetMapping* mapping = NGInlineNode::GetOffsetMapping(target_block); - return FromPositionInDOMTree<Strategy>( - mapping->GetPositionWithAffinity(*result_position.position)); -} - -template <typename Strategy, typename Traversal> -PositionWithAffinityTemplate<Strategy> TraverseWithBidiCaretAffinity( - const PositionWithAffinityTemplate<Strategy>& - start_position_with_affinity) { - const PositionTemplate<Strategy> start_position = - start_position_with_affinity.GetPosition(); - const Position start_position_in_dom = ToPositionInDOMTree(start_position); - if (start_position_in_dom.IsNull()) - return PositionWithAffinityTemplate<Strategy>(); - - LayoutBlockFlow* const context = - NGOffsetMapping::GetInlineFormattingContextOf(start_position_in_dom); - if (!context) { - // We reach here if, e.g., the position is in an empty block. - // TODO(xiaochengh): Investigate if we reach here for other reaseons. -#if DCHECK_IS_ON() - const Node* node = start_position.ComputeContainerNode(); - DCHECK(node) << start_position; - const LayoutObject* object = node->GetLayoutObject(); - DCHECK(object) << start_position; - DCHECK(object->IsLayoutBlockFlow()) << start_position; - DCHECK(!HasRenderedNonAnonymousDescendantsWithHeight(object)) - << start_position; -#endif - const TextDirection block_direction = - DirectionOfEnclosingBlockOf(start_position); - // TODO(xiaochengh): Should return the visual line start/end of the position - // below. - return PositionWithAffinityTemplate<Strategy>( - Traversal::ForwardVisuallyDistinctCandidateOf(block_direction, - start_position)); - } - - DCHECK(context->IsLayoutNGMixin()); - const NGOffsetMapping* mapping = NGInlineNode::GetOffsetMapping(context); - DCHECK(mapping); - - const base::Optional<unsigned> start_offset = - mapping->GetTextContentOffset(start_position_in_dom); - DCHECK(start_offset.has_value()); - - NGCaretNavigator caret_navigator(*context); - const NGCaretNavigator::Position start_caret_position = - caret_navigator.CaretPositionFromTextContentOffsetAndAffinity( - start_offset.value(), start_position_with_affinity.Affinity()); - NGCaretNavigator::VisualCaretMovementResult result_caret_position = - Traversal::ForwardPositionOf(caret_navigator, start_caret_position); - if (result_caret_position.IsWithinContext()) { - DCHECK(result_caret_position.position.has_value()); - return FromPositionInDOMTree<Strategy>(mapping->GetPositionWithAffinity( - result_caret_position.position.value())); - } - - if (result_caret_position.HasEnteredChildContext()) { - DCHECK(result_caret_position.position.has_value()); - const PositionTemplate<Strategy> outside_child_context = - FromPositionInDOMTree<Strategy>( - mapping->GetPositionWithAffinity(*result_caret_position.position)) - .GetPosition(); - - return TraverseIntoChildContext<Strategy, Traversal>(outside_child_context); - } - - // We reach here if we need to move out of the current block. - DCHECK(result_caret_position.IsBeforeContext() || - result_caret_position.IsAfterContext()); - return TraverseOutOfCurrentContext<Strategy, Traversal>( - *context, result_caret_position.type); -} - -template <typename Strategy, typename Traversal> -VisiblePositionTemplate<Strategy> TraverseAlgorithm( - const VisiblePositionTemplate<Strategy>& visible_position) { - DCHECK(visible_position.IsValid()) << visible_position; - - VisiblePositionTemplate<Strategy> result; - if (!RuntimeEnabledFeatures::BidiCaretAffinityEnabled() || - !NGInlineFormattingContextOf(visible_position.DeepEquivalent())) { - const PositionTemplate<Strategy> pos = - TraverseInternalAlgorithm<Strategy, Traversal>(visible_position); - // TODO(yosin) Why can't we move left from the last position in a tree? - if (pos.AtStartOfTree() || pos.AtEndOfTree()) - return VisiblePositionTemplate<Strategy>(); - result = CreateVisiblePosition(pos); - DCHECK_NE(result.DeepEquivalent(), visible_position.DeepEquivalent()); - } else { - const PositionWithAffinityTemplate<Strategy> pos = - TraverseWithBidiCaretAffinity<Strategy, Traversal>( - visible_position.ToPositionWithAffinity()); - if (pos.IsNull()) - return VisiblePositionTemplate<Strategy>(); - result = CreateVisiblePosition(pos); - DCHECK_NE(result.ToPositionWithAffinity(), - visible_position.ToPositionWithAffinity()) - << visible_position; - } - - return Traversal::HonorEditingBoundary( - DirectionOfEnclosingBlockOf(result.DeepEquivalent()), result, - visible_position.DeepEquivalent()); -} - -} // namespace - -VisiblePosition LeftPositionOf(const VisiblePosition& visible_position) { - return TraverseAlgorithm<EditingStrategy, TraversalLeft<EditingStrategy>>( - visible_position); -} - -VisiblePositionInFlatTree LeftPositionOf( - const VisiblePositionInFlatTree& visible_position) { - return TraverseAlgorithm<EditingInFlatTreeStrategy, - TraversalLeft<EditingInFlatTreeStrategy>>( - visible_position); -} - -VisiblePosition RightPositionOf(const VisiblePosition& visible_position) { - return TraverseAlgorithm<EditingStrategy, TraversalRight<EditingStrategy>>( - visible_position); -} - -VisiblePositionInFlatTree RightPositionOf( - const VisiblePositionInFlatTree& visible_position) { - return TraverseAlgorithm<EditingInFlatTreeStrategy, - TraversalRight<EditingInFlatTreeStrategy>>( - visible_position); -} - -} // namespace blink
diff --git a/third_party/blink/renderer/core/editing/selection_modifier_character_test.cc b/third_party/blink/renderer/core/editing/selection_modifier_character_test.cc deleted file mode 100644 index 935e31e..0000000 --- a/third_party/blink/renderer/core/editing/selection_modifier_character_test.cc +++ /dev/null
@@ -1,38 +0,0 @@ -// Copyright 2018 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/renderer/core/editing/selection_modifier.h" - -#include "third_party/blink/renderer/core/editing/testing/editing_test_base.h" - -namespace blink { - -class SelectionModifierCharacterTest : public EditingTestBase {}; - -// Regression test for crbug.com/834850 -TEST_F(SelectionModifierCharacterTest, MoveLeftTowardsListMarkerNoCrash) { - const SelectionInDOMTree selection = - SetSelectionTextToBody("<ol contenteditable><li>|<br></li></ol>"); - SelectionModifier modifier(GetFrame(), selection); - modifier.Modify(SelectionModifyAlteration::kMove, - SelectionModifyDirection::kLeft, TextGranularity::kCharacter); - // Shouldn't crash here. - EXPECT_EQ("<ol contenteditable><li>|<br></li></ol>", - GetSelectionTextFromBody(modifier.Selection().AsSelection())); -} - -// Regression test for crbug.com/861559 -TEST_F(SelectionModifierCharacterTest, MoveRightInDirAutoBidiTextNoCrash) { - const SelectionInDOMTree selection = SetSelectionTextToBody( - u8"<pre contenteditable dir=\"auto\">\u05D0$|A$\u05D0</pre>"); - SelectionModifier modifier(GetFrame(), selection); - modifier.Modify(SelectionModifyAlteration::kMove, - SelectionModifyDirection::kRight, - TextGranularity::kCharacter); - // Shouldn't crash here. - EXPECT_EQ(u8"<pre contenteditable dir=\"auto\">\u05D0|$A$\u05D0</pre>", - GetSelectionTextFromBody(modifier.Selection().AsSelection())); -} - -} // namespace blink
diff --git a/third_party/blink/renderer/core/editing/selection_modifier_test.cc b/third_party/blink/renderer/core/editing/selection_modifier_test.cc index 25d7690..35e4b4a5 100644 --- a/third_party/blink/renderer/core/editing/selection_modifier_test.cc +++ b/third_party/blink/renderer/core/editing/selection_modifier_test.cc
@@ -21,48 +21,6 @@ EXPECT_EQ(SelectionInDOMTree(), modifier.Selection().AsSelection()); } -TEST_F(SelectionModifierTest, leftPositionOf) { - // TODO(editing-dev): The behavior is for editable text only. - // Enable it in LayoutNG phase 2+. - ScopedLayoutNGForTest scoped_layout_ng(false); - - const char* body_content = - "<b id=zero>0</b><p id=host><b id=one>1</b><b id=two>22</b></p><b " - "id=three>333</b>"; - const char* shadow_content = - "<b id=four>4444</b><content select=#two></content><content " - "select=#one></content><b id=five>55555</b>"; - SetBodyContent(body_content); - ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); - - Element* one = GetDocument().getElementById("one"); - Element* two = GetDocument().getElementById("two"); - Element* three = GetDocument().getElementById("three"); - Element* four = shadow_root->getElementById("four"); - Element* five = shadow_root->getElementById("five"); - - EXPECT_EQ( - Position(two->firstChild(), 1), - LeftPositionOf(CreateVisiblePosition(Position(one, 0))).DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(two->firstChild(), 1), - LeftPositionOf(CreateVisiblePosition(PositionInFlatTree(one, 0))) - .DeepEquivalent()); - - EXPECT_EQ( - Position(one->firstChild(), 0), - LeftPositionOf(CreateVisiblePosition(Position(two, 0))).DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(four->firstChild(), 3), - LeftPositionOf(CreateVisiblePosition(PositionInFlatTree(two, 0))) - .DeepEquivalent()); - - EXPECT_EQ(Position(two->firstChild(), 2), - LeftPositionOf(CreateVisiblePosition(Position(three, 0))) - .DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(five->firstChild(), 5), - LeftPositionOf(CreateVisiblePosition(PositionInFlatTree(three, 0))) - .DeepEquivalent()); -} - TEST_F(SelectionModifierTest, MoveForwardByWordNone) { SetBodyContent("abc"); SelectionModifier modifier(GetFrame(), SelectionInDOMTree()); @@ -72,52 +30,4 @@ EXPECT_EQ(SelectionInDOMTree(), modifier.Selection().AsSelection()); } -TEST_F(SelectionModifierTest, rightPositionOf) { - // TODO(editing-dev): The behavior is for editable text only. - // Enable it in LayoutNG phase 2+. - ScopedLayoutNGForTest scoped_layout_ng(false); - - const char* body_content = - "<b id=zero>0</b><p id=host><b id=one>1</b><b id=two>22</b></p><b " - "id=three>333</b>"; - const char* shadow_content = - "<p id=four>4444</p><content select=#two></content><content " - "select=#one></content><p id=five>55555</p>"; - SetBodyContent(body_content); - ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); - - Node* one = GetDocument().getElementById("one")->firstChild(); - Node* two = GetDocument().getElementById("two")->firstChild(); - Node* three = GetDocument().getElementById("three")->firstChild(); - Node* four = shadow_root->getElementById("four")->firstChild(); - Node* five = shadow_root->getElementById("five")->firstChild(); - - EXPECT_EQ(Position(), RightPositionOf(CreateVisiblePosition(Position(one, 1))) - .DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(five, 0), - RightPositionOf(CreateVisiblePosition(PositionInFlatTree(one, 1))) - .DeepEquivalent()); - - EXPECT_EQ(Position(one, 1), - RightPositionOf(CreateVisiblePosition(Position(two, 2))) - .DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(one, 1), - RightPositionOf(CreateVisiblePosition(PositionInFlatTree(two, 2))) - .DeepEquivalent()); - - EXPECT_EQ(Position(five, 0), - RightPositionOf(CreateVisiblePosition(Position(four, 4))) - .DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(two, 0), - RightPositionOf(CreateVisiblePosition(PositionInFlatTree(four, 4))) - .DeepEquivalent()); - - EXPECT_EQ(Position(), - RightPositionOf(CreateVisiblePosition(Position(five, 5))) - .DeepEquivalent()); - EXPECT_EQ(PositionInFlatTree(three, 0), - RightPositionOf(CreateVisiblePosition(PositionInFlatTree(five, 5))) - .DeepEquivalent()); -} - } // namespace blink
diff --git a/third_party/blink/renderer/core/editing/selection_modifier_word.cc b/third_party/blink/renderer/core/editing/selection_modifier_word.cc deleted file mode 100644 index 5bc1048..0000000 --- a/third_party/blink/renderer/core/editing/selection_modifier_word.cc +++ /dev/null
@@ -1,442 +0,0 @@ -/* - * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#include "third_party/blink/renderer/core/editing/selection_modifier.h" - -#include "third_party/blink/renderer/core/editing/editing_utilities.h" -#include "third_party/blink/renderer/core/editing/inline_box_position.h" -#include "third_party/blink/renderer/core/editing/visible_position.h" -#include "third_party/blink/renderer/core/editing/visible_units.h" -#include "third_party/blink/renderer/core/layout/line/inline_text_box.h" -#include "third_party/blink/renderer/core/layout/line/root_inline_box.h" -#include "third_party/blink/renderer/platform/text/text_break_iterator.h" - -namespace blink { - -namespace { - -// This class holds a list of |InlineBox| in logical order. -// TDOO(editing-dev): We should utilize |CachedLogicallyOrderedLeafBoxes| class -// in |CompositeEditCommand::DeleteInsignificantText()|. -class CachedLogicallyOrderedLeafBoxes final { - public: - CachedLogicallyOrderedLeafBoxes() = default; - - const InlineTextBox* PreviousTextBox(const RootInlineBox*, - const InlineTextBox*); - const InlineTextBox* NextTextBox(const RootInlineBox*, const InlineTextBox*); - - size_t size() const { return leaf_boxes_.size(); } - const InlineBox* FirstBox() const { return leaf_boxes_[0]; } - - private: - const Vector<InlineBox*>& CollectBoxes(const RootInlineBox*); - int BoxIndexInLeaves(const InlineTextBox*) const; - - const RootInlineBox* root_inline_box_ = nullptr; - Vector<InlineBox*> leaf_boxes_; -}; - -const InlineTextBox* CachedLogicallyOrderedLeafBoxes::PreviousTextBox( - const RootInlineBox* root, - const InlineTextBox* box) { - if (!root) - return nullptr; - - CollectBoxes(root); - - // If box is null, root is box's previous RootInlineBox, and previousBox is - // the last logical box in root. - int box_index = leaf_boxes_.size() - 1; - if (box) - box_index = BoxIndexInLeaves(box) - 1; - - for (int i = box_index; i >= 0; --i) { - if (leaf_boxes_[i]->IsInlineTextBox()) - return ToInlineTextBox(leaf_boxes_[i]); - } - - return nullptr; -} - -const InlineTextBox* CachedLogicallyOrderedLeafBoxes::NextTextBox( - const RootInlineBox* root, - const InlineTextBox* box) { - if (!root) - return nullptr; - - CollectBoxes(root); - - // If box is null, root is box's next RootInlineBox, and nextBox is the first - // logical box in root. Otherwise, root is box's RootInlineBox, and nextBox is - // the next logical box in the same line. - wtf_size_t next_box_index = 0; - if (box) - next_box_index = BoxIndexInLeaves(box) + 1; - - for (wtf_size_t i = next_box_index; i < leaf_boxes_.size(); ++i) { - if (leaf_boxes_[i]->IsInlineTextBox()) - return ToInlineTextBox(leaf_boxes_[i]); - } - - return nullptr; -} - -const Vector<InlineBox*>& CachedLogicallyOrderedLeafBoxes::CollectBoxes( - const RootInlineBox* root) { - if (root_inline_box_ != root) { - root_inline_box_ = root; - leaf_boxes_.clear(); - root->CollectLeafBoxesInLogicalOrder(leaf_boxes_); - } - return leaf_boxes_; -} - -int CachedLogicallyOrderedLeafBoxes::BoxIndexInLeaves( - const InlineTextBox* box) const { - for (wtf_size_t i = 0; i < leaf_boxes_.size(); ++i) { - if (box == leaf_boxes_[i]) - return i; - } - return 0; -} - -const InlineTextBox* LogicallyPreviousBox( - const VisiblePosition& visible_position, - const InlineTextBox* text_box, - bool& previous_box_in_different_block, - CachedLogicallyOrderedLeafBoxes& leaf_boxes) { - DCHECK(visible_position.IsValid()) << visible_position; - const InlineBox* start_box = text_box; - - const InlineTextBox* previous_box = - leaf_boxes.PreviousTextBox(&start_box->Root(), text_box); - if (previous_box) - return previous_box; - - previous_box = - leaf_boxes.PreviousTextBox(start_box->Root().PrevRootBox(), nullptr); - if (previous_box) - return previous_box; - - for (;;) { - Node* start_node = start_box->GetLineLayoutItem().NonPseudoNode(); - if (!start_node) - break; - - Position position = - PreviousRootInlineBoxCandidatePosition(start_node, visible_position); - if (position.IsNull()) - break; - - const InlineBox* inline_box = - ComputeInlineBoxPosition( - PositionWithAffinity(position, TextAffinity::kDownstream)) - .inline_box; - if (!inline_box) - break; - - const RootInlineBox& previous_root = inline_box->Root(); - previous_box = leaf_boxes.PreviousTextBox(&previous_root, nullptr); - if (previous_box) { - previous_box_in_different_block = true; - return previous_box; - } - - if (!leaf_boxes.size()) - break; - start_box = leaf_boxes.FirstBox(); - } - return nullptr; -} - -const InlineTextBox* LogicallyNextBox( - const VisiblePosition& visible_position, - const InlineTextBox* text_box, - bool& next_box_in_different_block, - CachedLogicallyOrderedLeafBoxes& leaf_boxes) { - DCHECK(visible_position.IsValid()) << visible_position; - const InlineBox* start_box = text_box; - - const InlineTextBox* next_box = - leaf_boxes.NextTextBox(&start_box->Root(), text_box); - if (next_box) - return next_box; - - next_box = leaf_boxes.NextTextBox(start_box->Root().NextRootBox(), nullptr); - if (next_box) - return next_box; - - for (;;) { - Node* start_node = start_box->GetLineLayoutItem().NonPseudoNode(); - if (!start_node) - break; - - Position position = - NextRootInlineBoxCandidatePosition(start_node, visible_position); - if (position.IsNull()) - break; - - const InlineBox* inline_box = - ComputeInlineBoxPosition( - PositionWithAffinity(position, TextAffinity::kDownstream)) - .inline_box; - if (!inline_box) - break; - - const RootInlineBox& next_root = inline_box->Root(); - next_box = leaf_boxes.NextTextBox(&next_root, nullptr); - if (next_box) { - next_box_in_different_block = true; - return next_box; - } - - if (!leaf_boxes.size()) - break; - start_box = leaf_boxes.FirstBox(); - } - return nullptr; -} - -TextBreakIterator* WordBreakIteratorForMinOffsetBoundary( - const VisiblePosition& visible_position, - const InlineTextBox* text_box, - int& previous_box_length, - bool& previous_box_in_different_block, - Vector<UChar, 1024>& string, - CachedLogicallyOrderedLeafBoxes& leaf_boxes) { - DCHECK(visible_position.IsValid()) << visible_position; - previous_box_in_different_block = false; - - // TODO(editing-dev) Handle the case when we don't have an inline text box. - const InlineTextBox* previous_box = LogicallyPreviousBox( - visible_position, text_box, previous_box_in_different_block, leaf_boxes); - - int len = 0; - string.clear(); - if (previous_box) { - previous_box_length = previous_box->Len(); - previous_box->GetLineLayoutItem().GetText().AppendTo( - string, previous_box->Start(), previous_box_length); - len += previous_box_length; - } - text_box->GetLineLayoutItem().GetText().AppendTo(string, text_box->Start(), - text_box->Len()); - len += text_box->Len(); - - return WordBreakIterator(base::make_span(string).first(len)); -} - -TextBreakIterator* WordBreakIteratorForMaxOffsetBoundary( - const VisiblePosition& visible_position, - const InlineTextBox* text_box, - bool& next_box_in_different_block, - Vector<UChar, 1024>& string, - CachedLogicallyOrderedLeafBoxes& leaf_boxes) { - DCHECK(visible_position.IsValid()) << visible_position; - next_box_in_different_block = false; - - // TODO(editing-dev) Handle the case when we don't have an inline text box. - const InlineTextBox* next_box = LogicallyNextBox( - visible_position, text_box, next_box_in_different_block, leaf_boxes); - - int len = 0; - string.clear(); - text_box->GetLineLayoutItem().GetText().AppendTo(string, text_box->Start(), - text_box->Len()); - len += text_box->Len(); - if (next_box) { - next_box->GetLineLayoutItem().GetText().AppendTo(string, next_box->Start(), - next_box->Len()); - len += next_box->Len(); - } - - return WordBreakIterator(base::make_span(string).first(len)); -} - -bool IsLogicalStartOfWord(TextBreakIterator* iter, - int position, - bool hard_line_break) { - bool boundary = hard_line_break ? true : iter->isBoundary(position); - if (!boundary) - return false; - - // isWordTextBreak returns true after moving across a word and false after - // moving across a punctuation/space. - // If |iter| is already at the end before |iter->following| is called, - // IsWordTextBreak behaves differently depending on the ICU version. We have - // to check if |iter| is at the end, first. - // See https://ssl.icu-project.org/trac/ticket/13447 . - if (iter->following(position) == TextBreakIterator::DONE) - return false; - return IsWordTextBreak(iter); -} - -bool IslogicalEndOfWord(TextBreakIterator* iter, - int position, - bool hard_line_break) { - bool boundary = iter->isBoundary(position); - return (hard_line_break || boundary) && IsWordTextBreak(iter); -} - -enum CursorMovementDirection { kMoveLeft, kMoveRight }; - -VisiblePosition VisualWordPosition(const VisiblePosition& visible_position, - CursorMovementDirection direction, - bool skips_space_when_moving_right) { - DCHECK(visible_position.IsValid()) << visible_position; - if (visible_position.IsNull()) - return VisiblePosition(); - - TextDirection block_direction = - DirectionOfEnclosingBlockOf(visible_position.DeepEquivalent()); - const InlineBox* previously_visited_box = nullptr; - VisiblePosition current = visible_position; - TextBreakIterator* iter = nullptr; - - CachedLogicallyOrderedLeafBoxes leaf_boxes; - Vector<UChar, 1024> string; - - for (;;) { - VisiblePosition adjacent_character_position = direction == kMoveRight - ? RightPositionOf(current) - : LeftPositionOf(current); - if (adjacent_character_position.DeepEquivalent() == - current.DeepEquivalent() || - adjacent_character_position.IsNull()) - return VisiblePosition(); - - InlineBoxPosition box_position = ComputeInlineBoxPosition( - PositionWithAffinity(adjacent_character_position.DeepEquivalent(), - TextAffinity::kUpstream)); - const InlineBox* box = box_position.inline_box; - int offset_in_box = box_position.offset_in_box; - - if (!box) - break; - if (!box->IsInlineTextBox()) { - current = adjacent_character_position; - continue; - } - - const InlineTextBox* text_box = ToInlineTextBox(box); - int previous_box_length = 0; - bool previous_box_in_different_block = false; - bool next_box_in_different_block = false; - bool moving_into_new_box = previously_visited_box != box; - - if (offset_in_box == box->CaretMinOffset()) { - iter = WordBreakIteratorForMinOffsetBoundary( - visible_position, text_box, previous_box_length, - previous_box_in_different_block, string, leaf_boxes); - } else if (offset_in_box == box->CaretMaxOffset()) { - iter = WordBreakIteratorForMaxOffsetBoundary(visible_position, text_box, - next_box_in_different_block, - string, leaf_boxes); - } else if (moving_into_new_box) { - iter = WordBreakIterator(text_box->GetLineLayoutItem().GetText(), - text_box->Start(), text_box->Len()); - previously_visited_box = box; - } - - if (!iter) - break; - - iter->first(); - int offset_in_iterator = - offset_in_box - text_box->Start() + previous_box_length; - - bool is_word_break; - bool box_has_same_directionality_as_block = - box->Direction() == block_direction; - bool moving_backward = - (direction == kMoveLeft && box->Direction() == TextDirection::kLtr) || - (direction == kMoveRight && box->Direction() == TextDirection::kRtl); - if ((skips_space_when_moving_right && - box_has_same_directionality_as_block) || - (!skips_space_when_moving_right && moving_backward)) { - bool logical_start_in_layout_object = - offset_in_box == static_cast<int>(text_box->Start()) && - previous_box_in_different_block; - is_word_break = IsLogicalStartOfWord(iter, offset_in_iterator, - logical_start_in_layout_object); - } else { - bool logical_end_in_layout_object = - offset_in_box == - static_cast<int>(text_box->Start() + text_box->Len()) && - next_box_in_different_block; - is_word_break = IslogicalEndOfWord(iter, offset_in_iterator, - logical_end_in_layout_object); - } - - if (is_word_break) { - return AdjustBackwardPositionToAvoidCrossingEditingBoundaries( - adjacent_character_position, visible_position.DeepEquivalent()); - } - - current = adjacent_character_position; - } - return VisiblePosition(); -} - -} // namespace - -VisiblePosition SelectionModifier::LeftWordPosition( - const VisiblePosition& visible_position, - bool skips_space_when_moving_right) { - DCHECK(visible_position.IsValid()) << visible_position; - const VisiblePosition& left_word_break = VisualWordPosition( - visible_position, kMoveLeft, skips_space_when_moving_right); - if (left_word_break.IsNotNull()) - return left_word_break; - // TODO(editing-dev) How should we handle a non-editable position? - if (!IsEditablePosition(visible_position.DeepEquivalent())) - return left_word_break; - const TextDirection block_direction = - DirectionOfEnclosingBlockOf(visible_position.DeepEquivalent()); - return block_direction == TextDirection::kLtr - ? StartOfEditableContent(visible_position) - : EndOfEditableContent(visible_position); -} - -VisiblePosition SelectionModifier::RightWordPosition( - const VisiblePosition& visible_position, - bool skips_space_when_moving_right) { - DCHECK(visible_position.IsValid()) << visible_position; - const VisiblePosition& right_word_break = VisualWordPosition( - visible_position, kMoveRight, skips_space_when_moving_right); - if (right_word_break.IsNotNull()) - return right_word_break; - // TODO(editing-dev) How should we handle a non-editable position? - if (!IsEditablePosition(visible_position.DeepEquivalent())) - return right_word_break; - const TextDirection block_direction = - blink::DirectionOfEnclosingBlockOf(visible_position.DeepEquivalent()); - return block_direction == TextDirection::kLtr - ? EndOfEditableContent(visible_position) - : StartOfEditableContent(visible_position); -} - -} // namespace blink
diff --git a/third_party/blink/renderer/core/editing/selection_modifier_word_test.cc b/third_party/blink/renderer/core/editing/selection_modifier_word_test.cc deleted file mode 100644 index 6f51811..0000000 --- a/third_party/blink/renderer/core/editing/selection_modifier_word_test.cc +++ /dev/null
@@ -1,32 +0,0 @@ -// Copyright 2018 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/renderer/core/editing/selection_modifier.h" - -#include "third_party/blink/renderer/core/editing/testing/editing_test_base.h" - -namespace blink { - -class SelectionModifierWordTest : public EditingTestBase {}; - -// Regression test for crbug.com/856417 -TEST_F(SelectionModifierWordTest, MoveIntoInlineBlockWithBidiNoHang) { - const SelectionInDOMTree selection = SetSelectionTextToBody( - "<div contenteditable>" - "<span>א|בג</span>" - "<span style=\"display: inline-block\">foo</span>" - "</div>"); - SelectionModifier modifier(GetFrame(), selection); - modifier.Modify(SelectionModifyAlteration::kMove, - SelectionModifyDirection::kRight, TextGranularity::kWord); - // Shouldn't hang here. - EXPECT_EQ( - "<div contenteditable>" - "<span>\xD7\x90\xD7\x91\xD7\x92</span>" - "<span style=\"display: inline-block\">foo|</span>" - "</div>", - GetSelectionTextFromBody(modifier.Selection().AsSelection())); -} - -} // namespace blink
diff --git a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc index 381c08f5..beb848a 100644 --- a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc +++ b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
@@ -586,7 +586,10 @@ FrameLoadRequest frame_request(frame->GetDocument(), request.ToResourceRequest(), target); - frame->Loader().StartNavigation(frame_request); + Frame* target_frame = + frame->Tree().FindOrCreateFrameForNavigation(frame_request).frame; + if (target_frame) + target_frame->Navigate(frame_request, WebFrameLoadType::kStandard); } bool WebPluginContainerImpl::IsRectTopmost(const WebRect& rect) {
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc index 6e8f9663..9b4e994 100644 --- a/third_party/blink/renderer/core/exported/web_view_test.cc +++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -3507,9 +3507,7 @@ FrameLoadRequest request_with_target_start( local_frame->GetDocument(), web_url_request_with_target_start.ToResourceRequest(), "_top"); - local_frame->Loader().StartNavigation(request_with_target_start); - frame_test_helpers::PumpPendingRequestsForFrameToLoad( - To<WebLocalFrameImpl>(web_view_impl->MainFrame()->FirstChild())); + local_frame->Tree().FindOrCreateFrameForNavigation(request_with_target_start); EXPECT_FALSE(client.DidFocusCalled()); web_view_helper.Reset(); // Remove dependency on locally scoped client. @@ -3527,8 +3525,8 @@ FrameLoadRequest request(nullptr, web_url_request.ToResourceRequest(), "_blank"); To<LocalFrame>(web_view_impl->GetPage()->MainFrame()) - ->Loader() - .StartNavigation(request); + ->Tree() + .FindOrCreateFrameForNavigation(request); ASSERT_TRUE(client.CreatedWebView()); EXPECT_FALSE(client.DidFocusCalled()); @@ -3540,8 +3538,8 @@ To<LocalFrame>(static_cast<WebViewImpl*>(client.CreatedWebView()) ->GetPage() ->MainFrame()) - ->Loader() - .StartNavigation(request_with_target_start); + ->Tree() + .FindOrCreateFrameForNavigation(request_with_target_start); EXPECT_TRUE(client.DidFocusCalled()); web_view_helper.Reset(); // Remove dependency on locally scoped client. @@ -3569,33 +3567,12 @@ WebView* web_view_ = nullptr; }; -class NavigationPolicyWebFrameClient - : public frame_test_helpers::TestWebFrameClient { - public: - NavigationPolicyWebFrameClient() = default; - - void BeginNavigation(std::unique_ptr<WebNavigationInfo> info) override { - begin_navigation_called_ = true; - last_navigation_policy_ = info->navigation_policy; - } - - bool BeginNavigationWasCalled() const { return begin_navigation_called_; } - WebNavigationPolicy LastNavigationPolicy() const { - return last_navigation_policy_; - } - - private: - WebNavigationPolicy last_navigation_policy_ = kWebNavigationPolicyCurrentTab; - bool begin_navigation_called_ = false; -}; - TEST_F(WebViewTest, ReuseExistingWindowOnCreateViewUsesCorrectNavigationPolicy) { ViewReusingWebViewClient view_client; - NavigationPolicyWebFrameClient frame_client; frame_test_helpers::WebViewHelper web_view_helper; WebViewImpl* web_view_impl = - web_view_helper.Initialize(&frame_client, &view_client); + web_view_helper.Initialize(nullptr, &view_client); view_client.SetWebView(web_view_impl); LocalFrame* frame = To<LocalFrame>(web_view_impl->GetPage()->MainFrame()); @@ -3604,10 +3581,10 @@ WebURLRequest web_url_request(KURL("about:blank")); FrameLoadRequest request(frame->GetDocument(), web_url_request.ToResourceRequest(), "_blank"); - frame->Loader().StartNavigation(request); - ASSERT_TRUE(frame_client.BeginNavigationWasCalled()); - EXPECT_EQ(kWebNavigationPolicyCurrentTab, - frame_client.LastNavigationPolicy()); + FrameTree::FindResult result = + frame->Tree().FindOrCreateFrameForNavigation(request); + EXPECT_EQ(frame, result.frame); + EXPECT_EQ(kNavigationPolicyCurrentTab, request.GetNavigationPolicy()); } TEST_F(WebViewTest, DispatchesFocusOutFocusInOnViewToggleFocus) {
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc index cb1a6950..c2631b41 100644 --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -93,7 +93,6 @@ #include "third_party/blink/renderer/core/loader/document_loader.h" #include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/create_window.h" -#include "third_party/blink/renderer/core/page/focus_controller.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" @@ -1523,22 +1522,9 @@ if (!result.frame) return nullptr; - if (!result.new_window) { - Page* target_page = result.frame->GetPage(); - if (target_page == GetFrame()->GetPage()) - target_page->GetFocusController().SetFocusedFrame(result.frame); - else - target_page->GetChromeClient().Focus(GetFrame()); - // Focusing can fire onblur, so check for detach. - if (!result.frame->GetPage()) - return nullptr; - } - if ((!completed_url.IsEmpty() || result.new_window) && !result.frame->DomWindow()->IsInsecureScriptAccess(*incumbent_window, completed_url)) { - frame_request.ClearFrameName(); - frame_request.SetNavigationPolicy(kNavigationPolicyCurrentTab); result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); }
diff --git a/third_party/blink/renderer/core/frame/remote_frame.cc b/third_party/blink/renderer/core/frame/remote_frame.cc index 1f218a1..6418063 100644 --- a/third_party/blink/renderer/core/frame/remote_frame.cc +++ b/third_party/blink/renderer/core/frame/remote_frame.cc
@@ -84,9 +84,8 @@ } // The process where this frame actually lives won't have sufficient - // information to determine correct referrer and upgrade the url, since it - // won't have access to the originDocument. Do it now. - FrameLoader::SetReferrerForFrameRequest(frame_request); + // information to upgrade the url, since it won't have access to the + // originDocument. Do it now. const FetchClientSettingsObject* fetch_client_settings_object = nullptr; if (frame_request.OriginDocument()) { fetch_client_settings_object = &frame_request.OriginDocument()
diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc index f01eb59..2702288 100644 --- a/third_party/blink/renderer/core/frame/reporting_context.cc +++ b/third_party/blink/renderer/core/frame/reporting_context.cc
@@ -141,17 +141,16 @@ url, endpoint, body->documentURL() ? body->documentURL() : "", - body->referrer() ? body->referrer() : "", - body->effectiveDirective() ? body->effectiveDirective() : "", + body->referrer(), + body->blockedURL(), body->effectiveDirective() ? body->effectiveDirective() : "", body->originalPolicy() ? body->originalPolicy() : "", + body->sourceFile(), + body->sample(), body->disposition() ? body->disposition() : "", - body->blockedURL() ? body->blockedURL() : "", - line_number, - column_number, - body->sourceFile() ? body->sourceFile() : "", body->statusCode(), - body->sample() ? body->sample() : ""); + line_number, + column_number); } else if (type == "deprecation") { // Send the deprecation report. const DeprecationReportBody* body =
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 378e72d..248dc820 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -152,8 +152,10 @@ } void HTMLCanvasElement::Dispose() { - if (PlaceholderFrame()) + if (PlaceholderFrame()) { ReleasePlaceholderFrame(); + UnregisterPlaceholder(); + } // We need to drop frame dispatcher, to prevent mojo calls from completing. frame_dispatcher_ = nullptr;
diff --git a/third_party/blink/renderer/core/html/forms/html_form_element.cc b/third_party/blink/renderer/core/html/forms/html_form_element.cc index 1333415c..a9914db 100644 --- a/third_party/blink/renderer/core/html/forms/html_form_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_element.cc
@@ -493,8 +493,14 @@ frame_load_request.SetNavigationPolicy(submission->GetNavigationPolicy()); frame_load_request.GetResourceRequest().SetHasUserGesture( LocalFrame::HasTransientUserActivation(GetDocument().GetFrame())); - GetDocument().GetFrame()->Navigate(frame_load_request, - WebFrameLoadType::kStandard); + + Frame* target_frame = GetDocument() + .GetFrame() + ->Tree() + .FindOrCreateFrameForNavigation(frame_load_request) + .frame; + if (target_frame) + target_frame->Navigate(frame_load_request, WebFrameLoadType::kStandard); } void HTMLFormElement::reset() {
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc index b8b14d4c..ef13662a 100644 --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -431,7 +431,7 @@ target.IsEmpty() ? GetDocument().BaseTarget() : target); frame_request.SetNavigationPolicy(NavigationPolicyFromEvent(&event)); if (HasRel(kRelationNoReferrer)) { - frame_request.SetShouldSendReferrer(kNeverSendReferrer); + frame_request.SetNoReferrer(); frame_request.SetNoOpener(); } if (HasRel(kRelationNoOpener)) @@ -446,11 +446,13 @@ event.isTrusted() ? WebTriggeringEventInfo::kFromTrustedEvent : WebTriggeringEventInfo::kFromUntrustedEvent); frame_request.SetInputStartTime(event.PlatformTimeStamp()); - // TODO(japhet): Link clicks can be emulated via JS without a user gesture. - // Why doesn't this go through NavigationScheduler? frame->MaybeLogAdClickNavigation(); - frame->Loader().StartNavigation(frame_request, WebFrameLoadType::kStandard); + + Frame* target_frame = + frame->Tree().FindOrCreateFrameForNavigation(frame_request).frame; + if (target_frame) + target_frame->Navigate(frame_request, WebFrameLoadType::kStandard); } bool IsEnterKeyKeydownEvent(Event& event) {
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc index 06832d52..09faab9 100644 --- a/third_party/blink/renderer/core/layout/layout_box.cc +++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -473,8 +473,10 @@ cc::ScrollSnapType new_snap_type = new_style && allows_snap_container ? new_style->GetScrollSnapType() : cc::ScrollSnapType(); - if (old_snap_type != new_snap_type) - snap_coordinator->SnapContainerDidChange(*this, new_snap_type); + bool is_removed = !new_style; + if (old_snap_type != new_snap_type || is_removed) { + snap_coordinator->SnapContainerDidChange(*this, is_removed); + } cc::ScrollSnapAlign old_snap_align = old_style ? old_style->GetScrollSnapAlign() : cc::ScrollSnapAlign();
diff --git a/third_party/blink/renderer/core/loader/frame_load_request.cc b/third_party/blink/renderer/core/loader/frame_load_request.cc index df9520a0..7cd61ef3 100644 --- a/third_party/blink/renderer/core/loader/frame_load_request.cc +++ b/third_party/blink/renderer/core/loader/frame_load_request.cc
@@ -10,10 +10,37 @@ #include "third_party/blink/renderer/core/fileapi/public_url_manager.h" #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h" +#include "third_party/blink/renderer/platform/weborigin/security_policy.h" #include "third_party/blink/renderer/platform/wtf/text/atomic_string.h" namespace blink { +static void SetReferrerForRequest(Document* origin_document, + ResourceRequest& request) { + DCHECK(origin_document); + + // Always use the initiating document to generate the referrer. We need to + // generateReferrer(), because we haven't enforced + // network::mojom::ReferrerPolicy or https->http referrer suppression yet. + String referrer_to_use = request.ReferrerString(); + network::mojom::ReferrerPolicy referrer_policy_to_use = + request.GetReferrerPolicy(); + + if (referrer_to_use == Referrer::ClientReferrerString()) + referrer_to_use = origin_document->OutgoingReferrer(); + + if (referrer_policy_to_use == network::mojom::ReferrerPolicy::kDefault) + referrer_policy_to_use = origin_document->GetReferrerPolicy(); + + Referrer referrer = SecurityPolicy::GenerateReferrer( + referrer_policy_to_use, request.Url(), referrer_to_use); + + // TODO(domfarolino): Stop storing ResourceRequest's generated referrer as a + // header and instead use a separate member. See https://crbug.com/850813. + request.SetHttpReferrer(referrer); + request.SetHTTPOriginToMatchReferrerIfNeeded(); +} + FrameLoadRequest::FrameLoadRequest(Document* origin_document, const ResourceRequest& resource_request) : FrameLoadRequest(origin_document, resource_request, AtomicString()) {} @@ -54,6 +81,8 @@ origin_document->GetPublicURLManager().Resolve( resource_request.Url(), MakeRequest(&blob_url_token_->data)); } + + SetReferrerForRequest(origin_document_, resource_request_); } }
diff --git a/third_party/blink/renderer/core/loader/frame_load_request.h b/third_party/blink/renderer/core/loader/frame_load_request.h index cd998c52..f998781 100644 --- a/third_party/blink/renderer/core/loader/frame_load_request.h +++ b/third_party/blink/renderer/core/loader/frame_load_request.h
@@ -98,9 +98,6 @@ ShouldSendReferrer GetShouldSendReferrer() const { return should_send_referrer_; } - void SetShouldSendReferrer(ShouldSendReferrer should_send_referrer) { - should_send_referrer_ = should_send_referrer; - } const AtomicString& HrefTranslate() const { return href_translate_; } void SetHrefTranslate(const AtomicString& translate) { @@ -141,6 +138,11 @@ bool IsWindowOpen() const { return is_window_open_; } void SetNoOpener() { window_features_.noopener = true; } + void SetNoReferrer() { + should_send_referrer_ = kNeverSendReferrer; + resource_request_.ClearHTTPReferrer(); + resource_request_.ClearHTTPOrigin(); + } private: Member<Document> origin_document_;
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc index 9ec7110..9ccacda 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.cc +++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -497,38 +497,6 @@ TakeObjectSnapshot(); } -// static -void FrameLoader::SetReferrerForFrameRequest(FrameLoadRequest& frame_request) { - ResourceRequest& request = frame_request.GetResourceRequest(); - Document* origin_document = frame_request.OriginDocument(); - - if (!origin_document) - return; - if (frame_request.GetShouldSendReferrer() == kNeverSendReferrer) - return; - - // Always use the initiating document to generate the referrer. We need to - // generateReferrer(), because we haven't enforced - // network::mojom::ReferrerPolicy or https->http referrer suppression yet. - String referrer_to_use = request.ReferrerString(); - network::mojom::ReferrerPolicy referrer_policy_to_use = - request.GetReferrerPolicy(); - - if (referrer_to_use == Referrer::ClientReferrerString()) - referrer_to_use = origin_document->OutgoingReferrer(); - - if (referrer_policy_to_use == network::mojom::ReferrerPolicy::kDefault) - referrer_policy_to_use = origin_document->GetReferrerPolicy(); - - Referrer referrer = SecurityPolicy::GenerateReferrer( - referrer_policy_to_use, request.Url(), referrer_to_use); - - // TODO(domfarolino): Stop storing ResourceRequest's generated referrer as a - // header and instead use a separate member. See https://crbug.com/850813. - request.SetHttpReferrer(referrer); - request.SetHTTPOriginToMatchReferrerIfNeeded(); -} - WebFrameLoadType FrameLoader::DetermineFrameLoadType( const KURL& url, const AtomicString& http_method, @@ -581,13 +549,13 @@ return WebFrameLoadType::kStandard; } -bool FrameLoader::PrepareRequestForThisFrame(FrameLoadRequest& request) { +bool FrameLoader::AllowRequestForThisFrame(const FrameLoadRequest& request) { // If no origin Document* was specified, skip remaining security checks and // assume the caller has fully initialized the FrameLoadRequest. if (!request.OriginDocument()) return true; - KURL url = request.GetResourceRequest().Url(); + const KURL& url = request.GetResourceRequest().Url(); if (url.ProtocolIsJavaScript()) { Document* origin_document = request.OriginDocument(); // Check the CSP of the caller (the "source browsing context") if required, @@ -669,6 +637,8 @@ CHECK(!IsBackForwardLoadType(frame_load_type)); DCHECK(passed_request.TriggeringEventInfo() != WebTriggeringEventInfo::kUnknown); + // Finding the correct frame must happen before calling StartNavigation(). + DCHECK(passed_request.FrameName().IsEmpty()); DCHECK(frame_->GetDocument()); if (HTMLFrameOwnerElement* element = frame_->DeprecatedLocalOwner()) @@ -682,31 +652,9 @@ resource_request.SetHasUserGesture( LocalFrame::HasTransientUserActivation(frame_)); - if (!PrepareRequestForThisFrame(request)) + if (!AllowRequestForThisFrame(request)) return; - SetReferrerForFrameRequest(request); - - // A GetNavigationPolicy() value other than kNavigationPolicyCurrentTab at - // this point indicates that a user event modified the navigation policy - // (e.g., a ctrl-click). Let the user's action override any target attribute. - if (request.GetNavigationPolicy() == kNavigationPolicyCurrentTab) { - Frame* target_frame = - frame_->Tree().FindOrCreateFrameForNavigation(request).frame; - request.SetNavigationPolicy(kNavigationPolicyCurrentTab); - if (!target_frame) - return; - if (target_frame != frame_) { - bool was_in_same_page = target_frame->GetPage() == frame_->GetPage(); - request.ClearFrameName(); - target_frame->Navigate(request, frame_load_type); - Page* page = target_frame->GetPage(); - if (!was_in_same_page && page) - page->GetChromeClient().Focus(frame_); - return; - } - } - // Block renderer-initiated loads of data: and filesystem: URLs in the top // frame. //
diff --git a/third_party/blink/renderer/core/loader/frame_loader.h b/third_party/blink/renderer/core/loader/frame_loader.h index 308f83ef..00816e72 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.h +++ b/third_party/blink/renderer/core/loader/frame_loader.h
@@ -208,8 +208,6 @@ void Trace(blink::Visitor*); - static void SetReferrerForFrameRequest(FrameLoadRequest&); - void DidDropNavigation(); void MarkAsLoading(); @@ -219,7 +217,7 @@ bool ShouldReuseDefaultView(const KURL&, const ContentSecurityPolicy*); private: - bool PrepareRequestForThisFrame(FrameLoadRequest&); + bool AllowRequestForThisFrame(const FrameLoadRequest&); WebFrameLoadType DetermineFrameLoadType(const KURL& url, const AtomicString& http_method, Document* origin_document,
diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/blink/renderer/core/page/frame_tree.cc index d620693..30087333 100644 --- a/third_party/blink/renderer/core/page/frame_tree.cc +++ b/third_party/blink/renderer/core/page/frame_tree.cc
@@ -28,7 +28,9 @@ #include "third_party/blink/renderer/core/frame/remote_frame.h" #include "third_party/blink/renderer/core/frame/remote_frame_view.h" #include "third_party/blink/renderer/core/frame/use_counter.h" +#include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/create_window.h" +#include "third_party/blink/renderer/core/page/focus_controller.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/platform/wtf/assertions.h" #include "third_party/blink/renderer/platform/wtf/text/cstring.h" @@ -195,15 +197,36 @@ DCHECK(IsA<LocalFrame>(this_frame_.Get())); LocalFrame* current_frame = To<LocalFrame>(this_frame_.Get()); + // A GetNavigationPolicy() value other than kNavigationPolicyCurrentTab at + // this point indicates that a user event modified the navigation policy + // (e.g., a ctrl-click). Let the user's action override any target attribute. + if (request.GetNavigationPolicy() != kNavigationPolicyCurrentTab) { + request.ClearFrameName(); + return FindResult(current_frame, false); + } + Frame* frame = FindFrameForNavigationInternal(request); bool new_window = false; if (!frame) { frame = CreateNewWindow(*current_frame, request); new_window = true; + // CreateNewWindow() might have modified NavigationPolicy. + // Set it back now that the new window is known to be the right one. + request.SetNavigationPolicy(kNavigationPolicyCurrentTab); } else if (!current_frame->CanNavigate(*frame)) { frame = nullptr; } + request.ClearFrameName(); + if (frame && !new_window) { + if (frame->GetPage() == current_frame->GetPage()) + frame->GetPage()->GetFocusController().SetFocusedFrame(frame); + else + frame->GetPage()->GetChromeClient().Focus(current_frame); + // Focusing can fire onblur, so check for detach. + if (!frame->GetPage()) + frame = nullptr; + } return FindResult(frame, new_window); }
diff --git a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc index 3dedf85a2..1d51cad 100644 --- a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc +++ b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.cc
@@ -103,66 +103,70 @@ } void SnapCoordinator::UpdateSnapContainerData(LayoutBox& snap_container) { - if (snap_container.Style()->GetScrollSnapType().is_none) - return; - cc::SnapContainerData snap_container_data( GetPhysicalSnapType(snap_container)); - ScrollableArea* scrollable_area = ScrollableAreaForSnapping(snap_container); - if (!scrollable_area) - return; - FloatPoint max_position = scrollable_area->ScrollOffsetToPosition( - scrollable_area->MaximumScrollOffset()); - snap_container_data.set_max_position( - gfx::ScrollOffset(max_position.X(), max_position.Y())); + // When snap type is 'none' we don't perform any snapping so there is no need + // to keep the area data up to date. So just update the type and skip updating + // areas as an optimization. + if (!snap_container_data.scroll_snap_type().is_none) { + ScrollableArea* scrollable_area = ScrollableAreaForSnapping(snap_container); + if (!scrollable_area) + return; + FloatPoint max_position = scrollable_area->ScrollOffsetToPosition( + scrollable_area->MaximumScrollOffset()); + snap_container_data.set_max_position( + gfx::ScrollOffset(max_position.X(), max_position.Y())); - // Scroll-padding represents inward offsets from the corresponding edge of the - // scrollport. https://drafts.csswg.org/css-scroll-snap-1/#scroll-padding - // Scrollport is the visual viewport of the scroll container (through which - // the scrollable overflow region can be viewed) coincides with its padding - // box. https://drafts.csswg.org/css-overflow-3/#scrollport. So we use the - // LayoutRect of the padding box here. The coordinate is relative to the - // container's border box. - LayoutRect container_rect(snap_container.PhysicalPaddingBoxRect()); + // Scroll-padding represents inward offsets from the corresponding edge of + // the scrollport. + // https://drafts.csswg.org/css-scroll-snap-1/#scroll-padding Scrollport is + // the visual viewport of the scroll container (through which the scrollable + // overflow region can be viewed) coincides with its padding box. + // https://drafts.csswg.org/css-overflow-3/#scrollport. So we use the + // LayoutRect of the padding box here. The coordinate is relative to the + // container's border box. + LayoutRect container_rect(snap_container.PhysicalPaddingBoxRect()); - const ComputedStyle* container_style = snap_container.Style(); - LayoutRectOutsets container_padding( - // The percentage of scroll-padding is different from that of normal - // padding, as scroll-padding resolves the percentage against - // corresponding dimension of the scrollport[1], while the normal padding - // resolves that against "width".[2,3] - // We use MinimumValueForLength here to ensure kAuto is resolved to - // LayoutUnit() which is the correct behavior for padding. - // [1] https://drafts.csswg.org/css-scroll-snap-1/#scroll-padding - // "relative to the corresponding dimension of the scroll container’s - // scrollport" - // [2] https://drafts.csswg.org/css-box/#padding-props - // [3] See for example LayoutBoxModelObject::ComputedCSSPadding where it - // uses |MinimumValueForLength| but against the "width". - MinimumValueForLength(container_style->ScrollPaddingTop(), - container_rect.Height()), - MinimumValueForLength(container_style->ScrollPaddingRight(), - container_rect.Width()), - MinimumValueForLength(container_style->ScrollPaddingBottom(), - container_rect.Height()), - MinimumValueForLength(container_style->ScrollPaddingLeft(), - container_rect.Width())); - container_rect.Contract(container_padding); - snap_container_data.set_rect(FloatRect(container_rect)); + const ComputedStyle* container_style = snap_container.Style(); + LayoutRectOutsets container_padding( + // The percentage of scroll-padding is different from that of normal + // padding, as scroll-padding resolves the percentage against + // corresponding dimension of the scrollport[1], while the normal + // padding resolves that against "width".[2,3] We use + // MinimumValueForLength here to ensure kAuto is resolved to + // LayoutUnit() which is the correct behavior for padding. + // [1] https://drafts.csswg.org/css-scroll-snap-1/#scroll-padding + // "relative to the corresponding dimension of the scroll + // container’s + // scrollport" + // [2] https://drafts.csswg.org/css-box/#padding-props + // [3] See for example LayoutBoxModelObject::ComputedCSSPadding where it + // uses |MinimumValueForLength| but against the "width". + MinimumValueForLength(container_style->ScrollPaddingTop(), + container_rect.Height()), + MinimumValueForLength(container_style->ScrollPaddingRight(), + container_rect.Width()), + MinimumValueForLength(container_style->ScrollPaddingBottom(), + container_rect.Height()), + MinimumValueForLength(container_style->ScrollPaddingLeft(), + container_rect.Width())); + container_rect.Contract(container_padding); + snap_container_data.set_rect(FloatRect(container_rect)); - if (snap_container_data.scroll_snap_type().strictness == - cc::SnapStrictness::kProximity) { - LayoutSize size = container_rect.Size(); - size.Scale(kProximityRatio); - gfx::ScrollOffset range(size.Width().ToFloat(), size.Height().ToFloat()); - snap_container_data.set_proximity_range(range); - } + if (snap_container_data.scroll_snap_type().strictness == + cc::SnapStrictness::kProximity) { + LayoutSize size = container_rect.Size(); + size.Scale(kProximityRatio); + gfx::ScrollOffset range(size.Width().ToFloat(), size.Height().ToFloat()); + snap_container_data.set_proximity_range(range); + } - if (SnapAreaSet* snap_areas = snap_container.SnapAreas()) { - for (const LayoutBox* snap_area : *snap_areas) { - snap_container_data.AddSnapAreaData( - CalculateSnapAreaData(*snap_area, snap_container)); + if (SnapAreaSet* snap_areas = snap_container.SnapAreas()) { + for (const LayoutBox* snap_area : *snap_areas) { + snap_container_data.AddSnapAreaData( + CalculateSnapAreaData(*snap_area, snap_container)); + } } } @@ -329,16 +333,29 @@ return true; } -void SnapCoordinator::SnapContainerDidChange( - LayoutBox& snap_container, - cc::ScrollSnapType scroll_snap_type) { - snap_container.SetNeedsPaintPropertyUpdate(); - if (scroll_snap_type.is_none) { +void SnapCoordinator::SnapContainerDidChange(LayoutBox& snap_container, + bool is_removed) { + if (is_removed) { snap_container_map_.erase(&snap_container); - snap_container.ClearSnapAreas(); return; } + bool is_scroll_container = + snap_container.IsLayoutView() || snap_container.HasOverflowClip(); + if (!is_scroll_container) { + snap_container_map_.erase(&snap_container); + snap_container.ClearSnapAreas(); + snap_container.SetNeedsPaintPropertyUpdate(); + return; + } + + // Note that even if scroll snap type is 'none' we continue to maintain its + // snap container entry as long as the element is a scroller. This is because + // while the scroller does not snap, it still captures the snap areas in its + // subtree for whom it is the nearest ancestor scroll container per spec [1]. + // + // [1] https://drafts.csswg.org/css-scroll-snap/#overview + // TODO(sunyunjia): Only update when the localframe doesn't need layout. UpdateSnapContainerData(snap_container);
diff --git a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h index 8381ad0..1003b04f 100644 --- a/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h +++ b/third_party/blink/renderer/core/page/scrolling/snap_coordinator.h
@@ -36,7 +36,7 @@ ~SnapCoordinator(); void Trace(blink::Visitor* visitor) {} - void SnapContainerDidChange(LayoutBox&, cc::ScrollSnapType); + void SnapContainerDidChange(LayoutBox&, bool is_removed); void SnapAreaDidChange(LayoutBox&, cc::ScrollSnapAlign); // Returns the SnapContainerData if the snap container has one.
diff --git a/third_party/blink/renderer/core/svg/svg_a_element.cc b/third_party/blink/renderer/core/svg/svg_a_element.cc index c5d1e2b..a15c7dc 100644 --- a/third_party/blink/renderer/core/svg/svg_a_element.cc +++ b/third_party/blink/renderer/core/svg/svg_a_element.cc
@@ -132,9 +132,6 @@ target = AtomicString("_blank"); event.SetDefaultHandled(); - LocalFrame* frame = GetDocument().GetFrame(); - if (!frame) - return; FrameLoadRequest frame_request( &GetDocument(), ResourceRequest(GetDocument().CompleteURL(url)), target); @@ -142,8 +139,16 @@ frame_request.SetTriggeringEventInfo( event.isTrusted() ? WebTriggeringEventInfo::kFromTrustedEvent : WebTriggeringEventInfo::kFromUntrustedEvent); - frame->Loader().StartNavigation(frame_request, - WebFrameLoadType::kStandard); + if (!GetDocument().GetFrame()) + return; + Frame* frame = GetDocument() + .GetFrame() + ->Tree() + .FindOrCreateFrameForNavigation(frame_request) + .frame; + if (!frame) + return; + frame->Navigate(frame_request, WebFrameLoadType::kStandard); return; } }
diff --git a/third_party/blink/renderer/core/timing/performance_layout_jank.cc b/third_party/blink/renderer/core/timing/performance_layout_jank.cc index 141c4be..723eeaa 100644 --- a/third_party/blink/renderer/core/timing/performance_layout_jank.cc +++ b/third_party/blink/renderer/core/timing/performance_layout_jank.cc
@@ -10,8 +10,9 @@ namespace blink { -PerformanceLayoutJank::PerformanceLayoutJank(double fraction) - : PerformanceEntry(g_empty_atom, 0.0, 0.0), fraction_(fraction) {} +PerformanceLayoutJank::PerformanceLayoutJank(double start_time, double fraction) + : PerformanceEntry(g_empty_atom, start_time, start_time), + fraction_(fraction) {} PerformanceLayoutJank::~PerformanceLayoutJank() = default;
diff --git a/third_party/blink/renderer/core/timing/performance_layout_jank.h b/third_party/blink/renderer/core/timing/performance_layout_jank.h index 50d590d..f97eefb 100644 --- a/third_party/blink/renderer/core/timing/performance_layout_jank.h +++ b/third_party/blink/renderer/core/timing/performance_layout_jank.h
@@ -19,7 +19,7 @@ DEFINE_WRAPPERTYPEINFO(); public: - explicit PerformanceLayoutJank(double fraction); + PerformanceLayoutJank(double start_time, double fraction); ~PerformanceLayoutJank() override; AtomicString entryType() const override;
diff --git a/third_party/blink/renderer/core/timing/performance_observer_test.cc b/third_party/blink/renderer/core/timing/performance_observer_test.cc index 86fb7a5..e41ba679 100644 --- a/third_party/blink/renderer/core/timing/performance_observer_test.cc +++ b/third_party/blink/renderer/core/timing/performance_observer_test.cc
@@ -74,7 +74,7 @@ EXPECT_EQ(0, NumPerformanceEntries()); // add a layoutjank to performance so getEntries() returns it - auto* entry = MakeGarbageCollected<PerformanceLayoutJank>(1234); + auto* entry = MakeGarbageCollected<PerformanceLayoutJank>(0.0, 1234); base_->AddLayoutJankBuffer(*entry); // call observe with the buffered flag
diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc index 8c71bc0..748e9eb 100644 --- a/third_party/blink/renderer/core/timing/window_performance.cc +++ b/third_party/blink/renderer/core/timing/window_performance.cc
@@ -435,7 +435,8 @@ void WindowPerformance::AddLayoutJankFraction(double jank_fraction) { DCHECK(RuntimeEnabledFeatures::LayoutJankAPIEnabled(GetExecutionContext())); - auto* entry = MakeGarbageCollected<PerformanceLayoutJank>(jank_fraction); + auto* entry = + MakeGarbageCollected<PerformanceLayoutJank>(now(), jank_fraction); if (HasObserverFor(PerformanceEntry::kLayoutJank)) NotifyObserversOfEntry(*entry); if (ShouldBufferEntries())
diff --git a/third_party/blink/renderer/devtools/front_end/audits2/Audits2Controller.js b/third_party/blink/renderer/devtools/front_end/audits2/Audits2Controller.js index d2ea2f82..92835a3 100644 --- a/third_party/blink/renderer/devtools/front_end/audits2/Audits2Controller.js +++ b/third_party/blink/renderer/devtools/front_end/audits2/Audits2Controller.js
@@ -199,32 +199,32 @@ { setting: Common.settings.createSetting('audits2.cat_perf', true), configID: 'performance', - title: 'Performance', - description: 'How long does this app take to show content and become usable' + title: ls`Performance`, + description: ls`How long does this app take to show content and become usable` }, { setting: Common.settings.createSetting('audits2.cat_pwa', true), configID: 'pwa', - title: 'Progressive Web App', - description: 'Does this page meet the standard of a Progressive Web App' + title: ls`Progressive Web App`, + description: ls`Does this page meet the standard of a Progressive Web App` }, { setting: Common.settings.createSetting('audits2.cat_best_practices', true), configID: 'best-practices', - title: 'Best practices', - description: 'Does this page follow best practices for modern web development' + title: ls`Best practices`, + description: ls`Does this page follow best practices for modern web development` }, { setting: Common.settings.createSetting('audits2.cat_a11y', true), configID: 'accessibility', - title: 'Accessibility', - description: 'Is this page usable by people with disabilities or impairments' + title: ls`Accessibility`, + description: ls`Is this page usable by people with disabilities or impairments` }, { setting: Common.settings.createSetting('audits2.cat_seo', true), configID: 'seo', - title: 'SEO', - description: 'Is this page optimized for search engine results ranking' + title: ls`SEO`, + description: ls`Is this page optimized for search engine results ranking` }, ]; @@ -262,17 +262,17 @@ { label: ls`Simulated Slow 4G, 4x CPU Slowdown`, value: 'default', - title: 'Throttling is simulated, resulting in faster audit runs with similar measurement accuracy' + title: ls`Throttling is simulated, resulting in faster audit runs with similar measurement accuracy` }, { label: ls`Applied Slow 4G, 4x CPU Slowdown`, value: 'devtools', - title: 'Typical DevTools throttling, with actual traffic shaping and CPU slowdown applied' + title: ls`Typical DevTools throttling, with actual traffic shaping and CPU slowdown applied` }, { label: ls`No throttling`, value: 'off', - title: 'No network or CPU throttling used. (Useful when not evaluating performance)' + title: ls`No network or CPU throttling used. (Useful when not evaluating performance)` }, ], },
diff --git a/third_party/blink/renderer/devtools/front_end/audits2/Audits2StartView.js b/third_party/blink/renderer/devtools/front_end/audits2/Audits2StartView.js index cd3eae4..c7eb7ccc 100644 --- a/third_party/blink/renderer/devtools/front_end/audits2/Audits2StartView.js +++ b/third_party/blink/renderer/devtools/front_end/audits2/Audits2StartView.js
@@ -87,10 +87,11 @@ <header> <div class="audits2-logo"></div> <div class="audits2-start-view-text"> - <h2>Audits</h2> + <h2>${ls`Audits`}</h2> <p> - Identify and fix common problems that affect your site's performance, accessibility, and user experience. - <span class="link" $="learn-more">Learn more</a> + ${ls`Identify and fix common problems that affect your site's performance, + accessibility, and user experience.`} + <span class="link" $="learn-more">${ls`Learn more`}</a> </p> </div> </header> @@ -98,21 +99,21 @@ <div class="audits2-form-section"> <div class="audits2-form-section-label"> <i>${deviceIcon}</i> - <div class="audits2-icon-label">Device</div> + <div class="audits2-icon-label">${ls`Device`}</div> </div> <div class="audits2-form-elements" $="device-type-form-elements"></div> </div> <div class="audits2-form-section"> <div class="audits2-form-section-label"> <i>${categoriesIcon}</i> - <div class="audits2-icon-label">Audits</div> + <div class="audits2-icon-label">${ls`Audits`}</div> </div> <div class="audits2-form-elements" $="categories-form-elements"></div> </div> <div class="audits2-form-section"> <div class="audits2-form-section-label"> <i>${throttlingIcon}</i> - <div class="audits2-icon-label">Throttling</div> + <div class="audits2-icon-label">${ls`Throttling`}</div> </div> <div class="audits2-form-elements" $="throttling-form-elements"></div> </div>
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h index b43c44d..c0a6fa6f 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h +++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_element.h
@@ -33,6 +33,7 @@ void OnFocusIn() override {} void OnTimeUpdate() override {} void OnDurationChange() override {} + void OnSeeking() override {} void OnLoadingProgress() override {} void OnPlay() override {} void OnPause() override {}
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc index 261f52b..62b9925 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc +++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.cc
@@ -27,6 +27,11 @@ UpdateTimeDisplay(); } +void MediaControlsTouchlessTimeDisplayElement::OnSeeking() { + current_time_ = MediaElement().currentTime(); + UpdateTimeDisplay(); +} + void MediaControlsTouchlessTimeDisplayElement::OnDurationChange() { duration_ = MediaElement().duration(); UpdateTimeDisplay();
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h index 6a8455a..0134b091 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h +++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_time_display_element.h
@@ -18,6 +18,7 @@ // MediaControlsTouchlessMediaEventListenerObserver overrides void OnTimeUpdate() override; + void OnSeeking() override; void OnDurationChange() override; void Trace(blink::Visitor* visitor) override;
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc index 57bd4a63..413ae227 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc +++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.cc
@@ -34,6 +34,11 @@ UpdateBars(); } +void MediaControlsTouchlessTimelineElement::OnSeeking() { + current_time_ = MediaElement().currentTime(); + UpdateBars(); +} + void MediaControlsTouchlessTimelineElement::OnDurationChange() { duration_ = MediaElement().duration(); UpdateBars();
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h index b1416ce9..c8a17e7 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h +++ b/third_party/blink/renderer/modules/media_controls/touchless/elements/media_controls_touchless_timeline_element.h
@@ -17,6 +17,7 @@ // MediaControlsTouchlessMediaEventListenerObserver overrides void OnTimeUpdate() override; + void OnSeeking() override; void OnDurationChange() override; void OnLoadingProgress() override;
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl.h b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl.h index 14fc333..9b569cc 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl.h +++ b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl.h
@@ -56,6 +56,7 @@ void OnFocusIn() override; void OnTimeUpdate() override {} void OnDurationChange() override {} + void OnSeeking() override {} void OnLoadingProgress() override {} void OnPlay() override; void OnPause() override;
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl_test.cc b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl_test.cc index 9215321d..2bf9fdb 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl_test.cc +++ b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_impl_test.cc
@@ -283,6 +283,14 @@ EXPECT_DOUBLE_EQ(buffered / duration, loaded_bar_width / timeline_width); EXPECT_DOUBLE_EQ(current_time / buffered, progress_bar_width / loaded_bar_width); + + // Seek event should trigger a UI update as well. + SetBufferedRange(0); + MediaElement().setCurrentTime(0); + MediaElement().DispatchEvent(*Event::Create(event_type_names::kSeeking)); + + EXPECT_DOUBLE_EQ(progress_bar->getBoundingClientRect()->width(), 0); + EXPECT_DOUBLE_EQ(loaded_bar->getBoundingClientRect()->width(), 0); } TEST_F(MediaControlsTouchlessImplTest, TimeDisplay) {
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener.cc b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener.cc index 3151645..17fc5f1 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener.cc +++ b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener.cc
@@ -35,6 +35,7 @@ media_element_->addEventListener(event_type_names::kTimeupdate, this, false); media_element_->addEventListener(event_type_names::kDurationchange, this, false); + media_element_->addEventListener(event_type_names::kSeeking, this, false); media_element_->addEventListener(event_type_names::kProgress, this, false); media_element_->addEventListener(event_type_names::kPlay, this, false); @@ -76,6 +77,11 @@ observer->OnDurationChange(); return; } + if (event->type() == event_type_names::kSeeking) { + for (auto& observer : observers_) + observer->OnSeeking(); + return; + } if (event->type() == event_type_names::kProgress) { for (auto& observer : observers_) observer->OnLoadingProgress();
diff --git a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener_observer.h b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener_observer.h index 1c297a9..cf07510 100644 --- a/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener_observer.h +++ b/third_party/blink/renderer/modules/media_controls/touchless/media_controls_touchless_media_event_listener_observer.h
@@ -17,6 +17,7 @@ virtual void OnFocusIn() = 0; virtual void OnTimeUpdate() = 0; virtual void OnDurationChange() = 0; + virtual void OnSeeking() = 0; virtual void OnLoadingProgress() = 0; virtual void OnPlay() = 0; virtual void OnPause() = 0;
diff --git a/third_party/blink/renderer/modules/xr/xr.cc b/third_party/blink/renderer/modules/xr/xr.cc index 837a69b..21226d3 100644 --- a/third_party/blink/renderer/modules/xr/xr.cc +++ b/third_party/blink/renderer/modules/xr/xr.cc
@@ -137,6 +137,11 @@ environment_provider_error_callbacks_.push_back(std::move(callback)); } +void XR::ExitPresent() { + DCHECK(device_); + device_->ExitPresent(); +} + ScriptPromise XR::supportsSession(ScriptState* script_state, const String& mode) { LocalFrame* frame = GetFrame(); @@ -194,6 +199,7 @@ device::mojom::blink::XRSessionOptionsPtr session_options = convertModeToMojo(query->mode); + outstanding_support_queries_.insert(query); device_->SupportsSession( std::move(session_options), WTF::Bind(&XR::OnSupportsSessionReturned, WrapPersistent(this), @@ -297,6 +303,7 @@ // WebXR, either pass in the correct value for metrics to know whether // this was triggered by device activation, or remove the value as soon as // legacy API has been removed. + outstanding_request_queries_.insert(query); device_->RequestSession( std::move(session_options), false /* triggered by display activate */, WTF::Bind(&XR::OnRequestSessionReturned, WrapWeakPersistent(this), @@ -330,6 +337,8 @@ pending_device_ = false; if (device) { device_ = std::move(device); + device_.set_connection_error_handler( + WTF::Bind(&XR::OnDeviceDisconnect, WrapWeakPersistent(this))); // Log metrics if (!did_log_returned_device_ || !did_log_supports_immersive_) { @@ -372,6 +381,11 @@ void XR::OnSupportsSessionReturned(PendingSessionQuery* query, bool supports_session) { + // The session query has returned and we're about to resolve or reject the + // promise, so remove it from our outstanding list. + DCHECK(outstanding_support_queries_.Contains(query)); + outstanding_support_queries_.erase(query); + supports_session ? query->resolver->Resolve() : query->resolver->Reject(DOMException::Create( @@ -381,6 +395,11 @@ void XR::OnRequestSessionReturned( PendingSessionQuery* query, device::mojom::blink::XRSessionPtr session_ptr) { + // The session query has returned and we're about to resolve or reject the + // promise, so remove it from our outstanding list. + DCHECK(outstanding_request_queries_.Contains(query)); + outstanding_request_queries_.erase(query); + // TODO(https://crbug.com/872316) Improve the error messaging to indicate why // a request failed. if (!session_ptr) { @@ -513,7 +532,7 @@ if (frame_provider_) frame_provider_->Dispose(); - device_ = nullptr; + OnDeviceDisconnect(); // If we failed out with an outstanding call to RequestDevice, we may have // pending promises that need to be resolved. Fake a call that we found no @@ -522,6 +541,27 @@ OnRequestDeviceReturned(nullptr); } +void XR::OnDeviceDisconnect() { + if (!device_) + return; + + device_ = nullptr; + + HeapHashSet<Member<PendingSessionQuery>> support_queries = + outstanding_support_queries_; + for (const auto& query : support_queries) { + OnSupportsSessionReturned(query, false); + } + DCHECK(outstanding_support_queries_.IsEmpty()); + + HeapHashSet<Member<PendingSessionQuery>> request_queries = + outstanding_request_queries_; + for (const auto& query : request_queries) { + OnRequestSessionReturned(query, nullptr); + } + DCHECK(outstanding_support_queries_.IsEmpty()); +} + void XR::OnEnvironmentProviderDisconnect() { for (auto& callback : environment_provider_error_callbacks_) { std::move(callback).Run(); @@ -536,6 +576,8 @@ visitor->Trace(pending_session_requests_); visitor->Trace(frame_provider_); visitor->Trace(sessions_); + visitor->Trace(outstanding_support_queries_); + visitor->Trace(outstanding_request_queries_); ContextLifecycleObserver::Trace(visitor); EventTargetWithInlineData::Trace(visitor); }
diff --git a/third_party/blink/renderer/modules/xr/xr.h b/third_party/blink/renderer/modules/xr/xr.h index a7c2071..d1df7df4 100644 --- a/third_party/blink/renderer/modules/xr/xr.h +++ b/third_party/blink/renderer/modules/xr/xr.h
@@ -42,9 +42,6 @@ XRFrameProvider* frameProvider(); - const device::mojom::blink::XRDevicePtr& xrDevicePtr() const { - return device_; - } const device::mojom::blink::XRFrameDataProviderPtr& xrMagicWindowProviderPtr() const { return magic_window_provider_; @@ -73,6 +70,8 @@ void AddEnvironmentProviderErrorHandler( EnvironmentProviderErrorCallback callback); + void ExitPresent(); + TimeTicks NavigationStart() const { return navigation_start_; } private: @@ -117,6 +116,7 @@ void Dispose(); + void OnDeviceDisconnect(); void OnEnvironmentProviderDisconnect(); bool pending_device_ = false; @@ -137,6 +137,9 @@ HeapVector<Member<PendingSessionQuery>> pending_mode_queries_; HeapVector<Member<PendingSessionQuery>> pending_session_requests_; + HeapHashSet<Member<PendingSessionQuery>> outstanding_support_queries_; + HeapHashSet<Member<PendingSessionQuery>> outstanding_request_queries_; + Vector<EnvironmentProviderErrorCallback> environment_provider_error_callbacks_;
diff --git a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc index 1e780f00..a6274be8 100644 --- a/third_party/blink/renderer/modules/xr/xr_frame_provider.cc +++ b/third_party/blink/renderer/modules/xr/xr_frame_provider.cc
@@ -149,7 +149,7 @@ if (!immersive_session_) return; - xr_->xrDevicePtr()->ExitPresent(); + xr_->ExitPresent(); immersive_session_ = nullptr; pending_immersive_vsync_ = false;
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_filter.cc b/third_party/blink/renderer/platform/graphics/dark_mode_filter.cc index 3dd0ea23..3b3a669 100644 --- a/third_party/blink/renderer/platform/graphics/dark_mode_filter.cc +++ b/third_party/blink/renderer/platform/graphics/dark_mode_filter.cc
@@ -69,11 +69,22 @@ config.fContrast = settings_.contrast; default_filter_ = SkHighContrastFilter::Make(config); - if (settings_.image_style == DarkModeImageStyle::kGrayscale) { - config.fGrayscale = true; - image_filter_ = SkHighContrastFilter::Make(config); - } else { - image_filter_.reset(nullptr); + SkHighContrastConfig image_config = config; + switch (settings_.image_style) { + case DarkModeImageStyle::kGrayscale: + image_config.fGrayscale = true; + image_config.fInvertStyle = SkHighContrastConfig::InvertStyle::kNoInvert; + image_filter_ = SkHighContrastFilter::Make(image_config); + break; + case DarkModeImageStyle::kGrayscaleAndInvert: + DCHECK_NE(image_config.fInvertStyle, + SkHighContrastConfig::InvertStyle::kNoInvert); + image_config.fGrayscale = true; + image_filter_ = SkHighContrastFilter::Make(image_config); + break; + case DarkModeImageStyle::kDefault: + image_filter_.reset(nullptr); + break; } } @@ -111,8 +122,8 @@ dark_mode_flags.setColorFilter(default_filter_); } else { auto invertedColor = ApplyIfNeeded(flags.getColor()); - dark_mode_flags.setColor( - SkColorSetRGB(invertedColor.Red(), invertedColor.Green(), invertedColor.Blue())); + dark_mode_flags.setColor(SkColorSetRGB( + invertedColor.Red(), invertedColor.Green(), invertedColor.Blue())); } return base::make_optional<cc::PaintFlags>(std::move(dark_mode_flags));
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_settings.h b/third_party/blink/renderer/platform/graphics/dark_mode_settings.h index e67c87d..0c7c2360 100644 --- a/third_party/blink/renderer/platform/graphics/dark_mode_settings.h +++ b/third_party/blink/renderer/platform/graphics/dark_mode_settings.h
@@ -28,10 +28,12 @@ // For images that should have a filter applied, which filter should be used? enum class DarkModeImageStyle { - // Invert images the same way as other elements + // Invert images the same way as other elements. kDefault, - // Apply grayscale to images as well as inverting them - kGrayscale + // Apply grayscale to images that would be inverted, but don't invert them. + kGrayscale, + // Apply grayscale to images as well as inverting them. + kGrayscaleAndInvert }; enum class DarkModePagePolicy {
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 3949591..4d545e3 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1780,6 +1780,7 @@ crbug.com/497522 css3/filters/backdrop-filter-boundary.html [ Failure ] crbug.com/497522 css3/filters/backdrop-filter-bleeding.html [ Failure ] crbug.com/497522 css3/filters/backdrop-filter-svg.html [ Failure ] +crbug.com/497522 external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom.html [ Failure ] #crbug.com/497522 css3/filters/backdrop-filter-plus-filter.html [ Failure ] # This fails, but only in CAP mode: crbug.com/497522 external/wpt/css/filter-effects/backdrop-filter-isolation-isolate.html [ Failure ] @@ -2902,6 +2903,16 @@ crbug.com/939181 virtual/not-site-per-process/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html [ Failure Timeout ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 external/wpt/css/css-text/hyphens/hyphens-out-of-flow-001.html [ Failure ] +crbug.com/626703 virtual/speech-with-unified-autoplay/external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Linux ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Mac10.10 ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Mac10.12 ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Mac10.13 ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Retina ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Win ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Mac10.11 ] external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html [ Skip ] +crbug.com/626703 [ Mac ] external/wpt/css/css-text/hyphens/hyphens-out-of-flow-002.html [ Failure ] crbug.com/626703 external/wpt/css/css-contain/contain-size-replaced-003b.html [ Failure ] crbug.com/626703 external/wpt/css/css-contain/contain-size-replaced-003c.html [ Failure ] crbug.com/626703 external/wpt/css/css-contain/contain-size-replaced-003a.html [ Failure ]
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-crash-test-2.html b/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-crash-test-2.html index 4a26e11..ac3e257 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-crash-test-2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-crash-test-2.html
@@ -9,7 +9,7 @@ selection_test( '<div contenteditable><vkern></vkern><marquee><div>|abc def</div></marquee></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable><vkern></vkern><marquee><div>|abc def</div></marquee></div>', + '<div contenteditable><vkern></vkern><marquee><div>abc |def</div></marquee></div>', '1-0 left word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable><vkern></vkern><marquee><div>abc| def</div></marquee></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable><vkern></vkern><marquee><div>abc |def</div></marquee></div>', + '<div contenteditable><vkern></vkern><marquee><div>abc def|</div></marquee></div>', '1-3 right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-textarea.html b/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-textarea.html index 072570c..eaa7f6f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-textarea.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move-by-word-visually-textarea.html
@@ -17,8 +17,8 @@ test_move_by_word.selectionStart = 0; test_move_by_word.selectionEnd = 0; - var wordBreaks = [5, 10, 17, 27, 27]; - for (var i = 0; i < 5; ++i) { + var wordBreaks = [5, 10, 14, 21, 27, 27]; + for (var i = 0; i < 6; ++i) { var start = test_move_by_word.selectionStart; sel.modify('move', 'right', 'word'); assert_equals(test_move_by_word.selectionStart, wordBreaks[i], 'word break at ' + i);
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_crossing_inline_block_boundary.html b/third_party/blink/web_tests/editing/selection/modify_move/move_crossing_inline_block_boundary.html index 6ce7473c..3b886cf5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_crossing_inline_block_boundary.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_crossing_inline_block_boundary.html
@@ -33,11 +33,10 @@ '<div contenteditable>foo<span style="display:inline-block;width:1em;height:1em;">|</span>bar</div>', 'Move right into empty inline block'); -// TODO(xiaochengh): Note that the left and right movements are asymmetric, which might be a bug. selection_test( '<div contenteditable>foo<span style="display:inline-block;width:1em;height:1em;">|</span>bar</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>fo|o<span style="display:inline-block;width:1em;height:1em;"></span>bar</div>', + '<div contenteditable>foo|<span style="display:inline-block;width:1em;height:1em;"></span>bar</div>', 'Move left out of empty inline block'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_multiline.html b/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_multiline.html index 0c12fbd..651c28487 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_multiline.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_multiline.html
@@ -9,8 +9,6 @@ // 3. Direction of the first line text inside the inline block // 4. Direction of the last line text inside the inline block -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable>foo|<span style="display:inline-block">bar<br>qux</span>baz</div>', selection => selection.modify('move', 'right', 'character'), @@ -26,9 +24,7 @@ selection_test( '<div contenteditable>foo|<span style="display:inline-block">\u05D0\u05D1\u05D2<br>qux</span>baz</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1|\u05D2<br>qux</span>baz</div>' - : '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2<br>qux</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2<br>qux</span>baz</div>', 'Move right, LTR resolved direction, RTL/LTR text inside'); selection_test( @@ -40,17 +36,13 @@ selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5|<span style="display:inline-block">bar<br>qux</span>\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">ba|r<br>qux</span>\u05D6\u05D7\u05D8</div>' - : '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar<br>qux</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar<br>qux</span>\u05D6\u05D7\u05D8</div>', 'Move left, RTL resolved direction, LTR/LTR text inside'); -// TODO(crbug.com/923087): BidiCaretAffinity currently fails this test case, as -// VisiblePosition incorrectly moves the input position to "qux|". selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">bar<br>qux</span>|\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">bar<br>q|ux</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">bar<br>qu|x</span>\u05D6\u05D7\u05D8</div>', 'Move right, RTL resolved direction, LTR/LTR text inside'); selection_test( @@ -59,12 +51,10 @@ '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">\u05D0|\u05D1\u05D2<br>qux</span>\u05D6\u05D7\u05D8</div>', 'Move left, RTL resolved direction, RTL/LTR text inside'); -// TODO(crbug.com/923087): BidiCaretAffinity currently fails this test case, as -// VisiblePosition incorrectly moves the input position to "qux|". selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">\u05D0\u05D1\u05D2<br>qux</span>|\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">\u05D0\u05D1\u05D2<br>q|ux</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">\u05D0\u05D1\u05D2<br>qu|x</span>\u05D6\u05D7\u05D8</div>', 'Move right, RTL resolved direction, RTL/LTR text inside'); selection_test( @@ -76,35 +66,27 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">bar<br>\u05D9\u05DA\u05DB</span>|baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">bar<br>\u05D9|\u05DA\u05DB</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">bar<br>\u05D9\u05DA|\u05DB</span>baz</div>', 'Move left, LTR resolved direction, LTR/RTL text inside'); selection_test( '<div contenteditable>foo|<span style="display:inline-block">\u05D0\u05D1\u05D2<br>\u05D9\u05DA\u05DB</span>baz</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1|\u05D2<br>\u05D9\u05DA\u05DB</span>baz</div>' - : '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2<br>\u05D9\u05DA\u05DB</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2<br>\u05D9\u05DA\u05DB</span>baz</div>', 'Move right, LTR resolved direction, RTL/RTL text inside'); -// TODO(crbug.com/923087): BidiCaretAffinity currently fails this test case, as -// VisiblePosition incorrectly moves the input position to "JKL|". selection_test( '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1\u05D2<br>\u05D9\u05DA\u05DB</span>|baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1\u05D2<br>\u05D9|\u05DA\u05DB</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1\u05D2<br>\u05D9\u05DA|\u05DB</span>baz</div>', 'Move left, LTR resolved direction, RTL/RTL text inside'); selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5|<span style="display:inline-block">bar<br>\u05D9\u05DA\u05DB</span>\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">ba|r<br>\u05D9\u05DA\u05DB</span>\u05D6\u05D7\u05D8</div>' - : '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar<br>\u05D9\u05DA\u05DB</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar<br>\u05D9\u05DA\u05DB</span>\u05D6\u05D7\u05D8</div>', 'Move left, RTL resolved direction, LTR/RTL text inside'); -// TODO(crbug.com/923087): BidiCaretAffinity currently fails this test case, as -// VisiblePosition incorrectly moves the input position to "JKL|". selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">bar<br>\u05D9\u05DA\u05DB</span>|\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_one_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_one_line.html index 5d0a388..31d3864 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_one_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_into_inline_block_one_line.html
@@ -8,8 +8,6 @@ // 2. Resolved direction of the inline block in the parent context // 3. Direction of text inside the inline block -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable>foo|<span style="display:inline-block">bar</span>baz</div>', selection => selection.modify('move', 'right', 'character'), @@ -25,33 +23,25 @@ selection_test( '<div contenteditable>foo|<span style="display:inline-block">\u05D0\u05D1\u05D2</span>baz</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1|\u05D2</span>baz</div>' - : '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2</span>baz</div>', 'Move right, LTR resolved direction, RTL text inside'); -// TODO(crbug.com/923087): BidiCaretAffinity currently fails this test case, as -// VisiblePosition incorrectly moves the input position to "ABC|". selection_test( '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1\u05D2</span>|baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1|\u05D2</span>baz</div>', 'Move left, LTR resolved direction, RTL text inside'); selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5|<span style="display:inline-block">bar</span>\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">ba|r</span>\u05D6\u05D7\u05D8</div>' - : '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar</span>\u05D6\u05D7\u05D8</div>', 'Move left, RTL resolved direction, LTR text inside'); -// TODO(crbug.com/923087): BidiCaretAffinity currently fails this test case, as -// VisiblePosition incorrectly moves the input position to "bar|". selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">bar</span>|\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">ba|r</span>\u05D6\u05D7\u05D8</div>', 'Move right, RTL resolved direction, LTR text inside'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_ltr.html index 1b41b3c..09dd31c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_ltr.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="ltr">|abc</div>', selection => selection.modify('move', 'left', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html index 14c3d82..e6806e54 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_01_rtl.html
@@ -3,35 +3,28 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc</div>' - : '<div contenteditable dir="rtl">ab|c</div>', + '<div contenteditable dir="rtl">a|bc</div>', '1-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc</div>' - : '<div contenteditable dir="rtl">abc|</div>', + '<div contenteditable dir="rtl">ab|c</div>', '1-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc</div>', + '<div contenteditable dir="rtl">abc|</div>', '1-2 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab|c</div>' - : '<div contenteditable dir="rtl">abc|</div>', + '<div contenteditable dir="rtl">abc|</div>', '1-3 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html index 4962440..e1c142f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_ltr.html
@@ -3,35 +3,28 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>', '2-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>', '2-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>', '2-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>' - : '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>', '2-3 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_rtl.html index a7126d3..94e2334a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_02_rtl.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'left', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_ltr.html index ad308987..48f62e94 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_ltr.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="ltr">|<br>abc</div>', selection => selection.modify('move', 'left', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_rtl.html index 2350f12..e3f5c39e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_03_rtl.html
@@ -3,43 +3,34 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<br>abc</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><br>abc|</div>' - : '<div contenteditable dir="rtl"><br>|abc</div>', + '<div contenteditable dir="rtl"><br>|abc</div>', '3-0 rtl left character'); selection_test( '<div contenteditable dir="rtl"><br>|abc</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><br>|abc</div>' - : '<div contenteditable dir="rtl"><br>ab|c</div>', + '<div contenteditable dir="rtl"><br>a|bc</div>', '3-1 rtl left character'); selection_test( '<div contenteditable dir="rtl"><br>a|bc</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><br>|abc</div>' - : '<div contenteditable dir="rtl"><br>abc|</div>', + '<div contenteditable dir="rtl"><br>ab|c</div>', '3-2 rtl left character'); selection_test( '<div contenteditable dir="rtl"><br>ab|c</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><br>a|bc</div>', + '<div contenteditable dir="rtl"><br>abc|</div>', '3-3 rtl left character'); selection_test( '<div contenteditable dir="rtl"><br>abc|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><br>ab|c</div>' - : '<div contenteditable dir="rtl"><br>abc|</div>', + '<div contenteditable dir="rtl"><br>abc|</div>', '3-4 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_ltr.html index 44a42da..b9626d23 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<br>\u05D0\u05D1\u05D2</div>', @@ -14,30 +13,24 @@ selection_test( '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr">|<br>\u05D0\u05D1\u05D2</div>', + '<div contenteditable dir="ltr">|<br>\u05D0\u05D1\u05D2</div>', '4-1 ltr left character'); selection_test( '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>', + '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>', '4-2 ltr left character'); selection_test( '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>' - : '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>', + '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>', '4-3 ltr left character'); selection_test( '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|<br>\u05D0\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>', + '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>', '4-4 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_rtl.html index 93a2cfe..4b8faddc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_04_rtl.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="rtl">|<br>\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'left', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html index 9cb88d3..28417ad 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2def</div>', @@ -26,29 +25,25 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2def</div>', '5-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2def</div>', '5-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|def</div>' - : '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>', '5-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2def</div>', '5-6 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html index bda3a65..90435a8b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_05_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0|\u05D1\u05D2def</div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2def</div>', '5-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2def</div>', '5-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2def</div>', '5-2 rtl left character'); selection_test( @@ -48,30 +43,24 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2d|ef</div>', '5-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2d|ef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2def|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>', '5-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2def|</div>', '5-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2def|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2def|</div>', '5-9 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html index 6e52a74..62f73c2d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', '6-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', '6-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', '6-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', '6-3 ltr left character'); selection_test( @@ -48,30 +43,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc\u05d3|\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', '6-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', '6-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc\u05d3\u05d4\u05d5|</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3|\u05D4\u05D5</div>', '6-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2ab|c\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4|\u05D5</div>', '6-9 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html index e600d40..8052fcc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_06_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abc\u05d3|\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc\u05D3\u05D4\u05D5</div>', '6-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', '6-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', '6-5 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html index 00df74b..eb84442 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', @@ -26,48 +25,42 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5</div>', '7-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5</div>', '7-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5|</div>' - : '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5</div>', '7-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab|c\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5</div>', '7-9 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html index 2eec1a9..78e9d989aa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_07_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0|\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-2 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html index 709e703..eed92ba 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abcdef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2abcdef</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abcdef</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abcdef</div>', '8-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abcdef</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abcdef</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abcdef</div>', '8-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abcdef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|abcdef</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abcdef</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abcdef</div>', '8-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abcdef</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abcdef</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abcdef</div>', '8-3 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html index c82390f..c0d2e51 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_08_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abcdef</div>', @@ -26,48 +25,42 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abcdef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|abcdef</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcde|f</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bcdef</div>', '8-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bcdef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|abcdef</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcdef|</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|cdef</div>', '8-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|cdef</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bcdef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|def</div>', '8-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|cdef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcd|ef</div>', '8-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcd|ef</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcde|f</div>', '8-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcde|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcd|ef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcdef|</div>', '8-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcdef|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abcde|f</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcdef|</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcdef|</div>', '8-9 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html index 32063491..243c4138 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_ltr.html
@@ -3,22 +3,17 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>' - : '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', '9-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>' - : '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>', + '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', '9-1 ltr left character'); selection_test( @@ -30,30 +25,24 @@ selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>' - : '<div contenteditable dir="ltr">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', '9-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', '9-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>' - : '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>', '9-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>' - : '<div contenteditable dir="ltr">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>', '9-6 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html index 9fa78ac1..90616b0c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_09_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0661\u0662\u0663\u0627|\u0628\u0629</div>' - : '<div contenteditable dir="rtl">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', '9-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>' - : '<div contenteditable dir="rtl">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', '9-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', '9-2 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html index 5524368..34a584ea 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_ltr.html
@@ -3,42 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>' - : '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', '10-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', '10-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0627\u0628\u0629|\u0661\u0662\u0663</div>' - : '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', + '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>', '10-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', '10-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0627\u0628\u0629|\u0661\u0662\u0663</div>' - : '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', '10-4 ltr left character'); selection_test( @@ -50,8 +43,6 @@ selection_test( '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662|\u0663</div>' - : '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', '10-6 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html index 1cdfd64..fbc0652 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_10_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', @@ -26,30 +25,24 @@ selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0627\u0628\u0629|\u0661\u0662\u0663</div>' - : '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', '10-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0627\u0628\u0629|\u0661\u0662\u0663</div>' - : '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', '10-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', '10-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>' - : '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', '10-6 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html index 1d68fb27..1c2ee26 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<span>abc</span>\u05D0\u05D1\u05D2def</div>', @@ -32,37 +31,31 @@ selection_test( '<div contenteditable dir="ltr"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>abc</span>\u05d0|\u05d1\u05d2def</div>' - : '<div contenteditable dir="ltr"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', '11-4 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>|\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>abc</span>\u05d0|\u05d1\u05d2def</div>' - : '<div contenteditable dir="ltr"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', '11-5 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="ltr"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', '11-6 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>abc</span>\u05d0\u05d1\u05d2|def</div>' - : '<div contenteditable dir="ltr"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', '11-7 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', '11-8 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html index 563a455..6754522 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_11_rtl.html
@@ -3,36 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<span>abc</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0|\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', '11-0 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>|abc</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0|\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', '11-1 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>|abc</span>\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', '11-2 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', '11-3 rtl left character'); selection_test( @@ -62,30 +55,24 @@ selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0\u05d1\u05d2|def</div>' - : '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2de|f</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2d|ef</div>', '11-8 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2d|ef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0\u05d1\u05d2|def</div>' - : '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2def|</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2de|f</div>', '11-9 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2d|ef</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2def|</div>', '11-10 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0\u05d1\u05d2de|f</div>' - : '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2def|</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2def|</div>', '11-11 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html index 844a71df..fbac69d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_ltr.html
@@ -3,48 +3,41 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0|\u05d1\u05d2</span>abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">|<span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|<span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-0 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>|\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0|\u05d1\u05d2</span>abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>|\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>|\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-1 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>|\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-2 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2|</span>abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>|\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-3 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-4 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>|abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-5 ltr left character'); selection_test( @@ -62,30 +55,24 @@ selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>abc\u05d3|\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', '12-8 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', '12-9 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>abc\u05d3\u05d4\u05d5|</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3|\u05D4\u05D5</div>', '12-10 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>ab|c\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4|\u05D5</div>', '12-11 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html index 9e980cd3..2d5e13c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_12_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', @@ -32,31 +31,25 @@ selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>\u05d0\u05d1\u05d2</span>abc\u05d3|\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', '12-4 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>|abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>\u05d0\u05d1\u05d2</span>abc\u05d3|\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', '12-5 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>\u05d0\u05d1\u05d2|</span>abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', '12-6 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', '12-7 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html index eba70b29..50ad4e2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', @@ -26,29 +25,25 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|\u05d1\u05d2123\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2|123\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5def</div>', '13-6 ltr left character'); selection_test( @@ -66,29 +61,25 @@ selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2123\u05d3|\u05d4\u05d5def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5def</div>', '13-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5def</div>', '13-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5|def</div>' - : '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5def</div>', '13-11 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5def</div>', '13-12 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html index d1013b649..4da7ecb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_13_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0|\u05d1\u05d2123\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-2 rtl left character'); selection_test( @@ -48,23 +43,19 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2123\u05d3|\u05d4\u05d5def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5def</div>', '13-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2|123\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5def</div>', '13-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5def</div>', '13-8 rtl left character'); selection_test( @@ -88,30 +79,24 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5|def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5d|ef</div>', '13-12 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5d|ef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5|def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5de|f</div>', '13-13 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def|</div>', '13-14 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5de|f</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def|</div>', '13-15 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html index 9d4c39c..170db70 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2123</div>', @@ -26,37 +25,31 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|\u05d1\u05d2123</div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123</div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123</div>', '14-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123</div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123</div>', '14-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2|123</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123</div>', '14-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123</div>', '14-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D21|23</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2|123</div>' - : '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123</div>', '14-7 ltr left character'); selection_test( @@ -68,8 +61,6 @@ selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d212|3</div>' - : '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3</div>', '14-9 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html index 4942e68..c024a85 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_14_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0|\u05d1\u05d2123</div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123</div>', '14-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05d0\u05d1\u05d2123</div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123</div>', '14-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123</div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123</div>', '14-2 rtl left character'); selection_test( @@ -48,30 +43,24 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|123</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2|123</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23</div>', '14-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2|123</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3</div>', '14-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|</div>', '14-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d212|3</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|</div>', '14-9 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html index 438396b..e094a3c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2123def</div>', @@ -26,29 +25,25 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|\u05d1\u05d2123def</div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123def</div>', '15-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123def</div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123def</div>', '15-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2|123def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3def</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123def</div>', '15-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123def</div>', '15-6 ltr left character'); selection_test( @@ -66,7 +61,7 @@ selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3def</div>', '15-9 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html index 7bb332a..9dc28ec 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_15_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0|\u05d1\u05d2123def</div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123def</div>', '15-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05d0\u05d1\u05d2123def</div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123def</div>', '15-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123def</div>', '15-2 rtl left character'); selection_test( @@ -48,48 +43,42 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|123def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2|123def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23def</div>', '15-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2|123def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123def|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3def</div>', '15-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|def</div>', '15-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123d|ef</div>', '15-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123d|ef</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123de|f</div>', '15-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123def|</div>', '15-11 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2123de|f</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123def|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123def|</div>', '15-12 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html index e9322ed..ca93a61 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-3 ltr left character'); selection_test( @@ -48,29 +43,25 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3|\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5|abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-9 ltr left character'); selection_test( @@ -88,29 +79,25 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6|\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-12 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6|\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-13 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8|456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6|\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-14 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9|\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', '16-15 ltr left character'); selection_test( @@ -128,30 +115,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9|\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', '16-18 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9|\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB|\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', '16-19 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB|\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc|</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9|\u05DB\u05DC</div>', '16-20 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5ab|c\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6|\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB|\u05DC</div>', '16-21 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html index 5115964..14205ea0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_16_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3|\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-5 rtl left character'); selection_test( @@ -66,23 +61,19 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6|\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5a|bc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5a|bc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5|abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5a|bc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-11 rtl left character'); selection_test( @@ -106,23 +97,19 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9|\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D84|56\u05D9\u05DB\u05DC</div>', '16-15 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D84|56\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8|456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', '16-16 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D84|56\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', '16-17 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_ltr.html index 8e68af5..2472c15 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', @@ -50,138 +49,120 @@ selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-7 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-8 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-9 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before |\u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-10 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-11 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-12 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-13 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-14 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-15 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-16 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-17 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-18 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-19 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-20 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-21 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-22 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', '17-23 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', '17-24 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', '17-25 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', '17-26 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_rtl.html index f6a5ded..602aae6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_17_rtl.html
@@ -3,46 +3,41 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-0 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-1 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-2 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-3 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-4 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-5 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_ltr.html index 097da3b8..2df5087a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_ltr.html
@@ -3,40 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', '18-0 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', '18-1 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', '18-2 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', '18-3 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', '18-4 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_rtl.html index 016ad93c..2b8c29b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_18_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', @@ -38,150 +37,132 @@ selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '18-5 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '18-6 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '18-7 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 |after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '18-8 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', '18-9 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', '18-10 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', '18-11 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', '18-12 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', '18-13 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', '18-14 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', '18-15 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', '18-16 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', '18-17 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', '18-18 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', '18-19 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', '18-20 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', '18-21 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', '18-22 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', '18-23 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', '18-24 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', '18-25 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', '18-26 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_ltr.html index 676c5b3..287df2e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', @@ -50,138 +49,120 @@ selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-7 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-8 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-9 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before |\u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-10 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-11 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-12 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-13 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-14 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-15 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-16 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-17 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-18 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-19 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-20 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-21 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-22 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', '19-23 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', '19-24 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', '19-25 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', '19-26 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_rtl.html index 1f31ae2d..67d5f8a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_19_rtl.html
@@ -3,46 +3,41 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-0 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-1 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-2 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-3 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-4 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-5 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_ltr.html index 6e8bc1b..732fd63 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_ltr.html
@@ -3,40 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', '20-0 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', '20-1 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', '20-2 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', '20-3 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', '20-4 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_rtl.html index bd47600..cd12f6b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_20_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', @@ -38,150 +37,132 @@ selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '20-5 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '20-6 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '20-7 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 |after encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '20-8 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', '20-9 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', '20-10 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', '20-11 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', '20-12 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', '20-13 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', '20-14 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', '20-15 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', '20-16 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', '20-17 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', '20-18 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', '20-19 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', '20-20 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', '20-21 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', '20-22 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', '20-23 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', '20-24 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', '20-25 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', '20-26 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_ltr.html index 63beaec7..d3f1da9 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', @@ -56,89 +55,79 @@ selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-8 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-9 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-10 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-11 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-12 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-13 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-14 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-15 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-16 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-17 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', '21-18 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', '21-19 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', '21-20 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_rtl.html index 435f069..b3bc8dc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_21_rtl.html
@@ -3,53 +3,47 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const isMac = navigator.platform.indexOf('Mac') === 0; -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-0 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-1 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-2 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-3 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-4 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-5 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-6 rtl left character'); selection_test( @@ -139,77 +133,55 @@ selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.|</div>') - : (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>'), + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', '21-21 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>' - : (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>'), + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', '21-22 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', '21-23 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', selection => selection.modify('move', 'left', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', '21-24 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', selection => selection.modify('move', 'left', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.|</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', '21-25 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', selection => selection.modify('move', 'left', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', '21-26 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', '21-27 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', '21-28 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>', '21-29 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_ltr.html index f006a6b..3bb3e74 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', @@ -56,89 +55,79 @@ selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-8 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-9 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-10 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-11 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-12 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-13 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-14 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-15 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-16 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-17 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', '22-18 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', '22-19 ltr left character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', '22-20 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_rtl.html index f83df320..2b8d5029 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_22_rtl.html
@@ -3,53 +3,47 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const isMac = navigator.platform.indexOf('Mac') === 0; -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-0 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-1 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-2 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-3 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-4 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-5 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-6 rtl left character'); selection_test( @@ -139,77 +133,55 @@ selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.|</div>') - : (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>'), + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', '22-21 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>' - : (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>'), + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', '22-22 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', '22-23 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', selection => selection.modify('move', 'left', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', '22-24 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', selection => selection.modify('move', 'left', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.|</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', '22-25 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', selection => selection.modify('move', 'left', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', '22-26 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', '22-27 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', '22-28 rtl left character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>', '22-29 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_ltr.html index f0d64a34..6dc0489 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_ltr.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="ltr">|Lorem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_rtl.html index 7c375636..34184fb54 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_23_rtl.html
@@ -3,244 +3,189 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>' - : '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', '23-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lo|rem\n <div></div>\n ipsum</div>', '23-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lo|rem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lor|em\n <div></div>\n ipsum</div>', '23-2 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lor|em\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">Lo|rem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">Lor|em\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n| <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-11 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-12 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-13 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n |<div></div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-14 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div>|</div>\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - // The input position is canonicalized into "|ipsum", which causes the - // current behavior. It might be changed in the future. - ? '<div contenteditable dir="rtl">Lorem\n <div>|</div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-15 rtl left character'); - selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>|\n ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>|\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-16 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n| ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n| ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-17 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-18 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-19 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-20 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-21 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-22 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-23 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-24 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-25 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ip|sum</div>', '23-26 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ip|sum</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ips|um</div>', '23-27 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ips|um</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">Lorem\n <div></div>\n ip|sum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', '23-28 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">Lorem\n <div></div>\n ips|um</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>', '23-29 rtl left character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>', '23-30 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_ltr.html index fd44320..617b568 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_ltr.html
@@ -3,237 +3,183 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC|\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC|\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC|\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n| <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n| <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-11 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-12 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n |<div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n |<div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-13 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div>|</div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - // The input position is canonicalized into "|\u05DE\u05E6\u05E0\u05E4\u05EA", - // which causes the current behavior. It might be changed in the future. - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-14 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>|\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-15 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n| \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-16 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-17 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-18 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-19 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-20 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-21 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-22 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-23 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-24 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6|\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-25 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6|\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0|\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-26 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0|\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6|\u05E0\u05E4\u05EA</div>', '24-27 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0|\u05E4\u05EA</div>', '24-28 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', '24-29 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_rtl.html index d67ab239..73aeef0c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_24_rtl.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="rtl">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'left', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html index 1f9c64b..de769a9 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', @@ -44,54 +43,48 @@ selection_test( '<div contenteditable dir="ltr">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abcdef\u05d0|\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0|\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1|\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1|\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2|<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0|\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2|<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1|\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2|<img>\u05D3\u05D4\u05D5</div>', '25-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>|\u05D3\u05D4\u05D5</div>', '25-11 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abcdef\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5|</div>' - : '<div contenteditable dir="ltr">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3|\u05D4\u05D5</div>', '25-12 ltr left character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abcde|f\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abcdef\u05D0|\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4|\u05D5</div>', '25-13 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html index b3f438e..6d0668f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_25_rtl.html
@@ -3,46 +3,41 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abcdef\u05d0|\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">a|bcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abcdef\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">ab|cdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|cdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abc|def\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-2 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc|def\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">ab|cdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abcd|ef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">abcd|ef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc|def\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abcd|ef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-5 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html index d7f4b5c..767e291 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_ltr.html
@@ -3,52 +3,47 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2\u05d3\u05d4\u05d5abc<img>def</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', '26-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', '26-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', '26-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', '26-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5abc<img>def</div>', '26-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5|abc<img>def</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5abc<img>def</div>', '26-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', '26-6 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html index 0c5f38c..2e743d4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_26_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', @@ -44,54 +43,48 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5|abc<img>def</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>de|f</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5a|bc<img>def</div>', '26-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5a|bc<img>def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5|abc<img>def</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def|</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5ab|c<img>def</div>', '26-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5ab|c<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5a|bc<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc|<img>def</div>', '26-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc|<img>def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5ab|c<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>|def</div>', '26-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>|def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc|<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>d|ef</div>', '26-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>d|ef</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>|def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>de|f</div>', '26-11 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>d|ef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def|</div>', '26-12 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5abc<img>de|f</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def|</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def|</div>', '26-13 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html index e4cd0951..0872a6c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', @@ -32,59 +31,55 @@ selection_test( '<div contenteditable dir="ltr">abc<input>|\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>' - : '<div contenteditable dir="ltr">abc|<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc|<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1|\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>|\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1|\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2|<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2|<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img>|<img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1|\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img>|<img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>|\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2|<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>|\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3|\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img>|<img>\u05D3\u05D4\u05D5ghi</div>', '27-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3|\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>|\u05D3\u05D4\u05D5ghi</div>', '27-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>' - : '<div contenteditable dir="ltr">abc<input>|\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3|\u05D4\u05D5ghi</div>', '27-11 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', '27-12 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html index e61f5f8..acb1fcb4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_27_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>|\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>' - : '<div contenteditable dir="rtl">ab|c<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>' - : '<div contenteditable dir="rtl">abc|<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">ab|c<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">abc|<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-2 rtl left character'); selection_test( @@ -84,30 +79,24 @@ selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>' - : '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>', '27-12 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>' - : '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>', '27-13 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>', '27-14 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>' - : '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>', '27-15 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html index 5224f3f..26fe2781 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<input>abc<img><img>def\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-3 ltr left character'); selection_test( @@ -84,30 +79,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', '28-12 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', '28-13 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>', '28-14 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>', '28-15 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html index f2512aa..c8e423d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_28_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', @@ -32,53 +31,49 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>|abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>', '28-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>|abc<img><img>def\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>ab|c<img><img>def\u05D3\u05D4\u05D5</div>', '28-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>ab|c<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc|<img><img>def\u05D3\u05D4\u05D5</div>', '28-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc|<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>ab|c<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img>|<img>def\u05D3\u05D4\u05D5</div>', '28-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img>|<img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc|<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>|def\u05D3\u05D4\u05D5</div>', '28-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>|def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img>|<img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>d|ef\u05D3\u05D4\u05D5</div>', '28-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>d|ef\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>|def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', '28-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>d|ef\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', '28-11 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html index b197f893..0853d2e45 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', @@ -26,62 +25,54 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>\u05D3\u05D4\u05D5</span></div>', '29-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5|</span></div>' - : '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', '29-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab|c\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', '29-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab|c\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', '29-11 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html index 80fa7f92..b987cd1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_29_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0|\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-2 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html index 77c48d3..43a60db 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2abc<span>def</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>def</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>def</span></div>', '30-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>def</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>def</span></div>', '30-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|abc<span>def</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>def</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>def</span></div>', '30-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>def</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>def</span></div>', '30-3 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html index bc41af6..827a1e9 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_30_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abc<span>def</span></div>', @@ -26,62 +25,54 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|abc<span>def</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', '30-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|abc<span>def</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def|</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', '30-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>def</span></div>', '30-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', '30-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>|def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', '30-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', '30-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def|</span></div>', '30-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abc<span>de|f</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def|</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def|</span></div>', '30-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abc<span>de|f</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def</span>|</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def</span>|</div>', '30-11 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html index b3be925..8debdc41 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', @@ -32,29 +31,25 @@ selection_test( '<div contenteditable dir="ltr">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab<span>c\u05d0|\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', '31-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">ab<span>c\u05D0|\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', '31-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab<span>c\u05d0\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="ltr">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab<span>c\u05D0|\u05D1\u05D2def</span></div>', '31-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">ab<span>c\u05D0|\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', '31-7 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html index 1e44a60..cd7668d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_31_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0|\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', '31-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|ab<span>c\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', '31-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', '31-2 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab<span>|c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', '31-3 rtl left character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', '31-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def|</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', '31-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def|</span></div>', '31-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1\u05d2de|f</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def|</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def|</span></div>', '31-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1\u05d2de|f</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def</span>|</div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def</span>|</div>', '31-11 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html index 00c3a02..1755241 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_ltr.html
@@ -3,42 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1<span>\u05d2abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2|abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>|\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2|abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-4 ltr left character'); selection_test( @@ -56,38 +49,30 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2abc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', '32-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', '32-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2abc\u05d3\u05d4\u05d5|</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', '32-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2ab|c\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', '32-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2ab|c\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', '32-11 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html index 2e47540..8bd299c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_32_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', @@ -32,23 +31,19 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1<span>\u05d2abc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2a|bc\u05D3\u05D4\u05D5</span></div>', '32-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2a|bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1<span>\u05d2|abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', '32-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2a|bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', '32-6 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html index 006ed22..964ca210 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc<span>\u05D0\u05D1\u05D2def</span></div>', @@ -26,37 +25,31 @@ selection_test( '<div contenteditable dir="ltr">abc|<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<span>\u05d0|\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', '33-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<span>|\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<span>\u05d0|\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', '33-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc|<span>\u05D0\u05D1\u05D2def</span></div>', '33-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<span>\u05d0\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="ltr">abc|<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', '33-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', '33-7 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html index 46d80a7..826682b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_33_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0|\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', '33-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc<span>\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">abc|<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', '33-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">abc|<span>\u05D0\u05D1\u05D2def</span></div>', '33-2 rtl left character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', '33-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def|</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', '33-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def|</span></div>', '33-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1\u05d2de|f</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def|</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def|</span></div>', '33-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1\u05d2de|f</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def</span>|</div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def</span>|</div>', '33-11 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html index 9cbcd277..1ed5ca5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_ltr.html
@@ -3,40 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2<span>abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|<span>abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>|abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-4 ltr left character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>abc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', '34-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', '34-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>abc\u05d3\u05d4\u05d5|</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', '34-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>ab|c\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', '34-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>ab|c\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', '34-11 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html index b16fd00..4398cf2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_34_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', @@ -26,31 +25,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2<span>abc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', '34-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>|abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2<span>abc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', '34-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|<span>abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', '34-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', '34-6 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html index 56a547a..164c53af 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0def</div>', @@ -26,17 +25,13 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05D0|def</div>' - : '<div contenteditable dir="ltr">ab|c\u05D0def</div>', + '<div contenteditable dir="ltr">ab|c\u05D0def</div>', '35-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05D0|def</div>' - : '<div contenteditable dir="ltr">abc|\u05D0def</div>', + '<div contenteditable dir="ltr">abc|\u05D0def</div>', '35-4 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html index c7f53ee2..ef68535 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_35_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0|def</div>' - : '<div contenteditable dir="rtl">ab|c\u05D0def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0def</div>', '35-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05D0def</div>' - : '<div contenteditable dir="rtl">abc|\u05D0def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0def</div>', '35-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0def</div>', + '<div contenteditable dir="rtl">abc|\u05D0def</div>', '35-2 rtl left character'); selection_test( @@ -36,30 +31,24 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0|def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0|def</div>' - : '<div contenteditable dir="rtl">abc\u05D0de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0d|ef</div>', '35-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0d|ef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0|def</div>' - : '<div contenteditable dir="rtl">abc\u05D0def|</div>', + '<div contenteditable dir="rtl">abc\u05D0de|f</div>', '35-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0def|</div>', '35-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0de|f</div>' - : '<div contenteditable dir="rtl">abc\u05D0def|</div>', + '<div contenteditable dir="rtl">abc\u05D0def|</div>', '35-7 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html index 28c720b..217174a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_ltr.html
@@ -3,63 +3,52 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', '36-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', '36-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', '36-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', '36-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', '36-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', '36-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>', '36-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>', '36-7 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html index c950e1b..5ad71e3 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_36_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', @@ -26,9 +25,7 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', '36-3 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html index 3104db3d..482f101 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2<span>def</span></div>', @@ -26,35 +25,31 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|\u05d1\u05d2<span>def</span></div>' - : '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', '37-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>def</span></div>', '37-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2|<span>def</span></div>' - : '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', '37-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', '37-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>|def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', '37-7 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html index 8a947aa..6966314 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_37_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0|\u05D1\u05D2<span>def</span></div>' - : '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>', '37-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>' - : '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', '37-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>def</span></div>', '37-2 rtl left character'); selection_test( @@ -48,46 +43,36 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|<span>def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|<span>def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', '37-6 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>|def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>|def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', '37-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|<span>def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', '37-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>', '37-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>', '37-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def</span>|</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def</span>|</div>', '37-11 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html index a8d5ff8..3aacd024 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2abc<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|abc<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-3 ltr left character'); selection_test( @@ -48,46 +43,36 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc<span>\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', '38-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc<span>\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', '38-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', '38-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc<span>\u05d3\u05d4\u05d5|</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', '38-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2ab|c<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', '38-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2ab|c<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', '38-11 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html index 05276330..0c1acde 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_38_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', '38-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', '38-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', '38-5 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html index 751e853..ef6bdbe 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0<span>\u05D1\u05D2def</span></div>', @@ -26,35 +25,31 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0|<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', '39-3 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc|\u05D0<span>\u05D1\u05D2def</span></div>', '39-4 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0<span>|\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc|\u05D0<span>\u05D1\u05D2def</span></div>', '39-5 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0<span>\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="ltr">abc|\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0|<span>\u05D1\u05D2def</span></div>', '39-6 ltr left character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', '39-7 ltr left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html index 2d2ecd9..ceea56e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_39_rtl.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0|<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|bc\u05D0<span>\u05D1\u05D2def</span></div>', '39-0 rtl left character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|abc\u05d0<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">abc|\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', '39-1 rtl left character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">abc|\u05D0<span>\u05D1\u05D2def</span></div>', '39-2 rtl left character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', '39-7 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1\u05d2|def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def|</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', '39-8 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def|</span></div>', '39-9 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1\u05d2de|f</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def|</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def|</span></div>', '39-10 rtl left character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1\u05d2de|f</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def</span>|</div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def</span>|</div>', '39-11 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html index 9f262251..b8d809f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0|\u05d1\u05d2a<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-0 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-1 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2|a<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-2 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-3 ltr left character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>bc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', '40-7 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', '40-8 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>bc\u05d3\u05d4\u05d5|</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', '40-9 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>b|c\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', '40-10 ltr left character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>b|c\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', '40-11 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html index 441937c..dd8a741 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_40_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', @@ -26,31 +25,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2a<span>bc\u05d3|\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|<span>bc\u05D3\u05D4\u05D5</span></div>', '40-3 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|a<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', '40-4 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>|bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2|a<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', '40-5 rtl left character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', '40-6 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_ltr.html index dae274a..98cdafb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">|abc<!-- -->\n<!-- -->def</div>',
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_rtl.html index 4f92a6a7..09b9164 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_41_rtl.html
@@ -3,81 +3,64 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">|abc<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">ab|c \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">a|bc \n def</div>', '41-0 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">a|bc<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">|abc \n def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">ab|c \n def</div>', '41-1 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">ab|c<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="white-space: pre;">a|bc \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>', '41-2 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc|<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>', '41-3 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->|\n<!-- -->def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>', '41-4 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n|<!-- -->def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n| def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n de|f</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>', '41-5 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->|def</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n de|f</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>', '41-6 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->d|ef</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n de|f</div>', '41-7 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->de|f</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>', '41-8 rtl left character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->def|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n de|f</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>', '41-9 rtl left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_ltr.html index 143d2c4..52fa617 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_ltr.html
@@ -3,77 +3,64 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-0 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-1 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-2 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2|<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-3 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->|\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-4 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n|<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>', '42-5 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>', '42-6 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>', '42-7 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>', '42-8 ltr left character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4|\u05D5</div>', '42-9 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_rtl.html index 28376ae..79a9fa0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_42_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">|\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>',
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html index b74c48e..7a0955d2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_ltr.html
@@ -3,30 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-0 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-1 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-2 ltr left character'); selection_test( @@ -38,29 +31,25 @@ selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-4 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-5 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-6 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-7 ltr left character'); selection_test( @@ -78,37 +67,31 @@ selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', '43-10 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', '43-11 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>', '43-12 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', '43-13 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', '43-14 ltr left character'); selection_test( @@ -120,12 +103,12 @@ selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', '43-16 ltr left character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span>|</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', '43-17 ltr left character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html index 7745f5d6..6ccd6de 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_character_43_rtl.html
@@ -3,36 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-0 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-1 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-2 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-3 rtl left character'); selection_test( @@ -56,23 +49,19 @@ selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>', '43-7 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', '43-8 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', '43-9 rtl left character'); selection_test( @@ -96,23 +85,19 @@ selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', '43-13 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', selection => selection.modify('move', 'left', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', '43-14 rtl left character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>', '43-15 rtl left character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_right_character_in_mixed_bidi.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_right_character_in_mixed_bidi.html index 90705502..e6c34208 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_right_character_in_mixed_bidi.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_right_character_in_mixed_bidi.html
@@ -7,17 +7,12 @@ <div id="rtl" dir="rtl" contenteditable>זח ‪דה‪car ו‬‬ </div> <div id="log"></div> <script> -// When bidi caret affinity is enabled, carets are shown at different visual -// locations. Use the changed test expectations in this case. -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; -console.log(usesBidiAffinity); - test(function() { var sample = document.getElementById('ltr'); var selection = window.getSelection(); selection.collapse(sample.firstChild, 6); selection.modify('move', 'right', 'character'); - assert_equals(selection.anchorOffset, usesBidiAffinity ? 5 : 1); + assert_equals(selection.anchorOffset, 7); }, 'move right character'); test(function() {
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_01_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_01_rtl_multi_line.html index 415e3bd..0d830bcc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_01_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_01_rtl_multi_line.html
@@ -12,24 +12,24 @@ '<div contenteditable dir="rtl">|abc def<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-0 rtl left word'); selection_test( '<div contenteditable dir="rtl">a|bc def<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-1 rtl left word'); selection_test( '<div contenteditable dir="rtl">ab|c def<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-2 rtl left word'); selection_test( @@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>', '1-3 rtl left word'); selection_test( @@ -45,67 +45,71 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + : '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>', '1-4 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>', '1-5 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc de|f<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>', '1-6 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-7 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br>|<br><br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-8 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br>|<br>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-9 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-10 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>u|vw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>', + isMac + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-11 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uv|w xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>', + isMac + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-12 rtl left word'); selection_test( @@ -119,23 +123,23 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>', '1-14 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uvw x|yz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>', '1-15 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uvw xy|z</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + ? '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>' + : '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>', '1-16 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_ltr_multi_line.html index 79630c0..e0fe5ff 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_ltr_multi_line.html
@@ -71,43 +71,43 @@ selection_test( '<div contenteditable dir="ltr">abc def<div><br></div>|<div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-10 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-11 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br>|</div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-12 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div>|<div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-13 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-14 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br>|</div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-15 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-16 ltr left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_rtl_multi_line.html index bafe6f31..91147ca 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_02_rtl_multi_line.html
@@ -12,24 +12,24 @@ '<div contenteditable dir="rtl">|abc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-0 rtl left word'); selection_test( '<div contenteditable dir="rtl">a|bc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-1 rtl left word'); selection_test( '<div contenteditable dir="rtl">ab|c def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-2 rtl left word'); selection_test( @@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + : '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-3 rtl left word'); selection_test( @@ -45,115 +45,119 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + : '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-4 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-5 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc de|f<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-6 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-7 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-8 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br>|</div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-9 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div>|<div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-10 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-11 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br>|</div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-12 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div>|<div><br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-13 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-14 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br>|</div>uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-15 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', '2-16 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>u|vw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', + isMac + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', '2-17 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uv|w xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', + isMac + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', '2-18 rtl left word'); selection_test( @@ -167,23 +171,23 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', '2-20 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw x|yz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', '2-21 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xy|z</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>' - : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + ? '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>' + : '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', '2-22 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_ltr_multi_line.html index a6f776c..9f1c4a1e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_ltr_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-1 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-2 ltr left word'); selection_test( @@ -41,49 +41,49 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-5 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-6 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-7 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br>|<br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-8 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br>|<br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-9 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-10 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-11 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-12 ltr left word'); selection_test( @@ -101,18 +101,18 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-15 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-16 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-17 ltr left word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_rtl_multi_line.html index 808439ee..c056cfd 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_03_rtl_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-3 rtl left word'); selection_test( @@ -45,7 +45,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-4 rtl left word'); selection_test( @@ -53,7 +53,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-5 rtl left word'); selection_test( @@ -61,7 +61,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-6 rtl left word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-7 rtl left word'); selection_test( @@ -77,7 +77,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-8 rtl left word'); selection_test( @@ -85,7 +85,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-9 rtl left word'); selection_test( @@ -117,7 +117,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '3-13 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_ltr_multi_line.html index 0009b0b3..925ee0d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_ltr_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-1 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-2 ltr left word'); selection_test( @@ -41,85 +41,85 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-5 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-6 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-7 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-8 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br>|</div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-9 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-10 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-11 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-12 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-13 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-14 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-15 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-16 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-17 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-18 ltr left word'); selection_test( @@ -137,18 +137,18 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '4-21 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '4-22 ltr left word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '4-23 ltr left word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_rtl_multi_line.html index 0ac6de3b5..a8feb1e2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_04_rtl_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-3 rtl left word'); selection_test( @@ -45,7 +45,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-4 rtl left word'); selection_test( @@ -53,7 +53,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-5 rtl left word'); selection_test( @@ -61,79 +61,79 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-6 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-7 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-8 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br>|</div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-9 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-10 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-11 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-12 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-13 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-14 rtl left word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-15 rtl left word'); selection_test( @@ -165,7 +165,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '4-19 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_05_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_05_rtl_multi_line.html index fa7ebc39c..2517edef 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_05_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_05_rtl_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0| hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc |\u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-3 rtl left word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij| \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-7 rtl left word'); selection_test( @@ -101,7 +101,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-11 rtl left word'); selection_test( @@ -133,7 +133,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-15 rtl left word'); selection_test( @@ -141,7 +141,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-16 rtl left word'); selection_test( @@ -149,7 +149,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-17 rtl left word'); selection_test( @@ -157,7 +157,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-18 rtl left word'); selection_test( @@ -165,7 +165,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-19 rtl left word'); selection_test( @@ -173,7 +173,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-20 rtl left word'); selection_test( @@ -181,7 +181,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-21 rtl left word'); selection_test( @@ -189,7 +189,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-22 rtl left word'); selection_test( @@ -221,7 +221,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj| \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-26 rtl left word'); selection_test( @@ -245,7 +245,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0| opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |opq \u05D0\u05D0\u05D0</div>', '5-29 rtl left word'); selection_test( @@ -277,7 +277,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq |\u05D0\u05D0\u05D0</div>', '5-33 rtl left word'); selection_test( @@ -309,7 +309,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq |\u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0|</div>', '5-37 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_ltr_multi_line.html index 78c7c3c0..4b6c6ef 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_ltr_multi_line.html
@@ -89,13 +89,13 @@ selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-13 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-14 ltr left word'); selection_test( @@ -113,25 +113,25 @@ selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-17 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-18 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-19 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-20 ltr left word'); selection_test( @@ -197,43 +197,43 @@ selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-31 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-32 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-33 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-34 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-35 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-36 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-37 ltr left word'); selection_test( @@ -347,13 +347,13 @@ selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-56 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-57 ltr left word'); selection_test( @@ -371,18 +371,18 @@ selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-60 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-61 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-62 ltr left word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_rtl_multi_line.html index 391dad9d..32accc5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_06_rtl_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0| hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc |\u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-3 rtl left word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-7 rtl left word'); selection_test( @@ -101,7 +101,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-11 rtl left word'); selection_test( @@ -133,7 +133,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-15 rtl left word'); selection_test( @@ -164,32 +164,32 @@ '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-19 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-20 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 u|vw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-21 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uv|w xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-22 rtl left word'); selection_test( @@ -197,7 +197,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-23 rtl left word'); selection_test( @@ -205,103 +205,103 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-24 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw x|yz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-25 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xy|z <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-26 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-27 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz |<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-28 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-29 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br>|</div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-30 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-31 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-32 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-33 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-34 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-35 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-36 rtl left word'); selection_test( @@ -333,7 +333,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj| \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-40 rtl left word'); selection_test( @@ -357,7 +357,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0| mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-43 rtl left word'); selection_test( @@ -388,24 +388,24 @@ '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0| mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-47 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-48 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 m|n opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-49 rtl left word'); selection_test( @@ -421,23 +421,23 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-51 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn o|pq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-52 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn op|q \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-53 rtl left word'); selection_test( @@ -445,7 +445,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-54 rtl left word'); selection_test( @@ -477,7 +477,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '6-58 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_07_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_07_rtl_multi_line.html index 5335758..516f80e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_07_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_07_rtl_multi_line.html
@@ -12,24 +12,24 @@ '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + ? '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>' + : '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-0 rtl left word'); selection_test( '<div contenteditable dir="rtl">a|bc ghi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + ? '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>' + : '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-1 rtl left word'); selection_test( '<div contenteditable dir="rtl">ab|c ghi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + ? '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>' + : '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-2 rtl left word'); selection_test( @@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-3 rtl left word'); selection_test( @@ -45,91 +45,95 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-4 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc g|hi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>' + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-5 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc gh|i<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>' + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-6 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-7 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div>|</div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-8 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div>|<div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-9 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div>|</div><div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-10 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div>|<div></div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-11 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div>|</div>opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-12 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-13 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>o|pq xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>', + isMac + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-14 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>op|q xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>', + isMac + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-15 rtl left word'); selection_test( @@ -143,23 +147,23 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>', '7-17 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq x|yz</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>', '7-18 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xy|z</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>' - : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + ? '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>' + : '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>', '7-19 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_08_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_08_rtl_multi_line.html index 638a7478..f5e93225 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_08_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_08_rtl_multi_line.html
@@ -12,20 +12,24 @@ '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + ? '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>' + : '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-0 rtl left word'); selection_test( '<div contenteditable dir="rtl">a|bc ghi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>', + isMac + ? '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>' + : '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-1 rtl left word'); selection_test( '<div contenteditable dir="rtl">ab|c ghi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>', + isMac + ? '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>' + : '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-2 rtl left word'); selection_test( @@ -39,23 +43,23 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>', '8-4 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc g|hi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>' + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>', '8-5 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc gh|i<div></div><div></div><div></div></div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>' - : '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + ? '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>' + : '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>', '8-6 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_ltr_multi_line.html index 664ca830..5659529 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_ltr_multi_line.html
@@ -65,37 +65,37 @@ selection_test( '<div contenteditable dir="ltr">abc ghi<div><img src=../../resources/abe.png>|</div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="ltr">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-9 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc ghi<div><img src=../../resources/abe.png></div>|<div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="ltr">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-10 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc ghi<div><img src=../../resources/abe.png></div><div>|</div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="ltr">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-11 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc ghi<div><img src=../../resources/abe.png></div><div></div>|<div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="ltr">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-12 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc ghi<div><img src=../../resources/abe.png></div><div></div><div>|</div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="ltr">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-13 ltr left word'); selection_test( '<div contenteditable dir="ltr">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>|opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="ltr">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-14 ltr left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_rtl_multi_line.html index b62fde9..ef9546cc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_09_rtl_multi_line.html
@@ -12,24 +12,24 @@ '<div contenteditable dir="rtl">|abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + ? '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-0 rtl left word'); selection_test( '<div contenteditable dir="rtl">a|bc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-1 rtl left word'); selection_test( '<div contenteditable dir="rtl">ab|c ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-2 rtl left word'); selection_test( @@ -37,7 +37,7 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + : '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-3 rtl left word'); selection_test( @@ -45,99 +45,103 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + : '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-4 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc g|hi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + ? '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-5 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc gh|i<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + ? '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-6 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi|<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>', '9-7 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div>|<img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>', '9-8 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png>|</div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-9 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div>|<div></div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-10 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div>|</div><div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-11 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div>|<div></div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-12 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div>|</div>opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-13 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>|opq rst</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-14 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>o|pq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>', + isMac + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-15 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>op|q rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>', + isMac + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-16 rtl left word'); selection_test( @@ -151,23 +155,23 @@ selection => selection.modify('move', 'left', 'word'), isMac ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>', '9-18 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq r|st</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>', '9-19 rtl left word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rs|t</div>', selection => selection.modify('move', 'left', 'word'), isMac - ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>' - : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + ? '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>' + : '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>', '9-20 rtl left word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_1.html index 39c7b353c..170e884 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_1.html
@@ -120,4 +120,3 @@ '<div contenteditable dir="ltr">abc def hij |opq</div>', '1-18 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_10.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_10.html index ce15114c..712029b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_10.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_10.html
@@ -15,109 +15,108 @@ selection_test( '<div contenteditable dir="ltr">א|בצ דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-1 left word'); selection_test( '<div contenteditable dir="ltr">אב|צ דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-2 left word'); selection_test( '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-3 left word'); selection_test( '<div contenteditable dir="ltr">אבצ |דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-4 left word'); selection_test( '<div contenteditable dir="ltr">אבצ ד|עפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-5 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דע|פ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-6 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-7 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-8 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-9 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-10 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ |היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-11 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ ה|יח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-12 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ הי|ח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-13 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-14 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח |ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-15 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח ו|פק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-16 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח ופ|ק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-17 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח ופק|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-18 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_11.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_11.html index 5ba3e0e..8e71e578 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_11.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_11.html
@@ -15,91 +15,91 @@ selection_test( '<div contenteditable dir="ltr">א|בצ דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-1 left word'); selection_test( '<div contenteditable dir="ltr">אב|צ דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-2 left word'); selection_test( '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-3 left word'); selection_test( '<div contenteditable dir="ltr">אבצ |דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-4 left word'); selection_test( '<div contenteditable dir="ltr">אבצ ד|עפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-5 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דע|פ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-6 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-7 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ |היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-8 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ ה|יח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-9 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ הי|ח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-10 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח| abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-11 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-12 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-13 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-14 left word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח |abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-15 left word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="ltr">אבצ דעפ היח abc def |hij</div>', '11-26 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_12.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_12.html index e556ed1..a9590d0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_12.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_12.html
@@ -105,91 +105,91 @@ selection_test( '<div contenteditable dir="ltr">abc def hij א|בצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-16 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אב|צ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-17 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-18 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ |דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-19 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ ד|עפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-20 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דע|פ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-21 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-22 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ |היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-23 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ ה|יח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-24 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ הי|ח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-25 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח| opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-26 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-27 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-28 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-29 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח |opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-30 left word'); selection_test( @@ -258,4 +258,3 @@ '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח opq rst |uvw</div>', '12-41 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_13.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_13.html index f966a77..272716e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_13.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_13.html
@@ -9,109 +9,109 @@ selection_test( '<div contenteditable dir="rtl">|abc def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-0 left word'); selection_test( '<div contenteditable dir="rtl">a|bc def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq|</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-1 left word'); selection_test( '<div contenteditable dir="rtl">ab|c def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq|</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-2 left word'); selection_test( '<div contenteditable dir="rtl">abc| def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq|</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-3 left word'); selection_test( '<div contenteditable dir="rtl">abc |def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-4 left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-5 left word'); selection_test( '<div contenteditable dir="rtl">abc de|f hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-6 left word'); selection_test( '<div contenteditable dir="rtl">abc def| hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-7 left word'); selection_test( '<div contenteditable dir="rtl">abc def | hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-8 left word'); selection_test( '<div contenteditable dir="rtl">abc def | hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-9 left word'); selection_test( '<div contenteditable dir="rtl">abc def | hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-10 left word'); selection_test( '<div contenteditable dir="rtl">abc def |hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-11 left word'); selection_test( '<div contenteditable dir="rtl">abc def h|ij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-12 left word'); selection_test( '<div contenteditable dir="rtl">abc def hi|j opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-13 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij| opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc def hij opq|</div>', '13-14 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij |opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc def hij opq|</div>', '13-15 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij o|pq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc def hij opq|</div>', '13-16 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij op|q</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc def hij opq|</div>', '13-17 left word'); selection_test( @@ -120,4 +120,3 @@ '<div contenteditable dir="rtl">abc def hij opq|</div>', '13-18 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_14.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_14.html index f9ceba7b..ce220abe 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_14.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_14.html
@@ -9,169 +9,169 @@ selection_test( '<div contenteditable dir="rtl">| abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-0 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-1 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-2 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-3 left word'); selection_test( '<div contenteditable dir="rtl"> |abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-4 left word'); selection_test( '<div contenteditable dir="rtl"> a|bc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij opq| </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-5 left word'); selection_test( '<div contenteditable dir="rtl"> ab|c def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij opq| </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-6 left word'); selection_test( '<div contenteditable dir="rtl"> abc| def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij opq| </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-7 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-8 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-9 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-10 left word'); selection_test( '<div contenteditable dir="rtl"> abc |def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-11 left word'); selection_test( '<div contenteditable dir="rtl"> abc d|ef hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-12 left word'); selection_test( '<div contenteditable dir="rtl"> abc de|f hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-13 left word'); selection_test( '<div contenteditable dir="rtl"> abc def| hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-14 left word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-15 left word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-16 left word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-17 left word'); selection_test( '<div contenteditable dir="rtl"> abc def |hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-18 left word'); selection_test( '<div contenteditable dir="rtl"> abc def h|ij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-19 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hi|j opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-20 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij| opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-21 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-22 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-23 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-24 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij |opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-25 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij o|pq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-26 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij op|q </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-27 left word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="rtl"> abc def hij opq| </div>', '14-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_15.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_15.html index 70de0e2..1c8c087 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_15.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_15.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl"> abc| אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc | אבצ def </div>', + '<div contenteditable dir="rtl"> abc \u05D0\u05D1\u05E6 | def </div>', '15-7 left word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="rtl"> abc אבצ| def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc אבצ | def </div>', + '<div contenteditable dir="rtl"> abc \u05D0\u05D1\u05E6 def| </div>', '15-14 left word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="rtl"> abc אבצ def| </div>', '15-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_16.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_16.html index 3ba58e1..e4792ee 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_16.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_16.html
@@ -9,43 +9,43 @@ selection_test( '<div contenteditable dir="rtl">| abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-0 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-1 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-2 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-3 left word'); selection_test( '<div contenteditable dir="rtl"> |abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-4 left word'); selection_test( '<div contenteditable dir="rtl"> a|bc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def | אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-5 left word'); selection_test( '<div contenteditable dir="rtl"> ab|c def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def | אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-6 left word'); selection_test( @@ -57,43 +57,43 @@ selection_test( '<div contenteditable dir="rtl"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-8 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-9 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-10 left word'); selection_test( '<div contenteditable dir="rtl"> abc |def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-11 left word'); selection_test( '<div contenteditable dir="rtl"> abc d|ef אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-12 left word'); selection_test( '<div contenteditable dir="rtl"> abc de|f אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-13 left word'); selection_test( '<div contenteditable dir="rtl"> abc def| אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def | אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '16-14 left word'); selection_test( @@ -135,7 +135,7 @@ selection_test( '<div contenteditable dir="rtl"> abc def אבצ| דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ | דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '16-21 left word'); selection_test( @@ -177,43 +177,43 @@ selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ| hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ | hij opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-28 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-29 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-30 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-31 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ |hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-32 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ h|ij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq| </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-33 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hi|j opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq| </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-34 left word'); selection_test( @@ -225,37 +225,37 @@ selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '16-36 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '16-37 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '16-38 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij |opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '16-39 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij o|pq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '16-40 left word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij op|q </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '16-41 left word'); selection_test( @@ -288,4 +288,3 @@ '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq| </div>', '16-46 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_17.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_17.html index af39979..0b1eeef 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_17.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_17.html
@@ -9,133 +9,133 @@ selection_test( '<div contenteditable dir="rtl">| abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-0 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-1 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-2 left word'); selection_test( '<div contenteditable dir="rtl"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-3 left word'); selection_test( '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-4 left word'); selection_test( '<div contenteditable dir="rtl"> a|bc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-5 left word'); selection_test( '<div contenteditable dir="rtl"> ab|c def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-6 left word'); selection_test( '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-7 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-8 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-9 left word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-10 left word'); selection_test( '<div contenteditable dir="rtl"> abc |def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-11 left word'); selection_test( '<div contenteditable dir="rtl"> abc d|ef hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-12 left word'); selection_test( '<div contenteditable dir="rtl"> abc de|f hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-13 left word'); selection_test( '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-14 left word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-15 left word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-16 left word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-17 left word'); selection_test( '<div contenteditable dir="rtl"> abc def |hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-18 left word'); selection_test( '<div contenteditable dir="rtl"> abc def h|ij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-19 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hi|j אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-20 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij| אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-21 left word'); selection_test( @@ -177,7 +177,7 @@ selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ| דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ | דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-28 left word'); selection_test( @@ -219,7 +219,7 @@ selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ| היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ | היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-35 left word'); selection_test( @@ -261,127 +261,127 @@ selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח| opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-42 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-43 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-44 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-45 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח |opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-46 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח o|pq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw| </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-47 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח op|q rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw| </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-48 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw| </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-49 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-50 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-51 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-52 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq |rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-53 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq r|st uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-54 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rs|t uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-55 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-56 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-57 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-58 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-59 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst |uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-60 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst u|vw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-61 left word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uv|w </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '17-62 left word'); selection_test( @@ -414,4 +414,3 @@ '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw| </div>', '17-67 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_18.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_18.html index e3e0a84..d96e92a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_18.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_18.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ| דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ | דעפ חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '18-7 left word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ| חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ | חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '18-14 left word'); selection_test( @@ -135,7 +135,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח| ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '18-21 left word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="rtl"> אבצ דעפ חיח ופק| </div>', '18-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_19.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_19.html index eebac237..c175ab7 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_19.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_19.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ| abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ | abc דעפ </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 abc | \u05D3\u05E2\u05E4 </div>', '19-7 left word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ abc| דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ abc | דעפ </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4| </div>', '19-14 left word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="rtl"> אבצ abc דעפ| </div>', '19-26 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_2.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_2.html index b45d5d1..8f19e62b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_2.html
@@ -204,4 +204,3 @@ '<div contenteditable dir="ltr"> abc def hij | opq </div>', '2-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_20.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_20.html index 6a5c72d..471b4ab 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_20.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_20.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ| דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ | דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-7 left word'); selection_test( @@ -93,43 +93,43 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ| abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ | abc def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-14 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-15 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-16 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-17 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ |abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-18 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ a|bc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc def | חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-19 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ ab|c def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc def | חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-20 left word'); selection_test( @@ -141,37 +141,37 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc | def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-22 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc | def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-23 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc |def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-24 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc d|ef חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-25 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc de|f חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-26 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc def| חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc def | חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '20-27 left word'); selection_test( @@ -207,7 +207,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc def חיח| ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc def חיח | ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '20-33 left word'); selection_test( @@ -276,4 +276,3 @@ '<div contenteditable dir="rtl"> אבצ דעפ abc def חיח ופק| </div>', '20-44 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_21.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_21.html index 64fd5da..b059ef25 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_21.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_21.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-7 left word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-14 left word'); selection_test( @@ -135,121 +135,121 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח| abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-21 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-22 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-23 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-24 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-25 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח a|bc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-26 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח ab|c def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-27 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-28 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-29 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-30 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-31 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc d|ef jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-32 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc de|f jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-33 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-34 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-35 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-36 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-37 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def j|ih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-38 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def ji|h ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-39 left word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih| ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-40 left word'); selection_test( @@ -285,7 +285,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih ופק | ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '21-46 left word'); selection_test( @@ -315,7 +315,7 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '21-51 left word'); selection_test( @@ -390,4 +390,3 @@ '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', '21-63 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_22.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_22.html index 4411509..4cabe7fa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_22.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_22.html
@@ -120,4 +120,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |opq</div>', '22-18 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_23.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_23.html index eee855e..22ed972a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_23.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_23.html
@@ -204,4 +204,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', '23-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_24.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_24.html index c7d9c2ef..5a1680b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_24.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_24.html
@@ -162,4 +162,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ |def </div>', '24-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_25.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_25.html index 99c09b3..cd6cb3b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_25.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_25.html
@@ -123,13 +123,13 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def א|בצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-19 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אב|צ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-20 left word'); selection_test( @@ -165,43 +165,43 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ ד|דפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-26 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דד|פ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-27 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ| hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-28 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-29 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-30 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-31 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-32 left word'); selection_test( @@ -288,4 +288,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij |opq </div>', '25-46 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_26.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_26.html index ea172ca..c1e687b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_26.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_26.html
@@ -165,127 +165,127 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij א|בצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-26 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אב|צ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-27 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-28 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-29 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-30 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-31 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ |דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-32 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ ד|עפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-33 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דע|פ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-34 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-35 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-36 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-37 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-38 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ |היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-39 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ ה|יח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-40 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ הי|ח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-41 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח| opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-42 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-43 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-44 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-45 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-46 left word'); selection_test( @@ -414,4 +414,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', '26-67 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_27.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_27.html index 8ffc0bc..f6fd868 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_27.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_27.html
@@ -39,169 +39,168 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> א|בצ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-5 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אב|צ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-6 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-7 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-8 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-9 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-10 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-11 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ ד|עפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-12 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דע|פ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-13 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-14 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-15 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-16 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-17 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-18 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ ח|יח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-19 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חי|ח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-20 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-21 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-22 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-23 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-24 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-25 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ו|פק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-26 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופ|ק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-27 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק| </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-28 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-29 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-30 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-31 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק |</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_28.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_28.html index 95f1f07a..1c8c7a60 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_28.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_28.html
@@ -168,4 +168,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc |דעפ </div>', '28-26 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_29.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_29.html index 8ada3bb..35bce1e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_29.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_29.html
@@ -39,13 +39,13 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> א|בצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-5 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אב|צ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-6 left word'); selection_test( @@ -81,43 +81,43 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ ד|עפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-12 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דע|פ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-13 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-14 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-15 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-16 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-17 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-18 left word'); selection_test( @@ -195,13 +195,13 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def ח|יח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-31 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חי|ח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-32 left word'); selection_test( @@ -237,43 +237,42 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ו|פק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-38 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופ|ק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-39 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק| </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-40 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-41 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-42 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-43 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק |</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-44 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_3.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_3.html index b8ed927..1ac33e7 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_3.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_3.html
@@ -162,4 +162,3 @@ '<div contenteditable dir="ltr"> abc אבצ | def </div>', '3-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_30.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_30.html index 339824f..8c2dcf6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_30.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_30.html
@@ -39,127 +39,127 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> א|בצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-5 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אב|צ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-6 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-7 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-8 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-9 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-10 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-11 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ ד|עפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-12 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דע|פ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-13 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-14 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-15 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-16 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-17 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-18 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ ח|יח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-19 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חי|ח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-20 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-21 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-22 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-23 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-24 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-25 left word'); selection_test( @@ -273,121 +273,120 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ו|פק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-44 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופ|ק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-45 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-46 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק | ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-47 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק |ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-48 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ו|פק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-49 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופ|ק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-50 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-51 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-52 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-53 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-54 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-55 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק ר|סת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-56 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רס|ת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-57 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-58 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-59 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-60 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-61 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-62 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-63 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_31.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_31.html index 379c1ce..5a4f8ea 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_31.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_31.html
@@ -15,109 +15,108 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">א|בצ דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-1 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אב|צ דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-2 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-3 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ |דעפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-4 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ ד|עפ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-5 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דע|פ היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-6 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-7 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-8 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-9 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-10 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ |היח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-11 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ ה|יח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-12 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ הי|ח ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-13 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-14 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |ופק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-15 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ו|פק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-16 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופ|ק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-17 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופק|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-18 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_32.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_32.html index 4f4be49..c0352534 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_32.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_32.html
@@ -15,91 +15,91 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">א|בצ דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-1 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אב|צ דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-2 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-3 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ |דעפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">|\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-4 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ ד|עפ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-5 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דע|פ היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-6 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-7 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ |היח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-8 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ ה|יח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-9 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ הי|ח abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-10 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-11 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-12 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-13 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-14 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-15 left word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח abc def |hij</div>', '32-26 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_33.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_33.html index ae493ea..31c199f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_33.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_33.html
@@ -105,91 +105,91 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij א|בצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-16 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אב|צ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-17 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-18 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ |דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-19 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ ד|עפ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-20 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דע|פ היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-21 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-22 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ |היח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-23 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ ה|יח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-24 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ הי|ח opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-25 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח| opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-26 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-27 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-28 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-29 left word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-30 left word'); selection_test( @@ -258,4 +258,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח opq rst |uvw</div>', '33-41 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_34.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_34.html index 8e35e11..818307cb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_34.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_34.html
@@ -9,109 +9,109 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">a|bc def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">ab|c def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-3 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-4 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc d|ef hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-5 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc de|f hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-6 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-10 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-11 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def h|ij opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-12 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hi|j opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-13 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', '34-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', '34-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij o|pq</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', '34-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij op|q</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', '34-17 left word'); selection_test( @@ -120,4 +120,3 @@ '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', '34-18 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_35.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_35.html index 05dccaf3..94a45c4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_35.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_35.html
@@ -9,169 +9,169 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-3 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-4 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> a|bc def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-5 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> ab|c def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-6 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-10 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-11 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc d|ef hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-12 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc de|f hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-13 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-17 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-18 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def h|ij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-19 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hi|j opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-20 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-21 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-22 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-23 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-24 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-25 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij o|pq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-26 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij op|q </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-27 left word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', '35-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_36.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_36.html index 59f4a10..22b0741 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_36.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_36.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| abc אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '36-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '36-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '36-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '36-3 left word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc| אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '36-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '36-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '36-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | אבצ def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '36-10 left word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ| def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '36-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ | def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '36-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ | def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '36-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ | def </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '36-17 left word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ def |</div>', '36-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_37.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_37.html index 013d3ae..c3b0422 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_37.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_37.html
@@ -9,43 +9,43 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-3 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-4 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> a|bc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-5 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> ab|c def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-6 left word'); selection_test( @@ -57,61 +57,61 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-10 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc |def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-11 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc d|ef אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-12 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc de|f אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-13 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def| אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '37-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '37-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '37-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '37-17 left word'); selection_test( @@ -135,25 +135,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ |דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '37-21 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ |דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '37-22 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ |דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '37-23 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ |דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '37-24 left word'); selection_test( @@ -177,43 +177,43 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ| hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-28 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-29 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-30 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-31 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-32 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ h|ij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-33 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hi|j opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-34 left word'); selection_test( @@ -225,37 +225,37 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '37-36 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '37-37 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '37-38 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij |opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '37-39 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij o|pq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '37-40 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij op|q </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '37-41 left word'); selection_test( @@ -288,4 +288,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq |</div>', '37-46 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_38.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_38.html index 34f1e45..a7a34e02f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_38.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_38.html
@@ -9,151 +9,151 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-3 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-4 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> a|bc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-5 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> ab|c def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-6 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-10 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-11 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc d|ef hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-12 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc de|f hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-13 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-17 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-18 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def h|ij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-19 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hi|j אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-20 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-21 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-22 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-23 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-24 left word'); selection_test( @@ -177,25 +177,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ |דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '38-28 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ |דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '38-29 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ |דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '38-30 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ |דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '38-31 left word'); selection_test( @@ -219,25 +219,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ |היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-35 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ |היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-36 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ |היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-37 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ |היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-38 left word'); selection_test( @@ -261,127 +261,127 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח| opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-42 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-43 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-44 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-45 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-46 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח o|pq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-47 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח op|q rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-48 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw |</div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-49 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-50 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-51 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-52 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq |rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-53 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq r|st uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-54 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rs|t uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-55 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-56 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-57 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-58 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-59 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-60 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst u|vw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-61 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uv|w </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '38-62 left word'); selection_test( @@ -414,4 +414,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw |</div>', '38-67 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_39.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_39.html index 049823e3..5db14be 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_39.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_39.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-3 left word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '39-10 left word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '39-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '39-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '39-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '39-17 left word'); selection_test( @@ -135,25 +135,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '39-21 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '39-22 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '39-23 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '39-24 left word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח ופק |</div>', '39-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_4.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_4.html index 0b5057aa..5e5ca52 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_4.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_4.html
@@ -123,13 +123,13 @@ selection_test( '<div contenteditable dir="ltr"> abc def א|בצ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '4-19 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אב|צ דדפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '4-20 left word'); selection_test( @@ -165,43 +165,43 @@ selection_test( '<div contenteditable dir="ltr"> abc def אבצ ד|דפ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def | אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-26 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דד|פ hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def | אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-27 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ| hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-28 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-29 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-30 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-31 left word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ |hij opq </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-32 left word'); selection_test( @@ -288,4 +288,3 @@ '<div contenteditable dir="ltr"> abc def אבצ דדפ hij | opq </div>', '4-46 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_40.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_40.html index 8a54e88..eacd24d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_40.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_40.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| אבצ abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '40-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '40-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '40-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '40-3 left word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ| abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '40-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '40-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '40-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | abc דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '40-10 left word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc| דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '40-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc | דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '40-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc | דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '40-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc | דעפ </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '40-17 left word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc דעפ |</div>', '40-26 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_41.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_41.html index 1584d13..c72b0cc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_41.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_41.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-3 left word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-10 left word'); selection_test( @@ -93,43 +93,43 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ| abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-17 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-18 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ a|bc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-19 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ ab|c def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-20 left word'); selection_test( @@ -141,49 +141,49 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc | def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-22 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc | def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-23 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc |def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-24 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc d|ef חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-25 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc de|f חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-26 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def| חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '41-27 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '41-28 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '41-29 left word'); selection_test( @@ -207,25 +207,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '41-33 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '41-34 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '41-35 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח |ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '41-36 left word'); selection_test( @@ -276,4 +276,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח ופק |</div>', '41-44 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_42.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_42.html index f83b42a..c2da2e3 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_42.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_42.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">| אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-0 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-1 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-2 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-3 left word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-7 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-8 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-9 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-10 left word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-14 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-15 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-16 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-17 left word'); selection_test( @@ -135,133 +135,133 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח| abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-21 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-22 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-23 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-24 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-25 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח a|bc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-26 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח ab|c def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-27 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-28 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-29 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-30 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-31 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc d|ef jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-32 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc de|f jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-33 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-34 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-35 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-36 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-37 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def j|ih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-38 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def ji|h ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-39 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih| ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-40 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-41 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-42 left word'); selection_test( @@ -285,13 +285,13 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק |ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '42-46 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק | ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק |ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '42-47 left word'); selection_test( @@ -315,25 +315,25 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '42-51 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '42-52 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '42-53 left word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '42-54 left word'); selection_test( @@ -390,4 +390,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', '42-63 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_43.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_43.html index bc394a1d..4d37b88 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_43.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_43.html
@@ -156,4 +156,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 abc |def</div>', '43-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_5.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_5.html index 70b30ea1..e9eeeae 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_5.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_5.html
@@ -165,127 +165,127 @@ selection_test( '<div contenteditable dir="ltr"> abc def hij א|בצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-26 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אב|צ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-27 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-28 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-29 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-30 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-31 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ |דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-32 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ ד|עפ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-33 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דע|פ היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-34 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-35 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-36 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-37 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-38 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ |היח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-39 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ ה|יח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-40 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ הי|ח opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-41 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח| opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-42 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-43 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-44 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-45 left word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח |opq rst uvw </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-46 left word'); selection_test( @@ -414,4 +414,3 @@ '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח opq rst | uvw </div>', '5-67 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_6.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_6.html index 2438456..85a7f3f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_6.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_6.html
@@ -39,169 +39,168 @@ selection_test( '<div contenteditable dir="ltr"> א|בצ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-5 left word'); selection_test( '<div contenteditable dir="ltr"> אב|צ דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-6 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-7 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-8 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-9 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-10 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ |דעפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-11 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ ד|עפ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-12 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דע|פ חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-13 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-14 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-15 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-16 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-17 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ |חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-18 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ ח|יח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-19 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חי|ח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-20 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-21 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-22 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-23 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-24 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח |ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-25 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ו|פק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-26 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופ|ק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-27 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק| </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-28 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-29 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-30 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-31 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק |</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-32 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_7.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_7.html index b581ce6..5f54a87 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_7.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_7.html
@@ -168,4 +168,3 @@ '<div contenteditable dir="ltr"> אבצ abc | דעפ </div>', '7-26 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_8.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_8.html index 62ee2b4..f6833b6b6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_8.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_8.html
@@ -39,13 +39,13 @@ selection_test( '<div contenteditable dir="ltr"> א|בצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-5 left word'); selection_test( '<div contenteditable dir="ltr"> אב|צ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-6 left word'); selection_test( @@ -81,43 +81,43 @@ selection_test( '<div contenteditable dir="ltr"> אבצ ד|עפ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-12 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דע|פ abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-13 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ| abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-14 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-15 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-16 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-17 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ |abc def חיח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-18 left word'); selection_test( @@ -195,13 +195,13 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def ח|יח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-31 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חי|ח ופק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-32 left word'); selection_test( @@ -237,43 +237,42 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ו|פק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def | חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-38 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופ|ק </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def | חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-39 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק| </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-40 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-41 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-42 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-43 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק |</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-44 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_9.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_9.html index 955b5df..5687222 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_9.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_multi_space_9.html
@@ -39,127 +39,127 @@ selection_test( '<div contenteditable dir="ltr"> א|בצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-5 left word'); selection_test( '<div contenteditable dir="ltr"> אב|צ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-6 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-7 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-8 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-9 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-10 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-11 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ ד|עפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-12 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דע|פ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-13 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-14 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-15 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-16 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-17 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-18 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ ח|יח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-19 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חי|ח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-20 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח| abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-21 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-22 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-23 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-24 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-25 left word'); selection_test( @@ -273,121 +273,120 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ו|פק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-44 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופ|ק ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-45 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-46 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק | ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-47 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק |ופק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-48 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ו|פק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-49 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופ|ק רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-50 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-51 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-52 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-53 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-54 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-55 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק ר|סת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-56 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רס|ת </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-57 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-58 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-59 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-60 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-61 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת | </div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-62 left word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-63 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_1.html index 85bb8314..06959c1a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_1.html
@@ -15,13 +15,13 @@ selection_test( '<div contenteditable dir="ltr">א|אא <span>בב</span></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 <span>\u05D1\u05D1</span></div>', '1-1 left word'); selection_test( '<div contenteditable dir="ltr">אא|א <span>בב</span></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 <span>\u05D1\u05D1</span></div>', '1-2 left word'); selection_test( @@ -45,13 +45,12 @@ selection_test( '<div contenteditable dir="ltr">אאא <span>ב|ב</span></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא <span>בב</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |<span>\u05D1\u05D1</span></div>', '1-6 left word'); selection_test( '<div contenteditable dir="ltr">אאא <span>בב|</span></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |<span>\u05D1\u05D1</span></div>', '1-7 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_10.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_10.html index b4be6bbb..d76c2da 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_10.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_10.html
@@ -15,145 +15,144 @@ selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-1 left word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-2 left word'); selection_test( '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-3 left word'); selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-4 left word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-5 left word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-6 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-7 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ |<span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-8 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>|היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-9 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>ה|יח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-10 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>הי|ח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-11 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-12 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח |ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-13 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ו|פק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-14 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופ|ק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-15 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק|</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-16 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>|ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-17 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ו|וש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-18 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>וו|ש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-19 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-20 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש |כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-21 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כ|טז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-22 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כט|ז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-23 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כטז|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_11.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_11.html index 760affb3..a189427 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_11.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_11.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אבד| דעפ <span dir="ltr">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |דעפ <span dir="ltr">abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-3 left word'); selection_test( @@ -51,31 +51,31 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ| <span dir="ltr">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span dir="ltr">abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-7 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ |<span dir="ltr">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-8 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">|abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-9 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">a|bc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-10 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">ab|c def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-11 left word'); selection_test( @@ -87,19 +87,19 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc |def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '11-13 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc d|ef</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '11-14 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc de|f</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '11-15 left word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '11-20 left word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש כטז|</div>', '11-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_12.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_12.html index f4ec2f9..2b95a18b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_12.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_12.html
@@ -15,55 +15,55 @@ selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-1 left word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-2 left word'); selection_test( '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-3 left word'); selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-4 left word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-5 left word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-6 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc |def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-7 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ |<span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-8 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">|abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-9 left word'); selection_test( @@ -117,43 +117,42 @@ selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ו|וש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-18 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>וו|ש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-19 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-20 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש |כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-21 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כ|טז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-22 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כט|ז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-23 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כטז|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_13.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_13.html index 622f4fdd..f9541f54 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_13.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_13.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אבד| דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-3 left word'); selection_test( @@ -51,31 +51,31 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ| <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-7 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ |<span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-8 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>|abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-9 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>a|bc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-10 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>ab|c def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-11 left word'); selection_test( @@ -87,19 +87,19 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc |def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '13-13 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc d|ef</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '13-14 left word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc de|f</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '13-15 left word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '13-20 left word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש כטז|</div>', '13-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_14.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_14.html index d30d17e..5ae2e92 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_14.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_14.html
@@ -15,13 +15,13 @@ selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-1 left word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-2 left word'); selection_test( @@ -39,31 +39,31 @@ selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-5 left word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-6 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-7 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ |<span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-8 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>|abc def</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-9 left word'); selection_test( @@ -117,13 +117,13 @@ selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ו|וש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-18 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>וו|ש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-19 left word'); selection_test( @@ -141,19 +141,18 @@ selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כ|טז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc |def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-22 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כט|ז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc |def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-23 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כטז|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_15.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_15.html index cd52c06..254ef60 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_15.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_15.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אבד| opq דעפ <span dir="ltr">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |opq דעפ <span dir="ltr">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq| דעפ <span dir="ltr">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq |דעפ <span dir="ltr">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-7 left word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ| <span dir="ltr">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ |<span dir="ltr">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-11 left word'); selection_test( @@ -93,61 +93,61 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">a|bc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-14 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">ab|c אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-15 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-16 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc |אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-17 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc א|אא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-18 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אא|א def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-19 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא| def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '15-20 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא |def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc |אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '15-21 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא d|ef</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc |אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '15-22 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא de|f</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc |אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '15-23 left word'); selection_test( @@ -177,7 +177,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש| rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst |\u05DB\u05D8\u05D6</div>', '15-28 left word'); selection_test( @@ -201,7 +201,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש rst| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש rst |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6|</div>', '15-32 left word'); selection_test( @@ -228,4 +228,3 @@ '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש rst כטז|</div>', '15-36 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_16.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_16.html index 71d45d7..d1e1a91 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_16.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_16.html
@@ -63,31 +63,31 @@ selection_test( '<div contenteditable dir="ltr">אבד opq ד|עפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-9 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דע|פ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-10 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-11 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-12 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">|abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-13 left word'); selection_test( @@ -111,31 +111,31 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc |אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-17 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc א|אא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-18 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אא|א def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-19 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא |def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-20 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא |def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq |דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-21 left word'); selection_test( @@ -165,25 +165,25 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ו|וש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq |דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-26 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>וו|ש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq |דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-27 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש| rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-28 left word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש |rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-29 left word'); selection_test( @@ -228,4 +228,3 @@ '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש rst |כטז</div>', '16-36 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_17.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_17.html index 8801a892..491590e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_17.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_17.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אבד| opq דעפ <span>abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |opq דעפ <span>abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '17-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq| דעפ <span>abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq |דעפ <span>abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '17-7 left word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ| <span>abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ |<span>abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '17-11 left word'); selection_test( @@ -105,7 +105,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span>abc| אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span>abc |אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '17-16 left word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא| def</span>ווש rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא |def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '17-20 left word'); selection_test( @@ -177,7 +177,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא def</span>ווש| rst כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst |\u05DB\u05D8\u05D6</div>', '17-28 left word'); selection_test( @@ -201,7 +201,7 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא def</span>ווש rst| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא def</span>ווש rst |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6|</div>', '17-32 left word'); selection_test( @@ -228,4 +228,3 @@ '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא def</span>ווש rst כטז|</div>', '17-36 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_18.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_18.html index b41319e3..3f61a575 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_18.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_18.html
@@ -228,4 +228,3 @@ '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא def</span>ווש rst |כטז</div>', '18-36 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_19.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_19.html index a7a9055..851e81aa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_19.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_19.html
@@ -69,13 +69,13 @@ selection_test( '<div contenteditable dir="ltr">aaa <span>bbb א|אא </span>ווש</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb |\u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9</div>', '19-10 left word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אא|א </span>ווש</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb |\u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9</div>', '19-11 left word'); selection_test( @@ -99,19 +99,18 @@ selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>ו|וש</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb |אאא </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-15 left word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>וו|ש</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb |אאא </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-16 left word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>ווש|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-17 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_2.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_2.html index 051411c..15c4e233 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_2.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אאא| <span>בב</span></div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא |<span>בב</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 <span>\u05D1\u05D1|</span></div>', '2-3 left word'); selection_test( @@ -54,4 +54,3 @@ '<div contenteditable dir="rtl">אאא <span>בב|</span></div>', '2-7 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_20.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_20.html index 8a0b599..a81539b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_20.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_20.html
@@ -27,25 +27,25 @@ selection_test( '<div contenteditable dir="rtl">אבד| opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-3 left word'); selection_test( '<div contenteditable dir="rtl">אבד |opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-4 left word'); selection_test( '<div contenteditable dir="rtl">אבד o|pq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst |דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-5 left word'); selection_test( '<div contenteditable dir="rtl">אבד op|q rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst |דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-6 left word'); selection_test( @@ -57,25 +57,25 @@ selection_test( '<div contenteditable dir="rtl">אבד opq |rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst |\u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-8 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq r|st דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst |\u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-9 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rs|t דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst |\u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-10 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst| דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst |דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 |<span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-11 left word'); selection_test( @@ -99,127 +99,127 @@ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ| <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ |<span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-15 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ |<span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-16 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">|abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-17 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">a|bc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-18 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">ab|c uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-19 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw |\u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-20 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc |uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw |\u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-21 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc u|vw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw |\u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-22 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uv|w אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw |\u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-23 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-24 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-25 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw א|אא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-26 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אא|א def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-27 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא| def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-28 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא |def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-29 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא d|ef lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-30 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא de|f lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-31 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 |hij xyz \u05D5\u05E7\u05E7</div>', '20-32 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def |lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 |hij xyz \u05D5\u05E7\u05E7</div>', '20-33 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def l|mn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 |hij xyz \u05D5\u05E7\u05E7</div>', '20-34 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lm|n</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 |hij xyz \u05D5\u05E7\u05E7</div>', '20-35 left word'); selection_test( @@ -249,28 +249,25 @@ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ| hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-40 left word'); -/* - * TODO(xiaochengh): These tests currently fail on Windows. - * Make them pass after changing left/right caret movements to logical. selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-41 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ h|ij xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz |וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-42 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hi|j xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz |וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-43 left word'); selection_test( @@ -282,26 +279,25 @@ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij |xyz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz |\u05D5\u05E7\u05E7</div>', '20-45 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij x|yz וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz |\u05D5\u05E7\u05E7</div>', '20-46 left word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xy|z וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz |\u05D5\u05E7\u05E7</div>', '20-47 left word'); -*/ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz| וקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz |וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7|</div>', '20-48 left word'); selection_test( @@ -328,4 +324,3 @@ '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק|</div>', '20-52 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_3.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_3.html index 45716b3..394a734 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_3.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_3.html
@@ -162,4 +162,3 @@ '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst |uvw</div>', '3-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_4.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_4.html index 1a3c9ac..46f20d36 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_4.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_4.html
@@ -9,151 +9,151 @@ selection_test( '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-0 left word'); selection_test( '<div contenteditable dir="rtl">a|bc def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-1 left word'); selection_test( '<div contenteditable dir="rtl">ab|c def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-2 left word'); selection_test( '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-3 left word'); selection_test( '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-4 left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-5 left word'); selection_test( '<div contenteditable dir="rtl">abc de|f <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-6 left word'); selection_test( '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-7 left word'); selection_test( '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-8 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>|hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-9 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>h|ij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-10 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hi|j opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-11 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-12 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-13 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij o|pq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-14 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij op|q</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-15 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-16 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span>| rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-17 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-18 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> r|st uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-19 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rs|t uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-20 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', '4-21 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', '4-22 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst u|vw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', '4-23 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uv|w</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', '4-24 left word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', '4-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_5.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_5.html index 87de271..33b0291 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_5.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_5.html
@@ -9,151 +9,151 @@ selection_test( '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-0 left word'); selection_test( '<div contenteditable dir="rtl">a|bc def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-1 left word'); selection_test( '<div contenteditable dir="rtl">ab|c def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-2 left word'); selection_test( '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-3 left word'); selection_test( '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-4 left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-5 left word'); selection_test( '<div contenteditable dir="rtl">abc de|f <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-6 left word'); selection_test( '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-7 left word'); selection_test( '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-8 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">|hij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-9 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">h|ij opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-10 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hi|j opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-11 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-12 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-13 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij o|pq</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-14 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij op|q</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-15 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-16 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span>| rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-17 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-18 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> r|st uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-19 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rs|t uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-20 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', '5-21 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', '5-22 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst u|vw</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', '5-23 left word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uv|w</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', '5-24 left word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', '5-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_6.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_6.html index cf88c69..3f5d6b62a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_6.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_6.html
@@ -162,4 +162,3 @@ '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst |uvw</div>', '6-25 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_7.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_7.html index 9bed61f..154eebc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_7.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_7.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אבד| דעפ <span dir="ltr">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |דעפ <span dir="ltr">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="ltr">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '7-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ| <span dir="ltr">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span dir="ltr">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '7-7 left word'); selection_test( @@ -81,7 +81,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">היח| ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">היח |ופק</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '7-12 left word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">היח ופק</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">היח ופק</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '7-20 left word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">היח ופק</span>ווש כטז|</div>', '7-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_8.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_8.html index 9a3daf6..591f3099 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_8.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_8.html
@@ -15,145 +15,144 @@ selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-1 left word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-2 left word'); selection_test( '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-3 left word'); selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-4 left word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-5 left word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-6 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-7 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ |<span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-8 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">|היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-9 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">ה|יח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-10 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">הי|ח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-11 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-12 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח |ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-13 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ו|פק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-14 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופ|ק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-15 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק|</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-16 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>|ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-17 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ו|וש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-18 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>וו|ש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-19 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-20 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש |כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-21 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כ|טז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-22 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כט|ז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-23 left word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_9.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_9.html index a9b7959..340d4e4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_9.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_inline_element_9.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד |דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '9-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '9-7 left word'); selection_test( @@ -81,7 +81,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>היח |ופק</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '9-12 left word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>היח ופק</span>ווש |כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '9-20 left word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span>היח ופק</span>ווש כטז|</div>', '9-24 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_1.html index db194afb..d00792d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_1.html
@@ -126,4 +126,3 @@ '<div contenteditable dir="ltr">abc def hij opq |rst</div>', '1-19 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_10.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_10.html index a43a50c..79c63cb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_10.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_10.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">aaa| אאא bbb</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">aaa |אאא bbb</div>', + '<div contenteditable dir="rtl">aaa \u05D0\u05D0\u05D0 |bbb</div>', '10-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">aaa אאא| bbb</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">aaa אאא |bbb</div>', + '<div contenteditable dir="rtl">aaa \u05D0\u05D0\u05D0 bbb|</div>', '10-7 left word'); selection_test( @@ -78,4 +78,3 @@ '<div contenteditable dir="rtl">aaa אאא bbb|</div>', '10-11 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_11.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_11.html index 2706d24..30343d61 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_11.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_11.html
@@ -15,73 +15,73 @@ selection_test( '<div contenteditable dir="ltr">א|אא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-1 left word'); selection_test( '<div contenteditable dir="ltr">אא|א בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-2 left word'); selection_test( '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-3 left word'); selection_test( '<div contenteditable dir="ltr">אאא |בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-4 left word'); selection_test( '<div contenteditable dir="ltr">אאא ב|בב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-5 left word'); selection_test( '<div contenteditable dir="ltr">אאא בב|ב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-6 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-7 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב |צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-8 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צ|צצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-9 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצ|צ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-10 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ| aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-11 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-12 left word'); selection_test( @@ -159,67 +159,66 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc ד|דד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-25 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דד|ד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-26 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-27 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד |עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-28 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד ע|עע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-29 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עע|ע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-30 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-31 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע |פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-32 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פ|פפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-33 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפ|פ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-34 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפפ|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-35 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_12.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_12.html index c0a33e4..30a4377 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_12.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_12.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא |בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב |צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-7 left word'); selection_test( @@ -75,79 +75,79 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ| aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-11 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-12 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ a|aa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-13 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aa|a bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-14 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-15 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa |bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-16 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa b|bb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-17 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bb|b ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-18 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-19 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb |ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-20 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb c|cc דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-21 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb cc|c דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-22 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc| דדד עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-23 left word'); selection_test( @@ -171,7 +171,7 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc דדד |עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '12-27 left word'); selection_test( @@ -195,7 +195,7 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc דדד עעע |פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4|</div>', '12-31 left word'); selection_test( @@ -222,4 +222,3 @@ '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc דדד עעע פפפ|</div>', '12-35 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_13.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_13.html index d16ccaf3..7f9e011 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_13.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_13.html
@@ -15,13 +15,13 @@ selection_test( '<div contenteditable dir="ltr">א|אא בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-1 left word'); selection_test( '<div contenteditable dir="ltr">אא|א בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-2 left word'); selection_test( @@ -39,25 +39,25 @@ selection_test( '<div contenteditable dir="ltr">אאא ב|בב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-5 left word'); selection_test( '<div contenteditable dir="ltr">אאא בב|ב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|אאא בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-6 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב| aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-7 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב |aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-8 left word'); selection_test( @@ -111,13 +111,13 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צ|צצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb |\u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-17 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצ|צ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb |\u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-18 left word'); selection_test( @@ -135,19 +135,18 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ ד|דד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb |צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-21 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ דד|ד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb |צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-22 left word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ דדד|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-23 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_14.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_14.html index 39706b566..7f68652 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_14.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_14.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">אאא| בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא |בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-3 left word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב| aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב |aaa bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-7 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב |aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-8 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב a|aa bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa bbb |צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-9 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aa|a bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa bbb |צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-10 left word'); selection_test( @@ -81,25 +81,25 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב aaa |bbb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb |\u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-12 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aaa b|bb צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb |\u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-13 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aaa bb|b צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb |\u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-14 left word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aaa bbb| צצצ דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa bbb |צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '14-15 left word'); selection_test( @@ -123,7 +123,7 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב aaa bbb צצצ| דדד</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa bbb צצצ |דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3|</div>', '14-19 left word'); selection_test( @@ -150,4 +150,3 @@ '<div contenteditable dir="rtl">אאא בבב aaa bbb צצצ דדד|</div>', '14-23 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_15.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_15.html index 41f0fe8..9d3dc19 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_15.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_15.html
@@ -78,4 +78,3 @@ '<div contenteditable dir="ltr">שנב abc |סטז</div>', '15-11 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_16.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_16.html index a0184a0..d8ba503 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_16.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_16.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">שנב| abc סטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">שנב |abc סטז</div>', + '<div contenteditable dir="rtl">\u05E9\u05E0\u05D1 abc |\u05E1\u05D8\u05D6</div>', '16-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">שנב abc| סטז</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">שנב abc |סטז</div>', + '<div contenteditable dir="rtl">\u05E9\u05E0\u05D1 abc \u05E1\u05D8\u05D6|</div>', '16-7 left word'); selection_test( @@ -78,4 +78,3 @@ '<div contenteditable dir="rtl">שנב abc סטז|</div>', '16-11 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_17.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_17.html index 2446614..13c9bdb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_17.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_17.html
@@ -39,31 +39,31 @@ selection_test( '<div contenteditable dir="ltr">abc \u202B|באד def\u202C xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">|abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-5 left word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bב|אד def\u202C xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B|\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-6 left word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבא|ד def\u202C xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B|\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-7 left word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד |def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B|\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-8 left word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד |def\u202C xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|abc \u202Bבאד def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B|\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-9 left word'); selection_test( @@ -81,19 +81,19 @@ selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד def|\u202C xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-12 left word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C| xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-13 left word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-14 left word'); selection_test( @@ -114,4 +114,3 @@ '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', '17-17 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_18.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_18.html index 6abbc872..edfb23a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_18.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_18.html
@@ -144,4 +144,3 @@ '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq |rst </div>', '18-22 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_19.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_19.html index 6dd36f8..277e9ef1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_19.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_19.html
@@ -234,4 +234,3 @@ '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>', '19-37 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_2.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_2.html index 51b8018..78a7c787 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_2.html
@@ -9,115 +9,115 @@ selection_test( '<div contenteditable dir="rtl">|abc def hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-0 left word'); selection_test( '<div contenteditable dir="rtl">a|bc def hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq rst|</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-1 left word'); selection_test( '<div contenteditable dir="rtl">ab|c def hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq rst|</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-2 left word'); selection_test( '<div contenteditable dir="rtl">abc| def hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq rst|</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-3 left word'); selection_test( '<div contenteditable dir="rtl">abc |def hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-4 left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-5 left word'); selection_test( '<div contenteditable dir="rtl">abc de|f hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-6 left word'); selection_test( '<div contenteditable dir="rtl">abc def| hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-7 left word'); selection_test( '<div contenteditable dir="rtl">abc def |hij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-8 left word'); selection_test( '<div contenteditable dir="rtl">abc def h|ij opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-9 left word'); selection_test( '<div contenteditable dir="rtl">abc def hi|j opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-10 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij| opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-11 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij |opq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-12 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij o|pq rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-13 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij op|q rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-14 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq| rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq rst|</div>', '2-15 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq |rst</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def hij opq rst|</div>', '2-16 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq r|st</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def hij opq rst|</div>', '2-17 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq rs|t</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def hij opq rst|</div>', '2-18 left word'); selection_test( @@ -126,4 +126,3 @@ '<div contenteditable dir="rtl">abc def hij opq rst|</div>', '2-19 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_20.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_20.html index 5766f19..be1a68c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_20.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_20.html
@@ -12,4 +12,3 @@ '<div contenteditable dir="ltr">|</div>', '20-0 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_3.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_3.html index bd4f0c2..c834bdd 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_3.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_3.html
@@ -15,115 +15,114 @@ selection_test( '<div contenteditable dir="ltr">ש|שש נננ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">|\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-1 left word'); selection_test( '<div contenteditable dir="ltr">שש|ש נננ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">|\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-2 left word'); selection_test( '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">|\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-3 left word'); selection_test( '<div contenteditable dir="ltr">ששש |נננ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">|\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-4 left word'); selection_test( '<div contenteditable dir="ltr">ששש נ|ננ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-5 left word'); selection_test( '<div contenteditable dir="ltr">ששש ננ|נ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-6 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-7 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ |בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-8 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ ב|בב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-9 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בב|ב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-10 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-11 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב |גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-12 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב ג|גג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-13 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גג|ג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-14 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|ששש נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-15 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג |קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|ששש נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-16 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג ק|קק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|ששש נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-17 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג קק|ק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">|ששש נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-18 left word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג קקק|</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-19 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_4.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_4.html index 3014b057..5fafec3 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_4.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_4.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="rtl">ששש| נננ בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">ששש |נננ בבב גגג קקק</div>', + '<div contenteditable dir="rtl">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '4-3 left word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="rtl">ששש נננ| בבב גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">ששש נננ |בבב גגג קקק</div>', + '<div contenteditable dir="rtl">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '4-7 left word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="rtl">ששש נננ בבב| גגג קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">ששש נננ בבב |גגג קקק</div>', + '<div contenteditable dir="rtl">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '4-11 left word'); selection_test( @@ -99,7 +99,7 @@ selection_test( '<div contenteditable dir="rtl">ששש נננ בבב גגג| קקק</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">ששש נננ בבב גגג |קקק</div>', + '<div contenteditable dir="rtl">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7|</div>', '4-15 left word'); selection_test( @@ -126,4 +126,3 @@ '<div contenteditable dir="rtl">ששש נננ בבב גגג קקק|</div>', '4-19 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_5.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_5.html index c7dd6e7..6aab6deb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_5.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_5.html
@@ -87,73 +87,73 @@ selection_test( '<div contenteditable dir="ltr">abc def hij א|אא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-13 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אא|א בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-14 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-15 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא |בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-16 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא ב|בב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-17 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בב|ב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-18 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-19 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב |צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-20 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צ|צצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-21 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצ|צ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-22 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ| opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-23 left word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ |opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-24 left word'); selection_test( @@ -222,4 +222,3 @@ '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ opr uvw |xyz</div>', '5-35 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_6.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_6.html index f20b3fb..fb03849 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_6.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_6.html
@@ -9,73 +9,73 @@ selection_test( '<div contenteditable dir="rtl">|abc def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-0 left word'); selection_test( '<div contenteditable dir="rtl">a|bc def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-1 left word'); selection_test( '<div contenteditable dir="rtl">ab|c def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-2 left word'); selection_test( '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-3 left word'); selection_test( '<div contenteditable dir="rtl">abc |def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-4 left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-5 left word'); selection_test( '<div contenteditable dir="rtl">abc de|f hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-6 left word'); selection_test( '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-7 left word'); selection_test( '<div contenteditable dir="rtl">abc def |hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-8 left word'); selection_test( '<div contenteditable dir="rtl">abc def h|ij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-9 left word'); selection_test( '<div contenteditable dir="rtl">abc def hi|j אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-10 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij| אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-11 left word'); selection_test( @@ -99,7 +99,7 @@ selection_test( '<div contenteditable dir="rtl">abc def hij אאא| בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא |בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-15 left word'); selection_test( @@ -123,7 +123,7 @@ selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב| צצצ opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב |צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '6-19 left word'); selection_test( @@ -147,73 +147,73 @@ selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ| opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-23 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ |opr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-24 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ o|pr uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xyz|</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-25 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ op|r uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xyz|</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-26 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xyz|</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-27 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr |uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-28 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr u|vw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-29 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uv|w xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-30 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz|</div>', '6-31 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw |xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz|</div>', '6-32 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw x|yz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz|</div>', '6-33 left word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xy|z</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz|</div>', '6-34 left word'); selection_test( @@ -222,4 +222,3 @@ '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xyz|</div>', '6-35 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_7.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_7.html index 16e480a9..96699024 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_7.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_7.html
@@ -63,13 +63,13 @@ selection_test( '<div contenteditable dir="ltr">abc def ש|נב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def |\u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '7-9 left word'); selection_test( '<div contenteditable dir="ltr">abc def שנ|ב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def |\u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '7-10 left word'); selection_test( @@ -87,25 +87,25 @@ selection_test( '<div contenteditable dir="ltr">abc def שנב ס|טז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def |שנב סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-13 left word'); selection_test( '<div contenteditable dir="ltr">abc def שנב סט|ז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def |שנב סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-14 left word'); selection_test( '<div contenteditable dir="ltr">abc def שנב סטז| uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-15 left word'); selection_test( '<div contenteditable dir="ltr">abc def שנב סטז |uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-16 left word'); selection_test( @@ -150,4 +150,3 @@ '<div contenteditable dir="ltr">abc def שנב סטז uvw |xyz</div>', '7-23 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_8.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_8.html index b92a5a0..60c653c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_8.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_8.html
@@ -9,19 +9,19 @@ selection_test( '<div contenteditable dir="rtl">|abc def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-0 left word'); selection_test( '<div contenteditable dir="rtl">a|bc def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def |שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-1 left word'); selection_test( '<div contenteditable dir="rtl">ab|c def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def |שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-2 left word'); selection_test( @@ -33,25 +33,25 @@ selection_test( '<div contenteditable dir="rtl">abc |def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |\u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-4 left word'); selection_test( '<div contenteditable dir="rtl">abc d|ef שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |\u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-5 left word'); selection_test( '<div contenteditable dir="rtl">abc de|f שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |\u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-6 left word'); selection_test( '<div contenteditable dir="rtl">abc def| שנב סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def |שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '8-7 left word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="rtl">abc def שנב| סטז uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב |סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 |uvw xyz</div>', '8-11 left word'); selection_test( @@ -99,25 +99,25 @@ selection_test( '<div contenteditable dir="rtl">abc def שנב סטז| uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז |uvw xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-15 left word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז |uvw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-16 left word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז u|vw xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw xyz|</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-17 left word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uv|w xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw xyz|</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-18 left word'); selection_test( @@ -129,19 +129,19 @@ selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uvw |xyz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz|</div>', '8-20 left word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uvw x|yz</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz|</div>', '8-21 left word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uvw xy|z</div>', selection => selection.modify('move', 'left', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz|</div>', '8-22 left word'); selection_test( @@ -150,4 +150,3 @@ '<div contenteditable dir="rtl">abc def שנב סטז uvw xyz|</div>', '8-23 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_9.html b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_9.html index 908d326..7668dafd 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_9.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_left_word_visually_single_space_one_element_9.html
@@ -78,4 +78,3 @@ '<div contenteditable dir="ltr">aaa אאא |bbb</div>', '9-11 left word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_multiline.html b/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_multiline.html index deae747..92f27cf 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_multiline.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_multiline.html
@@ -124,13 +124,13 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">אבג|<br>qux</span>baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">א|בג<br>qux</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">אב|ג<br>qux</span>baz</div>', 'End of line 1, move left, LTR resolved direction, RTL/LTR text inside'); selection_test( '<div contenteditable>foo<span style="display:inline-block">אבג|<br>יךכ</span>baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">א|בג<br>יךכ</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">אב|ג<br>יךכ</span>baz</div>', 'End of line 1, move left, LTR resolved direction, RTL/RTL text inside'); selection_test( @@ -184,13 +184,13 @@ selection_test( '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar|<br>qux</span>זחט</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">דהו<span style="display:inline-block">b|ar<br>qux</span>זחט</div>', + '<div contenteditable dir="rtl">דהו<span style="display:inline-block">ba|r<br>qux</span>זחט</div>', 'End of line 1, move right, RTL resolved direction, LTR/LTR text inside'); selection_test( '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar|<br>יךכ</span>זחט</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">דהו<span style="display:inline-block">b|ar<br>יךכ</span>זחט</div>', + '<div contenteditable dir="rtl">דהו<span style="display:inline-block">ba|r<br>יךכ</span>זחט</div>', 'End of line 1, move right, RTL resolved direction, LTR/RTL text inside'); selection_test( @@ -232,7 +232,7 @@ selection_test( '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar<br>|qux</span>זחט</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar<br>qu|x</span>זחט</div>', + '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar<br>q|ux</span>זחט</div>', 'Start of line 2, move left, RTL resolved direction, LTR/LTR text inside'); selection_test( @@ -244,7 +244,7 @@ selection_test( '<div contenteditable dir="rtl">דהו<span style="display:inline-block">אבג<br>|qux</span>זחט</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable dir="rtl">דהו<span style="display:inline-block">אבג<br>qu|x</span>זחט</div>', + '<div contenteditable dir="rtl">דהו<span style="display:inline-block">אבג<br>q|ux</span>זחט</div>', 'Start of line 2, move left, RTL resolved direction, RTL/LTR text inside'); selection_test( @@ -262,7 +262,7 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">bar<br>|יךכ</span>baz</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable>foo<span style="display:inline-block">bar<br>יך|כ</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">bar<br>י|ךכ</span>baz</div>', 'Start of line 2, move right, LTR resolved direction, LTR/RTL text inside'); selection_test( @@ -274,7 +274,7 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">אבג<br>|יךכ</span>baz</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable>foo<span style="display:inline-block">אבג<br>יך|כ</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">אבג<br>י|ךכ</span>baz</div>', 'Start of line 2, move right, LTR resolved direction, RTL/RTL text inside'); selection_test( @@ -310,7 +310,7 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">bar<br>יךכ|</span>baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">bar<br>י|ךכ</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">bar<br>יך|כ</span>baz</div>', 'End of line 2, move left, LTR resolved direction, LTR/RTL text inside'); selection_test( @@ -322,7 +322,7 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">אבג<br>יךכ|</span>baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">אבג<br>י|ךכ</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">אבג<br>יך|כ</span>baz</div>', 'End of line 2, move left, LTR resolved direction, RTL/RTL text inside'); selection_test( @@ -376,7 +376,7 @@ selection_test( '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar<br>qux|</span>זחט</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar<br>q|ux</span>זחט</div>', + '<div contenteditable dir="rtl">דהו<span style="display:inline-block">bar<br>qu|x</span>זחט</div>', 'End of line 2, move right, RTL resolved direction, LTR/LTR text inside'); selection_test( @@ -388,7 +388,7 @@ selection_test( '<div contenteditable dir="rtl">דהו<span style="display:inline-block">אבג<br>qux|</span>זחט</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">דהו<span style="display:inline-block">אבג<br>q|ux</span>זחט</div>', + '<div contenteditable dir="rtl">דהו<span style="display:inline-block">אבג<br>qu|x</span>זחט</div>', 'End of line 2, move right, RTL resolved direction, RTL/LTR text inside'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_one_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_one_line.html index 4d0f495c..bcb5cc8 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_one_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_out_of_inline_block_one_line.html
@@ -9,8 +9,6 @@ // 2. Resolved direction of the inline block in the parent context // 3. Direction of text inside the inline block -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable>foo<span style="display:inline-block">|bar</span>baz</div>', selection => selection.modify('move', 'right', 'character'), @@ -56,7 +54,7 @@ selection_test( '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1\u05D2|</span>baz</div>', selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>foo<span style="display:inline-block">\u05D0|\u05D1\u05D2</span>baz</div>', + '<div contenteditable>foo<span style="display:inline-block">\u05D0\u05D1|\u05D2</span>baz</div>', 'From end, move left, LTR resolved direction, RTL text inside'); selection_test( @@ -74,7 +72,7 @@ selection_test( '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">bar|</span>\u05D6\u05D7\u05D8</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">b|ar</span>\u05D6\u05D7\u05D8</div>', + '<div contenteditable dir="rtl">\u05D3\u05D4\u05D5<span style="display:inline-block">ba|r</span>\u05D6\u05D7\u05D8</div>', 'From end, move right, RTL resolved direction, LTR text inside'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_over_ignored_contents.html b/third_party/blink/web_tests/editing/selection/modify_move/move_over_ignored_contents.html deleted file mode 100644 index bcb8366d..0000000 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_over_ignored_contents.html +++ /dev/null
@@ -1,57 +0,0 @@ -<!DOCTYPE html> -<script src="../../../resources/testharness.js"></script> -<script src="../../../resources/testharnessreport.js"></script> -<script src="../../assert_selection.js"></script> -<script> -selection_test( - '<div contenteditable>foo|<div style="float:right">float</div>bar</div>', - selection => selection.modify('move', 'right', 'character'), - '<div contenteditable>foo<div style="float:right">float</div>b|ar</div>', - 'Move right over float'); - -selection_test( - '<div contenteditable>foo<div style="float:right">float</div>|bar</div>', - selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>fo|o<div style="float:right">float</div>bar</div>', - 'Move left over float'); - -selection_test( - '<div contenteditable>foo|<div style="position:absolute">positioned</div>bar</div>', - selection => selection.modify('move', 'right', 'character'), - '<div contenteditable>foo<div style="position:absolute">positioned</div>b|ar</div>', - 'Move right over out-of-flow positioned'); - -selection_test( - '<div contenteditable>foo<div style="position:absolute">positioned</div>|bar</div>', - selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>fo|o<div style="position:absolute">positioned</div>bar</div>', - 'Move left over out-of-flow positioned'); - -selection_test( - '<div contenteditable>foo|<wbr>bar</div>', - selection => selection.modify('move', 'right', 'character'), - '<div contenteditable>foo<wbr>b|ar</div>', - 'Move right over wbr'); - -selection_test( - '<div contenteditable>foo<wbr>|bar</div>', - selection => selection.modify('move', 'left', 'character'), - '<div contenteditable>fo|o<wbr>bar</div>', - 'Move left over wbr'); - -selection_test( - `<style>span::before{content:'xxx'}</style> - <div contenteditable>foo|<span>bar</span></div>`, - selection => selection.modify('move', 'right', 'character'), - `<style>span::before{content:'xxx'}</style> - <div contenteditable>foo<span>b|ar</span></div>`, - 'Move right over generated content'); - -selection_test( - `<style>span::before{content:'xxx'}</style> - <div contenteditable>foo<span>|bar</span></div>`, - selection => selection.modify('move', 'left', 'character'), - `<style>span::before{content:'xxx'}</style> - <div contenteditable>fo|o<span>bar</span></div>`, - 'Move left over generated content'); -</script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_ltr.html index e013835..2053a28c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_ltr.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="ltr">|abc</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html index 79fa7bb0..4375a40b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_01_rtl.html
@@ -3,35 +3,28 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc</div>' - : '<div contenteditable dir="rtl">|abc</div>', + '<div contenteditable dir="rtl">|abc</div>', '1-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c</div>', + '<div contenteditable dir="rtl">|abc</div>', '1-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|</div>' - : '<div contenteditable dir="rtl">|abc</div>', + '<div contenteditable dir="rtl">a|bc</div>', '1-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|</div>' - : '<div contenteditable dir="rtl">a|bc</div>', + '<div contenteditable dir="rtl">ab|c</div>', '1-3 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html index c0d43439..265b0a2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_ltr.html
@@ -3,35 +3,28 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>', '2-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>', '2-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>', '2-2 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|</div>', '2-3 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_rtl.html index 6098380..b44891e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_02_rtl.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_ltr.html index c188947d..594ea5a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_ltr.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="ltr">|<br>abc</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_rtl.html index 6c9b03cb..1b2cec1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_03_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<br>abc</div>', @@ -14,30 +13,24 @@ selection_test( '<div contenteditable dir="rtl"><br>|abc</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><br>a|bc</div>' - : '<div contenteditable dir="rtl">|<br>abc</div>', + '<div contenteditable dir="rtl">|<br>abc</div>', '3-1 rtl right character'); selection_test( '<div contenteditable dir="rtl"><br>a|bc</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><br>ab|c</div>', + '<div contenteditable dir="rtl"><br>|abc</div>', '3-2 rtl right character'); selection_test( '<div contenteditable dir="rtl"><br>ab|c</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><br>abc|</div>' - : '<div contenteditable dir="rtl"><br>|abc</div>', + '<div contenteditable dir="rtl"><br>a|bc</div>', '3-3 rtl right character'); selection_test( '<div contenteditable dir="rtl"><br>abc|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|<br>abc</div>' - : '<div contenteditable dir="rtl"><br>a|bc</div>', + '<div contenteditable dir="rtl"><br>ab|c</div>', '3-4 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_ltr.html index d5a704c1..74c623c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_ltr.html
@@ -3,43 +3,34 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<br>\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>' - : '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>', + '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>', '4-0 ltr right character'); selection_test( '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>', + '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>', '4-1 ltr right character'); selection_test( '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><br>|\u05D0\u05D1\u05D2</div>' - : '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>', + '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>', '4-2 ltr right character'); selection_test( '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr"><br>\u05D0|\u05D1\u05D2</div>', + '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>', '4-3 ltr right character'); selection_test( '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><br>\u05D0\u05D1|\u05D2</div>' - : '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>', + '<div contenteditable dir="ltr"><br>\u05D0\u05D1\u05D2|</div>', '4-4 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_rtl.html index a29b4376..46ad4c3c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_04_rtl.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="rtl">|<br>\u05D0\u05D1\u05D2</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html index 795e4db0..ec1b41a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2def</div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2d|ef</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>', '5-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2def</div>', '5-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|def</div>', '5-5 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html index c4a1bc6..8b12516 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_05_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>', '5-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>', '5-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2def</div>', '5-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2def</div>', '5-3 rtl right character'); selection_test( @@ -48,30 +43,24 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2d|ef</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2def</div>', '5-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2d|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|def</div>', '5-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2def|</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2d|ef</div>', '5-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2def|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1|\u05d2def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2de|f</div>', '5-9 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html index 37055b77..1e04b67 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a|bc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', '6-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', '6-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', '6-2 ltr right character'); selection_test( @@ -48,30 +43,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc|\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3|\u05D4\u05D5</div>', '6-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc|\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4|\u05D5</div>', '6-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5|</div>', '6-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc\u05d3\u05d4|\u05d5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5|</div>', '6-9 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html index 20580e1f..9f5f34d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_06_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abc\u05D3\u05D4\u05D5</div>', @@ -26,29 +25,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2a|bc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abc\u05D3\u05D4\u05D5</div>', '6-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', '6-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abc|\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc\u05D3\u05D4\u05D5</div>', '6-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c\u05D3\u05D4\u05D5</div>', '6-6 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html index 6fec319..26c0e917 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', @@ -26,48 +25,42 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5</div>', '7-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5</div>', '7-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5</div>', '7-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5</div>', '7-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|</div>', '7-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2\u05d3\u05d4|\u05d5</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|</div>', '7-9 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html index e141077f..eedc26b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_07_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5</div>', '7-3 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html index 5062f12..0035dc4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abcdef</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a|bcdef</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abcdef</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abcdef</div>', '8-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abcdef</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2abcdef</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abcdef</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abcdef</div>', '8-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abcdef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abcdef</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abcdef</div>', '8-2 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html index a0061f8..d87685c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_08_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abcdef</div>', @@ -26,48 +25,42 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abcdef</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2a|bcdef</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abcdef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abcdef</div>', '8-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bcdef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|cdef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abcdef</div>', '8-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|cdef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bcdef</div>', '8-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcd|ef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|cdef</div>', '8-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcd|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcde|f</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|def</div>', '8-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcde|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abcdef|</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abcdef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcd|ef</div>', '8-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcdef|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1|\u05d2abcdef</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bcdef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abcde|f</div>', '8-9 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html index da1d29c..2f1a72f1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_ltr.html
@@ -3,14 +3,11 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661|\u0662\u0663\u0627\u0628\u0629</div>' - : '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>', + '<div contenteditable dir="ltr">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', '9-0 ltr right character'); selection_test( @@ -22,38 +19,30 @@ selection_test( '<div contenteditable dir="ltr">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>' - : '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', '9-2 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661|\u0662\u0663\u0627\u0628\u0629</div>' - : '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>', '9-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663|\u0627\u0628\u0629</div>' - : '<div contenteditable dir="ltr">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>', '9-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627|\u0628\u0629</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>', '9-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628|\u0629</div>' - : '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>', + '<div contenteditable dir="ltr">\u0661\u0662\u0663\u0627\u0628\u0629|</div>', '9-6 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html index e3770fa63..931ae322 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_09_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>' - : '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', '9-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', '9-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0661\u0662\u0663|\u0627\u0628\u0629</div>' - : '<div contenteditable dir="rtl">|\u0661\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', '9-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u0661\u0662\u0663|\u0627\u0628\u0629</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u0661|\u0662\u0663\u0627\u0628\u0629</div>', + '<div contenteditable dir="rtl">\u0661\u0662|\u0663\u0627\u0628\u0629</div>', '9-3 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html index d39a8d1a..79415fa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>' - : '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', + '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>', '10-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u0627\u0628\u0629\u0661\u0662\u0663</div>' - : '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', + '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', '10-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u0627|\u0628\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', '10-2 ltr right character'); selection_test( @@ -42,16 +37,12 @@ selection_test( '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>' - : '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', '10-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u0627\u0628|\u0629\u0661\u0662\u0663</div>' - : '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', + '<div contenteditable dir="ltr">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', '10-6 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html index 0dd23e6..feec9299 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_10_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u0627\u0628\u0629\u0661\u0662\u0663</div>', @@ -26,30 +25,24 @@ selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>' - : '<div contenteditable dir="rtl">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', + '<div contenteditable dir="rtl">\u0627\u0628|\u0629\u0661\u0662\u0663</div>', '10-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', '10-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>' - : '<div contenteditable dir="rtl">\u0627\u0628\u0629|\u0661\u0662\u0663</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', '10-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662\u0663|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u0627\u0628|\u0629\u0661\u0662\u0663</div>' - : '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661|\u0662\u0663</div>', + '<div contenteditable dir="rtl">\u0627\u0628\u0629\u0661\u0662|\u0663</div>', '10-6 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html index b99d1f90..669fec0e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<span>abc</span>\u05D0\u05D1\u05D2def</div>', @@ -32,31 +31,25 @@ selection_test( '<div contenteditable dir="ltr"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>abc</span>\u05d0\u05d1\u05d2d|ef</div>' - : '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', '11-4 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>|\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>abc</span>\u05d0\u05d1\u05d2d|ef</div>' - : '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', '11-5 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>abc|</span>\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', + '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', '11-6 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr"><span>abc</span>\u05D0|\u05D1\u05D2def</div>', + '<div contenteditable dir="ltr"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', '11-7 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html index a816397a..a48bd843 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_11_rtl.html
@@ -3,48 +3,41 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<span>abc</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>a|bc</span>\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl">|<span>abc</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl">|<span>abc</span>\u05D0\u05D1\u05D2def</div>', '11-0 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>|abc</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>a|bc</span>\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl"><span>|abc</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>|abc</span>\u05D0\u05D1\u05D2def</div>', '11-1 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>|abc</span>\u05D0\u05D1\u05D2def</div>', '11-2 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc|</span>\u05d0\u05d1\u05d2def</div>' - : '<div contenteditable dir="rtl"><span>|abc</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', '11-3 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>abc|</span>\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', '11-4 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>|\u05D0\u05D1\u05D2def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span>a|bc</span>\u05D0\u05D1\u05D2def</div>', + '<div contenteditable dir="rtl"><span>ab|c</span>\u05D0\u05D1\u05D2def</div>', '11-5 rtl right character'); selection_test( @@ -62,30 +55,24 @@ selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0\u05d1\u05d2d|ef</div>' - : '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1|\u05D2def</div>', '11-8 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2d|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2de|f</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', '11-9 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2de|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0\u05d1\u05d2def|</div>' - : '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2|def</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2d|ef</div>', '11-10 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2def|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>abc</span>\u05d0\u05d1|\u05d2def</div>' - : '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2d|ef</div>', + '<div contenteditable dir="rtl"><span>abc</span>\u05D0\u05D1\u05D2de|f</div>', '11-11 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html index b75e5a0b..8adbe86 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_ltr.html
@@ -3,36 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>a|bc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-0 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>|\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>a|bc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-1 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>|\u05d0\u05d1\u05d2</span>abc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-2 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr"><span>\u05D0|\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', '12-3 ltr right character'); selection_test( @@ -62,30 +55,24 @@ selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>abc|\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3|\u05D4\u05D5</div>', '12-8 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>abc|\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4|\u05D5</div>', '12-9 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5|</div>', '12-10 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span>\u05d0\u05d1\u05d2</span>abc\u05d3\u05d4|\u05d5</div>' - : '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr"><span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5|</div>', '12-11 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html index daf4853..09e66de 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_12_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<span>\u05D0\u05D1\u05D2</span>abc\u05D3\u05D4\u05D5</div>', @@ -32,37 +31,31 @@ selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>\u05d0\u05d1\u05d2</span>a|bc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-4 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>|abc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>\u05d0\u05d1\u05d2</span>a|bc\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1|\u05D2</span>abc\u05D3\u05D4\u05D5</div>', '12-5 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', '12-6 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span>\u05d0\u05d1\u05d2</span>abc|\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2|</span>abc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', '12-7 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>abc|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>a|bc\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl"><span>\u05D0\u05D1\u05D2</span>ab|c\u05D3\u05D4\u05D5</div>', '12-8 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html index 60ec21d..2dd0b42 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_13_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5d|ef</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', '13-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5def</div>', '13-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5def</div>', '13-5 ltr right character'); selection_test( @@ -66,23 +61,19 @@ selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d21|23\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5def</div>', '13-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2123|\u05d3\u05d4\u05d5def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5def</div>', '13-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|def</div>', '13-11 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html index 17857fe6..9674f38 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2123def</div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2123d|ef</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D21|23def</div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123def</div>', '15-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2123def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123def</div>', '15-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2123def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|123def</div>', '15-5 ltr right character'); selection_test( @@ -60,9 +55,7 @@ selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D212|3def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2123|def</div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2123def</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2123|def</div>', '15-8 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html index e4150c7..8feb327c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_15_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05d0\u05d1\u05d2123def</div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123def</div>', '15-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123def</div>', '15-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05d0\u05d1\u05d2123def</div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123def</div>', '15-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2123def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2123def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2123def</div>', '15-3 rtl right character'); selection_test( @@ -48,48 +43,42 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|123def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d21|23def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2123def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2123def</div>', '15-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|123def</div>', '15-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23def</div>', '15-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D212|3def</div>', '15-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123d|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123|def</div>', '15-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123de|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1\u05d2123def|</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|123def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123d|ef</div>', '15-11 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123def|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0\u05d1|\u05d2123def</div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D21|23def</div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2123de|f</div>', '15-12 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html index 54c0562..1eea85b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5a|bc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-2 ltr right character'); selection_test( @@ -48,23 +43,19 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d21|23\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123|\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3|\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-8 ltr right character'); selection_test( @@ -88,23 +79,19 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc|\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB|\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6|\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-12 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6|\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc|\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', '16-13 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6|\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', '16-14 ltr right character'); selection_test( @@ -128,30 +115,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d84|56\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9|\u05DB\u05DC</div>', '16-18 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9|\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456|\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB|\u05DC</div>', '16-19 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB|\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9|\u05DB\u05DC</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC|</div>', '16-20 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db|\u05dc</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC|</div>', '16-21 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html index 167d9c0..243c57b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_16_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', @@ -26,29 +25,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d21|23\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123|\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123|\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D21|23\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D212|3\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-6 rtl right character'); selection_test( @@ -66,29 +61,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5a|bc\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4|\u05D5abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5a|bc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc|\u05d6\u05d7\u05d8456\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5|abc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5a|bc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-11 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc|\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5a|bc\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5ab|c\u05D6\u05D7\u05D8456\u05D9\u05DB\u05DC</div>', '16-12 rtl right character'); selection_test( @@ -106,29 +97,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d84|56\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7|\u05D8456\u05D9\u05DB\u05DC</div>', '16-15 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D84|56\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', '16-16 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2123\u05d3\u05d4\u05d5abc\u05d6\u05d7\u05d8456|\u05d9\u05db\u05dc</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8|456\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D84|56\u05D9\u05DB\u05DC</div>', '16-17 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D8456|\u05D9\u05DB\u05DC</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D84|56\u05D9\u05DB\u05DC</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2123\u05D3\u05D4\u05D5abc\u05D6\u05D7\u05D845|6\u05D9\u05DB\u05DC</div>', '16-18 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_ltr.html index 7b1217d..2c60d4709 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', @@ -50,138 +49,120 @@ selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-7 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-8 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-9 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before |\u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-10 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-11 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-12 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-13 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-14 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-15 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-16 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-17 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-18 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-19 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-20 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', '17-21 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', '17-22 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', '17-23 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', '17-24 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', '17-25 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', '17-26 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_rtl.html index b783dcd..58d3a8f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_17_rtl.html
@@ -3,52 +3,47 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-0 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-1 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-2 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-3 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-4 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '17-6 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_ltr.html index ecd04a59..c385f4d2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', '18-0 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', '18-1 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', '18-2 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '18-3 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_rtl.html index 5cb9e0a..43f6a87d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_18_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', @@ -38,150 +37,132 @@ selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '18-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '18-6 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '18-7 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 |after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '18-8 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', '18-9 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '18-10 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', '18-11 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', '18-12 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', '18-13 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', '18-14 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', '18-15 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', '18-16 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', '18-17 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', '18-18 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', '18-19 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', '18-20 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', '18-21 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', '18-22 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', '18-23 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', '18-24 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', '18-25 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', '18-26 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_ltr.html index b442a948..4b2775b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', @@ -50,138 +49,120 @@ selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-7 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-8 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-9 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before |\u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-10 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before | \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-11 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0|\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-12 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7|\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-13 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9| \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8|\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-14 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-15 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 |\u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-16 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0|\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-17 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0|\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-18 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6|\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-19 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9|\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-20 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7|\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', '19-21 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC|\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', '19-22 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5|\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', '19-23 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4|\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', '19-24 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3|\u05D9\u05D4</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', '19-25 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9|\u05D4</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', + '<div contenteditable dir="ltr" style="width: 120px;">before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4|</div>', '19-26 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_rtl.html index ded2aab..535b19c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_19_rtl.html
@@ -3,52 +3,47 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-0 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-1 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-2 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">be|fore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-3 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">bef|ore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-4 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">|before \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befo|re \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">before| \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">b|efore \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', + '<div contenteditable dir="rtl" style="width: 120px;">befor|e \u05D0\u05D7\u05E8\u05D9 \u05D0\u05E0\u05E6\u05D9\u05E7\u05DC\u05D5\u05E4\u05D3\u05D9\u05D4</div>', '19-6 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_ltr.html index bdc5128..cf75ef38 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', '20-0 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>' - : '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', '20-1 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC|\u05E4\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', '20-2 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0|\u05D9 after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4|\u05E0\u05D9 after encyclopedia</div>', + '<div contenteditable dir="ltr" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '20-3 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_rtl.html index e91c37e..72d6ed68 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_20_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">|\u05DC\u05E4\u05E0\u05D9 after encyclopedia</div>', @@ -38,150 +37,132 @@ selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '20-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '20-6 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '20-7 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 |after encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>', '20-8 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', '20-9 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', '20-10 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 af|ter encyclopedia</div>', '20-11 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 | after encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 aft|er encyclopedia</div>', '20-12 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9| after encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 afte|r encyclopedia</div>', '20-13 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after| encyclopedia</div>', '20-14 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', '20-15 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', '20-16 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after en|cyclopedia</div>', '20-17 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after enc|yclopedia</div>', '20-18 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after ency|clopedia</div>', '20-19 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyc|lopedia</div>', '20-20 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycl|opedia</div>', '20-21 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclo|pedia</div>', '20-22 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclop|edia</div>', '20-23 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclope|dia</div>', '20-24 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after |encyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encycloped|ia</div>', '20-25 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedia|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 a|fter encyclopedia</div>' - : '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after e|ncyclopedia</div>', + '<div contenteditable dir="rtl" style="width: 120px;">\u05DC\u05E4\u05E0\u05D9 after encyclopedi|a</div>', '20-26 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_ltr.html index f487061..027144a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', @@ -56,83 +55,73 @@ selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-8 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-9 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-10 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-11 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-12 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-13 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-14 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-15 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', '21-16 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', '21-17 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', '21-18 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', '21-19 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_rtl.html index 70795fa8..db66b81 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_21_rtl.html
@@ -3,59 +3,53 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const isMac = navigator.platform.indexOf('Mac') === 0; -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-0 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-1 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-2 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-3 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-4 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-6 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '21-7 rtl right character'); selection_test( @@ -139,81 +133,61 @@ selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', '21-21 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>', '21-22 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', '21-23 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', '21-24 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', '21-25 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', '21-26 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', '21-27 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', '21-28 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>' - : (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>'), + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', '21-29 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', '21-30 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_ltr.html index 2ed70af6..1c7c008 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', @@ -56,83 +55,73 @@ selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-8 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is |\u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-9 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9|\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-10 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5|\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-11 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA|\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-12 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8| \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-13 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 |\u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-14 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8| \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6|\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-15 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', '22-16 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 |\u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', '22-17 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE|\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', '22-18 ltr right character'); selection_test( '<div contenteditable dir="ltr" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA|\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9|\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="ltr" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', '22-19 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_rtl.html index 7780052a..40649b7 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_22_rtl.html
@@ -3,59 +3,53 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const isMac = navigator.platform.indexOf('Mac') === 0; -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-0 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-1 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-2 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Th|is is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-3 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">Thi|s is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-4 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This| is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">|This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This |is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-6 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is| \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">T|his is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This i|s \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes.</div>', '22-7 rtl right character'); selection_test( @@ -139,81 +133,61 @@ selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>', '22-21 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>', '22-22 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', '22-23 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8| the boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 th|e boxes.</div>', '22-24 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? (usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>') - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the| boxes.</div>', '22-25 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>', '22-26 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>', '22-27 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the bo|xes.</div>', '22-28 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>' - : (isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the |boxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 |the boxes.</div>'), + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the box|es.</div>', '22-29 rtl right character'); selection_test( '<div contenteditable dir="rtl" contenteditable style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxes|.</div>', selection => selection.modify('move', 'right', 'character'), - isMac - ? '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the b|oxes.</div>' - : '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 t|he boxes.</div>', + '<div contenteditable dir="rtl" style="width: 100px;">This is \u05D9\u05D5\u05EA\u05E8 \u05E6\u05E8 \u05DE\u05D9\u05EA\u05E8 the boxe|s.</div>', '22-30 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_ltr.html index ba821c9..55a3ae88 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_ltr.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="ltr">|Lorem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_rtl.html index 1665e0d..993ed92d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_23_rtl.html
@@ -3,243 +3,189 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>', '23-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">Lo|rem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>', '23-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lo|rem\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">Lor|em\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', '23-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lor|em\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lo|rem\n <div></div>\n ipsum</div>', '23-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lor|em\n <div></div>\n ipsum</div>', '23-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n| <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n| <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-11 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-12 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n | <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-13 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n |<div></div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n |<div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">L|orem\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lore|m\n <div></div>\n ipsum</div>', '23-14 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div>|</div>\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - // The input position is canonicalized into "|ipsum", which causes the - // current behavior. It might be changed in the future. - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-15 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>|\n ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-16 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n| ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-17 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-18 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-19 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-20 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-21 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-22 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-23 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n | ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-24 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>' - : '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', + '<div contenteditable dir="rtl">Lorem|\n <div></div>\n ipsum</div>', '23-25 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">Lorem\n <div></div>\n ip|sum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', '23-26 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ip|sum</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">Lorem\n <div></div>\n ips|um</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', '23-27 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ips|um</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ip|sum</div>', '23-28 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n |ipsum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ips|um</div>', '23-29 rtl right character'); selection_test( '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsum|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">|Lorem\n <div></div>\n ipsum</div>' - : '<div contenteditable dir="rtl">Lorem\n <div></div>\n i|psum</div>', + '<div contenteditable dir="rtl">Lorem\n <div></div>\n ipsu|m</div>', '23-30 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_ltr.html index bf349bb..8c1aa18 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_ltr.html
@@ -3,237 +3,183 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; - selection_test( '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC|\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC|\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05E6|\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-2 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC|\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA|\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n| <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-11 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n | <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-12 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n |<div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7|\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', '24-13 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div>|</div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - // The input position is canonicalized into "|\u05DE\u05E6\u05E0\u05E4\u05EA", - // which causes the current behavior. It might be changed in the future. - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div>|</div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-14 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>|\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>|\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-15 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n| \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n| \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-16 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-17 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-18 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-19 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-20 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-21 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-22 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n | \u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-23 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', '24-24 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n |\u05DE\u05E6\u05E0\u05E4\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6|\u05E0\u05E4\u05EA</div>', '24-25 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6|\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE|\u05E6\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0|\u05E4\u05EA</div>', '24-26 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0|\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6|\u05E0\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', '24-27 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0|\u05E4\u05EA</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>', '24-28 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4|\u05EA</div>' - : '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>', + '<div contenteditable dir="ltr">\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA|</div>', '24-29 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_rtl.html index 6d10761..d36338d2f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_24_rtl.html
@@ -3,6 +3,7 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> + selection_test( '<div contenteditable dir="rtl">|\u05E6\u05DC\u05D7\u05EA\n <div></div>\n \u05DE\u05E6\u05E0\u05E4\u05EA</div>', selection => selection.modify('move', 'right', 'character'),
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html index bd7940c9..4a6133de 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', @@ -44,54 +43,48 @@ selection_test( '<div contenteditable dir="ltr">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abcdef|\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0|\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0|\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abcdef|\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1|\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1|\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0|\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2|<img>\u05D3\u05D4\u05D5</div>', '25-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2|<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1|\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>|\u05D3\u05D4\u05D5</div>', '25-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2|<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3|\u05D4\u05D5</div>', '25-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>|\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4|\u05D5</div>', '25-11 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5|</div>', '25-12 ltr right character'); selection_test( '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abcdef\u05d0\u05d1\u05d2<img>\u05d3\u05d4|\u05d5</div>' - : '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5|</div>', '25-13 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html index 49f47e93..809db33 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_25_rtl.html
@@ -3,52 +3,47 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bcdef\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|cdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|cdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc|def\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">a|bcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|def\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abcd|ef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">ab|cdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">abcd|ef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abc|def\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abcdef|\u05d0\u05d1\u05d2<img>\u05d3\u05d4\u05d5</div>' - : '<div contenteditable dir="rtl">|abcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abcd|ef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">abcdef|\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bcdef\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">abcde|f\u05D0\u05D1\u05D2<img>\u05D3\u05D4\u05D5</div>', '25-6 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html index 63be6d4..99e4b1d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_ltr.html
@@ -3,46 +3,41 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5a|bc<img>def</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', '26-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5abc<img>def</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', '26-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5abc<img>def</div>', '26-2 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5abc<img>def</div>', '26-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|\u05D3\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', '26-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3|\u05D4\u05D5abc<img>def</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', '26-5 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html index 8f1732f..3f0398e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_26_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def</div>', @@ -44,54 +43,48 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5a|bc<img>def</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4|\u05D5abc<img>def</div>', '26-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5a|bc<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5ab|c<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', '26-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5ab|c<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc|<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5a|bc<img>def</div>', '26-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc|<img>def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>|def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5ab|c<img>def</div>', '26-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>|def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>d|ef</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc|<img>def</div>', '26-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>d|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>de|f</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>|def</div>', '26-11 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>de|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5abc<img>def|</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5|abc<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>d|ef</div>', '26-12 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>def|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2\u05d3\u05d4|\u05d5abc<img>def</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5a|bc<img>def</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5abc<img>de|f</div>', '26-13 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html index 6e21005..8a0a66c3 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', @@ -32,53 +31,49 @@ selection_test( '<div contenteditable dir="ltr">abc<input>|\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>' - : '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<input>|\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>' - : '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1|\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1|\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0|\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2|<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2|<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1|\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img>|<img>\u05D3\u05D4\u05D5ghi</div>', '27-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img>|<img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2|<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>|\u05D3\u05D4\u05D5ghi</div>', '27-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>|\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img>|<img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3|\u05D4\u05D5ghi</div>', '27-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3|\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>|\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', '27-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3|\u05D4\u05D5ghi</div>', + '<div contenteditable dir="ltr">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', '27-11 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html index ecada0b..49467662 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_27_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>' - : '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>' - : '<div contenteditable dir="rtl">|abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', + '<div contenteditable dir="rtl">ab|c<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi</div>', '27-3 rtl right character'); selection_test( @@ -84,30 +79,24 @@ selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>' - : '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>', '27-12 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', '27-13 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>' - : '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5|ghi</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>', '27-14 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5ghi|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4|\u05D5ghi</div>' - : '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5g|hi</div>', + '<div contenteditable dir="rtl">abc<input>\u05D0\u05D1\u05D2<img><img>\u05D3\u05D4\u05D5gh|i</div>', '27-15 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html index 6c7d611..f8d7f6d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>|abc<img><img>def\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-2 ltr right character'); selection_test( @@ -84,30 +79,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>', '28-12 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>', '28-13 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>', '28-14 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4|\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5|</div>', '28-15 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html index ba04228..0648261 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_28_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', @@ -32,59 +31,55 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>|abc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|<input>abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>ab|c<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>|abc<img><img>def\u05D3\u05D4\u05D5</div>', '28-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>ab|c<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc|<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>', '28-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc|<img><img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img>|<img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>ab|c<img><img>def\u05D3\u05D4\u05D5</div>', '28-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img>|<img>def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>|def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc|<img><img>def\u05D3\u05D4\u05D5</div>', '28-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>|def\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>d|ef\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img>|<img>def\u05D3\u05D4\u05D5</div>', '28-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>d|ef\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>|def\u05D3\u05D4\u05D5</div>', '28-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>|abc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>d|ef\u05D3\u05D4\u05D5</div>', '28-11 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>def|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>a|bc<img><img>def\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<input>abc<img><img>de|f\u05D3\u05D4\u05D5</div>', '28-12 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html index 2733815c..71009e7 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', @@ -26,62 +25,54 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>\u05D3\u05D4\u05D5</span></div>', '29-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', '29-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', '29-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', '29-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5|</span></div>', '29-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2<span>\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5|</span></div>', '29-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2<span>\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span>|</div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span>|</div>', '29-11 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html index 186577b..6dd3bf0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_29_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05d0\u05d1\u05d2<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>\u05D3\u05D4\u05D5</span></div>', '29-3 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html index 6b47898..539c2a2a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a|bc<span>def</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>def</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>def</span></div>', '30-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2abc<span>def</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc<span>def</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>def</span></div>', '30-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>def</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc<span>def</span></div>', '30-2 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html index ebb4828..6beadf6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_30_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abc<span>def</span></div>', @@ -26,62 +25,54 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2a|bc<span>def</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abc<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abc<span>def</span></div>', '30-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>def</span></div>', '30-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', '30-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', '30-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>|def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>def</span></div>', '30-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>def</span></div>', '30-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2abc<span>def|</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>d|ef</span></div>', '30-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1|\u05d2abc<span>def</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', '30-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>def</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1|\u05d2abc<span>def</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>def</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>de|f</span></div>', '30-11 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html index 15cbf6d8..d9e78b2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', @@ -32,23 +31,19 @@ selection_test( '<div contenteditable dir="ltr">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab<span>c\u05d0\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab<span>c\u05D0|\u05D1\u05D2def</span></div>', '31-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">ab<span>c\u05D0|\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">ab<span>c|\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', '31-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">ab<span>c\u05D0|\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', '31-6 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html index 1316316..b58c0ff 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_31_rtl.html
@@ -3,42 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|b<span>c\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', '31-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', '31-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c|\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', '31-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab<span>|c\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c|\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|ab<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', '31-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab<span>c|\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|b<span>c\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|<span>c\u05D0\u05D1\u05D2def</span></div>', '31-4 rtl right character'); selection_test( @@ -56,38 +49,30 @@ selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1|\u05D2def</span></div>', '31-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', '31-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1\u05d2def|</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', '31-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1|\u05d2def</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', '31-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2def</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">ab<span>c\u05d0\u05d1|\u05d2def</span></div>' - : '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">ab<span>c\u05D0\u05D1\u05D2de|f</span></div>', '31-11 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html index f2133ff..d864bd31 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_ltr.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2a|bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1<span>\u05d2abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', '32-2 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>|\u05D2abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', '32-3 ltr right character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2abc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', '32-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2abc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', '32-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5|</span></div>', '32-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2abc\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5|</span></div>', '32-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1<span>\u05d2abc\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span>|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span>|</div>', '32-11 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html index 44ed480..8eecffc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_32_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', @@ -32,29 +31,25 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1<span>\u05d2a|bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|<span>\u05D2abc\u05D3\u05D4\u05D5</span></div>', '32-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2a|bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', '32-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1<span>\u05d2abc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2|abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2a|bc\u05D3\u05D4\u05D5</span></div>', '32-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2abc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2a|bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1<span>\u05D2ab|c\u05D3\u05D4\u05D5</span></div>', '32-7 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html index 157c390..c868d7a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc<span>\u05D0\u05D1\u05D2def</span></div>', @@ -26,31 +25,25 @@ selection_test( '<div contenteditable dir="ltr">abc|<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<span>\u05d0\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', '33-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<span>|\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc<span>\u05d0\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', '33-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|<span>\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', '33-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1|\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc<span>\u05D0|\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc<span>\u05D0\u05D1\u05D2|def</span></div>', '33-6 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html index 0e8d3bd..88f15646 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_33_rtl.html
@@ -3,40 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc<span>\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|abc<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">|abc<span>\u05D0\u05D1\u05D2def</span></div>', '33-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">|abc<span>\u05D0\u05D1\u05D2def</span></div>', '33-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|<span>\u05d0\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|abc<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', '33-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|<span>\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', '33-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<span>|\u05D0\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc<span>\u05D0\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|c<span>\u05D0\u05D1\u05D2def</span></div>', '33-4 rtl right character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1|\u05D2def</span></div>', '33-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2|def</span></div>', '33-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1\u05d2def|</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', '33-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1|\u05d2def</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', '33-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2def</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc<span>\u05d0\u05d1|\u05d2def</span></div>' - : '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">abc<span>\u05D0\u05D1\u05D2de|f</span></div>', '33-11 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html index d71e013..327d721 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>a|bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2<span>abc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', '34-2 ltr right character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>abc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', '34-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>abc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', '34-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5|</span></div>', '34-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>abc\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5|</span></div>', '34-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2<span>abc\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span>|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span>|</div>', '34-11 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html index c70b477..24485f4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_34_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', @@ -26,37 +25,31 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2<span>a|bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>|abc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2<span>a|bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2<span>abc\u05D3\u05D4\u05D5</span></div>', '34-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', '34-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2<span>abc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|<span>abc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', '34-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>abc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>a|bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2<span>ab|c\u05D3\u05D4\u05D5</span></div>', '34-7 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html index ae73a45..cc53db8 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0def</div>', @@ -26,9 +25,7 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05D0d|ef</div>' - : '<div contenteditable dir="ltr">abc\u05D0|def</div>', + '<div contenteditable dir="ltr">abc\u05D0|def</div>', '35-3 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html index dde1002..a610c329f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_35_rtl.html
@@ -3,63 +3,52 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05D0def</div>' - : '<div contenteditable dir="rtl">|abc\u05D0def</div>', + '<div contenteditable dir="rtl">|abc\u05D0def</div>', '35-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0def</div>', + '<div contenteditable dir="rtl">|abc\u05D0def</div>', '35-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05D0def</div>' - : '<div contenteditable dir="rtl">|abc\u05D0def</div>', + '<div contenteditable dir="rtl">a|bc\u05D0def</div>', '35-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0def</div>', + '<div contenteditable dir="rtl">ab|c\u05D0def</div>', '35-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0|def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0d|ef</div>' - : '<div contenteditable dir="rtl">abc|\u05D0def</div>', + '<div contenteditable dir="rtl">abc|\u05D0def</div>', '35-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0d|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0de|f</div>', + '<div contenteditable dir="rtl">abc\u05D0|def</div>', '35-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0de|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0def|</div>' - : '<div contenteditable dir="rtl">abc\u05D0|def</div>', + '<div contenteditable dir="rtl">abc\u05D0d|ef</div>', '35-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0def|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05D0def</div>' - : '<div contenteditable dir="rtl">abc\u05D0d|ef</div>', + '<div contenteditable dir="rtl">abc\u05D0de|f</div>', '35-7 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html index c50c1f4..8f6cafa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', '36-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', '36-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', '36-2 ltr right character'); selection_test( @@ -36,30 +31,24 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>', '36-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>', '36-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>', '36-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4|\u05D5</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5|</div>', '36-7 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html index 9d2b8f1..b0d6842c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_36_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2a\u05D3\u05D4\u05D5</div>', @@ -26,17 +25,13 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2a\u05D3\u05D4\u05D5</div>', '36-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a\u05D3\u05D4\u05D5</div>', '36-4 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html index 5979377..a3a2f1e5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0\u05D1\u05D2<span>def</span></div>', @@ -26,23 +25,19 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0\u05d1\u05d2<span>d|ef</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', '37-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0\u05d1\u05d2<span>def</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', '37-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0\u05D1|\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0\u05D1\u05D2|<span>def</span></div>', '37-5 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html index 49cd57e..390b0b20 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_37_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>', '37-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>', '37-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>def</span></div>' - : '<div contenteditable dir="rtl">|abc\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>', '37-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0\u05D1\u05D2<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0\u05D1\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">ab|c\u05D0\u05D1\u05D2<span>def</span></div>', '37-3 rtl right character'); selection_test( @@ -48,46 +43,36 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|<span>def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2<span>def</span></div>', '37-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>|def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2<span>def</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2<span>def</span></div>', '37-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|<span>def</span></div>', '37-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2|<span>def</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', '37-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2<span>def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', '37-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>def</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05D0\u05D1|\u05D2<span>def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>d|ef</span></div>', + '<div contenteditable dir="rtl">abc\u05D0\u05D1\u05D2<span>de|f</span></div>', '37-11 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html index 902a38f..1e8be025 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a|bc<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2abc<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', '38-2 ltr right character'); selection_test( @@ -48,46 +43,36 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc|<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', '38-6 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc<span>|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', '38-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc|<span>\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', '38-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5|</span></div>', '38-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc<span>\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5|</span></div>', '38-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2abc<span>\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span>|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span>|</div>', '38-11 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html index 48a0d29a..0711acbe 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_38_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', @@ -26,35 +25,31 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2abc<span>\u05D3\u05D4\u05D5</span></div>', '38-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', '38-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|abc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', '38-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc|<span>\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', '38-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2abc<span>|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|bc<span>\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2ab|c<span>\u05D3\u05D4\u05D5</span></div>', '38-7 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html index face355f..5353f32 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|abc\u05D0<span>\u05D1\u05D2def</span></div>', @@ -26,31 +25,25 @@ selection_test( '<div contenteditable dir="ltr">abc|\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc\u05d0<span>\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0|<span>\u05D1\u05D2def</span></div>', '39-3 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0|<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', '39-4 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0<span>|\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">abc|\u05d0<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', '39-5 ltr right character'); selection_test( '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1|\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">abc\u05D0|<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="ltr">abc\u05D0<span>\u05D1\u05D2|def</span></div>', '39-6 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html index 0170d4f..6569f23be 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_39_rtl.html
@@ -3,34 +3,29 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|abc\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">a|bc\u05d0<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|abc\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">|abc\u05D0<span>\u05D1\u05D2def</span></div>', '39-0 rtl right character'); selection_test( '<div contenteditable dir="rtl">a|bc\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">|abc\u05D0<span>\u05D1\u05D2def</span></div>', '39-1 rtl right character'); selection_test( '<div contenteditable dir="rtl">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc|\u05d0<span>\u05d1\u05d2def</span></div>' - : '<div contenteditable dir="rtl">|abc\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">a|bc\u05D0<span>\u05D1\u05D2def</span></div>', '39-2 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc|\u05D0<span>\u05D1\u05D2def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">a|bc\u05D0<span>\u05D1\u05D2def</span></div>', + '<div contenteditable dir="rtl">ab|c\u05D0<span>\u05D1\u05D2def</span></div>', '39-3 rtl right character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2|def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1\u05d2d|ef</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1|\u05D2def</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1|\u05D2def</span></div>', '39-7 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2|def</span></div>', '39-8 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1\u05d2def|</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2|def</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', '39-9 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1|\u05d2def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', '39-10 rtl right character'); selection_test( '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2def</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">abc\u05d0<span>\u05d1|\u05d2def</span></div>' - : '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2d|ef</span></div>', + '<div contenteditable dir="rtl">abc\u05D0<span>\u05D1\u05D2de|f</span></div>', '39-11 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html index 5dcd3968..43c0121 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_ltr.html
@@ -3,28 +3,23 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a|<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-0 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">|\u05d0\u05d1\u05d2a<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-1 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0|\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-2 ltr right character'); selection_test( @@ -54,38 +49,30 @@ selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>bc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', '40-7 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>bc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', '40-8 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4|\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3|\u05D4\u05D5</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5|</span></div>', '40-9 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5|</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>bc\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5|</span></div>', '40-10 ltr right character'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span>|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr">\u05d0\u05d1\u05d2a<span>bc\u05d3\u05d4|\u05d5</span></div>' - : '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span>|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span>|</div>', '40-11 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html index 639edfb..806cfe41 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_40_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|\u05D0\u05D1\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', @@ -26,35 +25,31 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2a|<span>bc\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1|\u05D2a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-3 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|<span>bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-4 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>|bc\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', '40-5 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl">\u05d0\u05d1\u05d2a<span>bc|\u05d3\u05d4\u05d5</span></div>' - : '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2|a<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|<span>bc\u05D3\u05D4\u05D5</span></div>', '40-6 rtl right character'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>bc|\u05D3\u05D4\u05D5</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a|<span>bc\u05D3\u05D4\u05D5</span></div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D2a<span>b|c\u05D3\u05D4\u05D5</span></div>', '40-7 rtl right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_ltr.html index 11be489..f2f3a93 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_ltr.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">|abc<!-- -->\n<!-- -->def</div>',
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_rtl.html index d13a0c8..269f1ad 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_41_rtl.html
@@ -3,77 +3,64 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">|abc<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">a|bc \n def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">|abc \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">|abc \n def</div>', '41-0 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">a|bc<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="white-space: pre;">ab|c \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">|abc \n def</div>', '41-1 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">ab|c<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">|abc \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">a|bc \n def</div>', '41-2 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc|<!-- -->\n<!-- -->def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="white-space: pre;">a|bc \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">ab|c \n def</div>', '41-3 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->|\n<!-- -->def</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="white-space: pre;">a|bc \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">ab|c \n def</div>', '41-4 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n|<!-- -->def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>', '41-5 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->|def</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>', '41-6 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->d|ef</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl" style="white-space: pre;">abc \n de|f</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>', '41-7 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->de|f</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc \n def|</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n |def</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>', '41-8 rtl right character'); selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">abc<!-- -->\n<!-- -->def|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl" style="white-space: pre;">abc| \n def</div>' - : '<div contenteditable dir="rtl" style="white-space: pre;">abc \n d|ef</div>', + '<div contenteditable dir="rtl" style="white-space: pre;">abc \n de|f</div>', '41-9 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_ltr.html index b9aa4dbd..8840ece 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_ltr.html
@@ -3,81 +3,64 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-0 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">|\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2 \n \u05D3\u05D4\u05D5</div>', '42-1 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1|\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0|\u05D1\u05D2 \n \u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2| \n \u05D3\u05D4\u05D5</div>', '42-2 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2|<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>', '42-3 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->|\n<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>', '42-4 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n|<!-- -->\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n| \u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>', '42-5 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->|\u05D3\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4|\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>', '42-6 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3|\u05D4\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n |\u05D3\u05D4\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4|\u05D5</div>', '42-7 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4|\u05D5</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3|\u05D4\u05D5</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>', '42-8 ltr right character'); selection_test( '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5|</div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4|\u05D5</div>' - : '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>', + '<div contenteditable dir="ltr" style="white-space: pre;">\u05D0\u05D1\u05D2 \n \u05D3\u05D4\u05D5|</div>', '42-9 ltr right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_rtl.html index cd09342..b5ee48d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_42_rtl.html
@@ -3,7 +3,6 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl" style="white-space: pre;">|\u05D0\u05D1\u05D2<!-- -->\n<!-- -->\u05D3\u05D4\u05D5</div>',
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html index 46d056a..8368541 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_ltr.html
@@ -3,22 +3,17 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="ltr">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-0 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-1 ltr right character'); selection_test( @@ -30,31 +25,25 @@ selection_test( '<div contenteditable dir="ltr"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-3 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-4 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-5 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7|\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', '43-6 ltr right character'); selection_test( @@ -78,23 +67,19 @@ selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>', '43-10 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', '43-11 ltr right character'); selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0|\u05E0\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', '43-12 ltr right character'); selection_test( @@ -112,9 +97,7 @@ selection_test( '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>' - : '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', + '<div contenteditable dir="ltr"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>', '43-15 ltr right character'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html index a811317..6cdbf59 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_character_43_rtl.html
@@ -3,42 +3,35 @@ <script src="../../../resources/testharnessreport.js"></script> <script src="../../assert_selection.js"></script> <script> -const usesBidiAffinity = window.internals && internals.runtimeFlags.bidiCaretAffinityEnabled; selection_test( '<div contenteditable dir="rtl">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl">|<span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-0 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-1 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-2 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">|abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-3 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc|\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">a|bc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">ab|c\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-4 rtl right character'); selection_test( @@ -56,29 +49,25 @@ selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7|\u05E7123\u05E0\u05E0\u05E0def</span></div>', '43-7 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', '43-8 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7|123\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>', '43-9 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123|\u05E0\u05E0\u05E0def</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E71|23\u05E0\u05E0\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E712|3\u05E0\u05E0\u05E0def</span></div>', '43-10 rtl right character'); selection_test( @@ -96,34 +85,30 @@ selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0|\u05E0def</span></div>', '43-13 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', '43-14 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', selection => selection.modify('move', 'right', 'character'), - usesBidiAffinity - ? '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>' - : '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0|def</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', '43-15 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def|</span></div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', '43-16 rtl right character'); selection_test( '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0def</span>|</div>', selection => selection.modify('move', 'right', 'character'), - '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0d|ef</span></div>', + '<div contenteditable dir="rtl"><span dir="rtl">abc\u05E7\u05E7\u05E7123\u05E0\u05E0\u05E0de|f</span></div>', '43-17 rtl right character'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_ltr_multi_line.html index c86e772..70018c7e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc |def<br><br><br>uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>', '1-3 ltr right word'); selection_test( @@ -45,7 +45,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>', '1-4 ltr right word'); selection_test( @@ -53,7 +53,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>', '1-5 ltr right word'); selection_test( @@ -61,7 +61,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<br><br><br>uvw xyz</div>', '1-6 ltr right word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def<br><br><br>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def<br><br><br>uvw |xyz</div>', '1-7 ltr right word'); selection_test( @@ -77,7 +77,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def<br><br><br>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def<br><br><br>uvw |xyz</div>', '1-8 ltr right word'); selection_test( @@ -85,7 +85,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def<br><br><br>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def<br><br><br>uvw |xyz</div>', '1-9 ltr right word'); selection_test( @@ -117,7 +117,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def<br><br><br>uvw xyz|</div>' - : '<div contenteditable dir="ltr">abc def<br><br><br>uvw |xyz</div>', + : '<div contenteditable dir="ltr">abc def<br><br><br>uvw xyz|</div>', '1-13 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_rtl_multi_line.html index 0d2397d..1fa0d0d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_01_rtl_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="rtl">a|bc def<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def<br><br><br>uvw xyz</div>', '1-1 rtl right word'); selection_test( '<div contenteditable dir="rtl">ab|c def<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def<br><br><br>uvw xyz</div>', '1-2 rtl right word'); selection_test( @@ -41,49 +41,49 @@ selection_test( '<div contenteditable dir="rtl">abc d|ef<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-5 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc de|f<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-6 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def|<br><br><br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-7 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br>|<br><br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-8 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br>|<br>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-9 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<br><br><br>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<br><br><br>uvw xyz</div>', '1-10 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>u|vw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', '1-11 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uv|w xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', '1-12 rtl right word'); selection_test( @@ -101,18 +101,18 @@ selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uvw x|yz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-15 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uvw xy|z</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>|uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-16 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<br><br><br>uvw xyz|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<br><br><br>uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def<br><br><br>uvw |xyz</div>', '1-17 rtl right word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_ltr_multi_line.html index bf86a658..2a049f1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-3 ltr right word'); selection_test( @@ -45,7 +45,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-4 ltr right word'); selection_test( @@ -53,7 +53,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-5 ltr right word'); selection_test( @@ -61,79 +61,79 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + : '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-6 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-7 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-8 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br>|</div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-9 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div>|<div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-10 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-11 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br>|</div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-12 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div>|<div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-13 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-14 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br>|</div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>' + : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-15 ltr right word'); selection_test( @@ -165,7 +165,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>' - : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', + : '<div contenteditable dir="ltr">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', '2-19 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_rtl_multi_line.html index 34d1872..bad21c61 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_02_rtl_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="rtl">a|bc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-1 rtl right word'); selection_test( '<div contenteditable dir="rtl">ab|c def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-2 rtl right word'); selection_test( @@ -41,85 +41,85 @@ selection_test( '<div contenteditable dir="rtl">abc d|ef<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-5 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc de|f<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-6 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def|<div><br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-7 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-8 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br>|</div><div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', '2-9 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div>|<div><br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-10 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-11 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br>|</div><div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div>|<br></div><div><br></div><div><br></div>uvw xyz</div>', '2-12 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div>|<div><br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-13 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-14 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br>|</div>uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div>|<br></div><div><br></div>uvw xyz</div>', '2-15 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def<div><br></div><div><br></div><div><br></div>uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div>|<br></div>uvw xyz</div>', '2-16 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>u|vw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', '2-17 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uv|w xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', '2-18 rtl right word'); selection_test( @@ -137,18 +137,18 @@ selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw x|yz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', '2-21 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xy|z</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>|uvw xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', '2-22 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw xyz|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def<div><br></div><div><br></div><div><br></div>uvw |xyz</div>', '2-23 rtl right word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_03_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_03_ltr_multi_line.html index f2999cc..b36d1a1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_03_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_03_ltr_multi_line.html
@@ -12,24 +12,24 @@ '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-0 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-1 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-2 ltr right word'); selection_test( @@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-3 ltr right word'); selection_test( @@ -45,67 +45,71 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-4 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-5 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '3-6 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-7 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br>|<br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-8 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br>|<br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-9 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-10 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', + isMac + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-11 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', + isMac + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '3-12 ltr right word'); selection_test( @@ -119,23 +123,23 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '3-14 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '3-15 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<br><br><br>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '3-16 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_ltr_multi_line.html index eee71a0d..67d98b740 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_ltr_multi_line.html
@@ -12,24 +12,24 @@ '<div contenteditable dir="ltr">|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-0 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-1 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-2 ltr right word'); selection_test( @@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-3 ltr right word'); selection_test( @@ -45,115 +45,119 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-4 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-5 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-6 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-7 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-8 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br>|</div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-9 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-10 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-11 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-12 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-13 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-14 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-15 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '4-16 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', + isMac + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '4-17 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', + isMac + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '4-18 ltr right word'); selection_test( @@ -167,23 +171,23 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '4-20 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '4-21 ltr right word'); selection_test( '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' + : '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '4-22 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_rtl_multi_line.html index 4170971f..9f3ca51b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_04_rtl_multi_line.html
@@ -71,43 +71,43 @@ selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-10 rtl right word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-11 rtl right word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-12 rtl right word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-13 rtl right word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-14 rtl right word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-15 rtl right word'); selection_test( '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0<div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '4-16 rtl right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_05_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_05_ltr_multi_line.html index 074271a..dbd34bd 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_05_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_05_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0| hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc |\u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-3 ltr right word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij| \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-7 ltr right word'); selection_test( @@ -101,7 +101,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-11 ltr right word'); selection_test( @@ -133,7 +133,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-15 ltr right word'); selection_test( @@ -141,7 +141,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-16 ltr right word'); selection_test( @@ -149,7 +149,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-17 ltr right word'); selection_test( @@ -157,7 +157,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz| <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz |<br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-18 ltr right word'); selection_test( @@ -165,7 +165,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-19 ltr right word'); selection_test( @@ -173,7 +173,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-20 ltr right word'); selection_test( @@ -181,7 +181,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-21 ltr right word'); selection_test( @@ -189,7 +189,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-22 ltr right word'); selection_test( @@ -221,7 +221,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj| \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', '5-26 ltr right word'); selection_test( @@ -245,7 +245,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0| opq \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |opq \u05D0\u05D0\u05D0</div>', '5-29 ltr right word'); selection_test( @@ -277,7 +277,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq| \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |opq \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq |\u05D0\u05D0\u05D0</div>', '5-33 ltr right word'); selection_test( @@ -309,7 +309,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq |\u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 xyz <br><br><br>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 opq \u05D0\u05D0\u05D0|</div>', '5-37 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_ltr_multi_line.html index ed61b09..a4c7a12 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0| hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc |\u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-3 ltr right word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 |hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-7 ltr right word'); selection_test( @@ -100,32 +100,32 @@ '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-11 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-12 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-13 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-14 ltr right word'); selection_test( @@ -141,23 +141,23 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-16 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-17 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0| uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-18 ltr right word'); selection_test( @@ -165,7 +165,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-19 ltr right word'); selection_test( @@ -197,7 +197,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-23 ltr right word'); selection_test( @@ -205,7 +205,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-24 ltr right word'); selection_test( @@ -213,7 +213,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-25 ltr right word'); selection_test( @@ -221,87 +221,87 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-26 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-27 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz |<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-28 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-29 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br>|</div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-30 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-31 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-32 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-33 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-34 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-35 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0| kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-36 ltr right word'); selection_test( @@ -333,7 +333,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj| \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 |kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-40 ltr right word'); selection_test( @@ -357,7 +357,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0| mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj |\u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-43 ltr right word'); selection_test( @@ -389,7 +389,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-47 ltr right word'); selection_test( @@ -413,7 +413,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-50 ltr right word'); selection_test( @@ -444,28 +444,32 @@ '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-54 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-55 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0|\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', + isMac + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-56 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0|\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', + isMac + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>', '6-57 ltr right word'); selection_test( @@ -479,23 +483,23 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '6-59 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0|\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '6-60 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0|\u05D0</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 |\u05D0\u05D0\u05D0</div>' - : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0| \u05D0\u05D0\u05D0</div>', + ? '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>' + : '<div contenteditable dir="ltr">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0|</div>', '6-61 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_rtl_multi_line.html index e9aae06..7785683 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_06_rtl_multi_line.html
@@ -137,13 +137,13 @@ selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 u|vw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-21 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uv|w xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-22 rtl right word'); selection_test( @@ -161,79 +161,79 @@ selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw x|yz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-25 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xy|z <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 |uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-26 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz| <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-27 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz |<div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-28 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-29 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br>|</div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw |xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-30 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div>|<div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-31 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-32 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br>|</div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div>|<br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-33 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div>|<div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-34 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-35 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br>|</div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div>|<br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-36 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>|\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw| xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div>|<br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-37 rtl right word'); selection_test( @@ -305,7 +305,7 @@ selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 m|n opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-49 rtl right word'); selection_test( @@ -323,25 +323,25 @@ selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn o|pq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-52 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn op|q \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 |mn opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-53 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq| \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-54 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn opq |\u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn| opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', + '<div contenteditable dir="rtl">abc \u05D0\u05D0\u05D0 hij \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0 uvw xyz <div><br></div><div><br></div><div><br></div>\u05D0\u05D0\u05D0 kj \u05D0\u05D0\u05D0 mn |opq \u05D0\u05D0\u05D0 \u05D0\u05D0\u05D0</div>', '6-55 rtl right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_ltr_multi_line.html index 0e73702..b47de61 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="ltr">abc |ghi<div></div><div></div><div></div>opq xyz</div>', + : '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-3 ltr right word'); selection_test( @@ -45,7 +45,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + : '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-4 ltr right word'); selection_test( @@ -53,7 +53,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + : '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-5 ltr right word'); selection_test( @@ -61,7 +61,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>' - : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + : '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div>opq xyz</div>', '7-6 ltr right word'); selection_test( @@ -69,7 +69,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>opq| xyz</div>' - : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-7 ltr right word'); selection_test( @@ -141,7 +141,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>opq xyz|</div>' - : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>opq |xyz</div>', + : '<div contenteditable dir="ltr">abc ghi<div></div><div></div><div></div>opq xyz|</div>', '7-16 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_rtl_multi_line.html index 8f66c43..3a3ee88 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_07_rtl_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="rtl">a|bc ghi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div>opq xyz</div>', '7-1 rtl right word'); selection_test( '<div contenteditable dir="rtl">ab|c ghi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div>opq xyz</div>', '7-2 rtl right word'); selection_test( @@ -41,67 +41,67 @@ selection_test( '<div contenteditable dir="rtl">abc g|hi<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-5 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc gh|i<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-6 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-7 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div>|</div><div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-8 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div>|<div></div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-9 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div>|</div><div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-10 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div>|<div></div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-11 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div>|</div>opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-12 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div>opq xyz</div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div>opq xyz</div>', '7-13 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>o|pq xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', '7-14 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>op|q xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', '7-15 rtl right word'); selection_test( @@ -119,18 +119,18 @@ selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq x|yz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-18 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xy|z</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|opq xyz</div>', + '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-19 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq xyz|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq| xyz</div>', + '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>opq |xyz</div>', '7-20 rtl right word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_ltr_multi_line.html index 73ef884..5169d2a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div></div>' - : '<div contenteditable dir="ltr">abc |ghi<div></div><div></div><div></div></div>', + : '<div contenteditable dir="ltr">abc ghi|<div></div><div></div><div></div></div>', '8-3 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_rtl_multi_line.html index 4384fd2..e3256ff1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_08_rtl_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="rtl">a|bc ghi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div></div>', '8-1 rtl right word'); selection_test( '<div contenteditable dir="rtl">ab|c ghi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div></div>', '8-2 rtl right word'); selection_test( @@ -41,54 +41,54 @@ selection_test( '<div contenteditable dir="rtl">abc g|hi<div></div><div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-5 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc gh|i<div></div><div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-6 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi|<div></div><div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-7 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div>|</div><div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-8 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div>|<div></div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-9 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div>|</div><div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-10 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div>|<div></div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-11 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div>|</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-12 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div></div><div></div><div></div>|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div></div><div></div><div></div></div>', + '<div contenteditable dir="rtl">abc |ghi<div></div><div></div><div></div></div>', '8-13 rtl right word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_ltr_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_ltr_multi_line.html index 1cca6fa..e19e2e8 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_ltr_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_ltr_multi_line.html
@@ -37,7 +37,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="ltr">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + : '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-3 ltr right word'); selection_test( @@ -45,7 +45,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + : '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-4 ltr right word'); selection_test( @@ -53,7 +53,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + : '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-5 ltr right word'); selection_test( @@ -61,23 +61,23 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + : '<div contenteditable dir="ltr">abc ghi|<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-6 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc ghi|<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>', '9-7 ltr right word'); selection_test( '<div contenteditable dir="ltr">abc ghi<div>|<img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), isMac - ? '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + ? '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>' + : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png">|</div><div></div><div></div>opq rst</div>', '9-8 ltr right word'); selection_test( @@ -85,7 +85,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-9 ltr right word'); selection_test( @@ -149,7 +149,7 @@ selection => selection.modify('move', 'right', 'word'), isMac ? '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>' - : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', + : '<div contenteditable dir="ltr">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst|</div>', '9-17 ltr right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_rtl_multi_line.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_rtl_multi_line.html index 641c45e..3fbf8bc0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_rtl_multi_line.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_09_rtl_multi_line.html
@@ -17,13 +17,13 @@ selection_test( '<div contenteditable dir="rtl">a|bc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">|abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-1 rtl right word'); selection_test( '<div contenteditable dir="rtl">ab|c ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">|abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-2 rtl right word'); selection_test( @@ -41,73 +41,73 @@ selection_test( '<div contenteditable dir="rtl">abc g|hi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-5 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc gh|i<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-6 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi|<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-7 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div>|<img src=../../resources/abe.png></div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc |ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-8 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png>|</div><div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-9 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div>|<div></div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-10 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div>|</div><div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-11 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div>|<div></div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-12 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div>|</div>opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-13 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>|opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div>|<img src="../../resources/abe.png"></div><div></div><div></div>opq rst</div>', '9-14 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>o|pq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', '9-15 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>op|q rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', '9-16 rtl right word'); selection_test( @@ -125,18 +125,18 @@ selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq r|st</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-19 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rs|t</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>|opq rst</div>', + '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-20 rtl right word'); selection_test( '<div contenteditable dir="rtl">abc ghi<div><img src=../../resources/abe.png></div><div></div><div></div>opq rst|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq| rst</div>', + '<div contenteditable dir="rtl">abc ghi<div><img src="../../resources/abe.png"></div><div></div><div></div>opq |rst</div>', '9-21 rtl right word'); </script>
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_inline_block_positioned_element_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_inline_block_positioned_element_1.html index c25283e..928915b8 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_inline_block_positioned_element_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_inline_block_positioned_element_1.html
@@ -39,43 +39,43 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin| start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin |start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-5 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin |start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">|abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-6 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin s|tart</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">|abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-7 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin st|art</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">|abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-8 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin sta|rt</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">|abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-9 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin star|t</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">|abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-10 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start|</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">|abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc |def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-11 right word'); selection_test( @@ -99,31 +99,31 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc| def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc |def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def|</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-15 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc |def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>|end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def|</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-16 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc d|ef</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>|end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def|</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-17 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc de|f</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>|end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def|</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-18 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def|</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>|end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end |ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-19 right word'); selection_test( @@ -147,31 +147,31 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end| ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end |ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing|</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-23 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end |ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">|this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing|</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-24 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end i|ng</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">|this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing|</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-25 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end in|g</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">|this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing|</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-26 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing|</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">|this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this |is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-27 right word'); selection_test( @@ -201,7 +201,7 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this| is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this |is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is |float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-32 right word'); selection_test( @@ -219,43 +219,43 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is| float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is |float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-35 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is |float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">|this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-36 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is f|loat</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">|this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-37 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is fl|oat</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">|this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-38 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is flo|at</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">|this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-39 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is floa|t</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">|this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-40 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float|</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">|this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this |is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-41 right word'); selection_test( @@ -285,7 +285,7 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this| is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this |is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is |fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-46 right word'); selection_test( @@ -303,43 +303,43 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is| fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is |fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-49 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is |fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">|this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-50 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is f|ixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">|this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-51 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fi|xed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">|this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-52 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fix|ed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">|this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-53 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixe|d</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">|this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-54 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed|</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">|this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this |is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-55 right word'); selection_test( @@ -369,7 +369,7 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this| is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this |is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is |relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-60 right word'); selection_test( @@ -387,61 +387,61 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is| relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is |relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-63 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is |relative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-64 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is r|elative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-65 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is re|lative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-66 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is rel|ative</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-67 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is rela|tive</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-68 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relat|ive</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-69 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relati|ve</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-70 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relativ|e</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', '1-71 right word'); selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative|</div><div style="position:absolute; left:100px; top:150px">this is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">|this is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this |is absolute</div></div>', '1-72 right word'); selection_test( @@ -471,7 +471,7 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this| is absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this |is absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is |absolute</div></div>', '1-77 right word'); selection_test( @@ -489,7 +489,7 @@ selection_test( '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is| absolute</div></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is |absolute</div></div>', + '<div contenteditable style="width:2000px; height:2000px"><div>begin start</div><div style="display:inline-block">abc def</div><div>end ing</div><div style="float:left">this is float</div><div style="position:fixed; top:30px; right:5px">this is fixed</div><div style="position:relative; left:20px">this is relative</div><div style="position:absolute; left:100px; top:150px">this is absolute|</div></div>', '1-80 right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_1.html index 32b78b9..70f657e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_1.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def hij opq</div>', + '<div contenteditable dir="ltr">abc def | hij opq</div>', '1-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def | hij opq</div>', + '<div contenteditable dir="ltr">abc def hij |opq</div>', '1-7 right word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij| opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij |opq</div>', + '<div contenteditable dir="ltr">abc def hij opq|</div>', '1-14 right word'); selection_test( @@ -120,4 +120,3 @@ '<div contenteditable dir="ltr">abc def hij opq|</div>', '1-18 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_10.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_10.html index c95db06..04fba65 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_10.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_10.html
@@ -9,109 +9,109 @@ selection_test( '<div contenteditable dir="ltr">|אבצ דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-0 right word'); selection_test( '<div contenteditable dir="ltr">א|בצ דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח ופק|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-1 right word'); selection_test( '<div contenteditable dir="ltr">אב|צ דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח ופק|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-2 right word'); selection_test( '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח ופק|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-3 right word'); selection_test( '<div contenteditable dir="ltr">אבצ |דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-4 right word'); selection_test( '<div contenteditable dir="ltr">אבצ ד|עפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-5 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דע|פ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '10-6 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-7 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-8 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-9 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-10 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ |היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-11 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ ה|יח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-12 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ הי|ח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '10-13 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '10-14 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח |ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '10-15 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח ו|פק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '10-16 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח ופ|ק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '10-17 right word'); selection_test( @@ -120,4 +120,3 @@ '<div contenteditable dir="ltr">אבצ דעפ היח ופק|</div>', '10-18 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_11.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_11.html index 0144d82..ade9574 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_11.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_11.html
@@ -9,73 +9,73 @@ selection_test( '<div contenteditable dir="ltr">|אבצ דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-0 right word'); selection_test( '<div contenteditable dir="ltr">א|בצ דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-1 right word'); selection_test( '<div contenteditable dir="ltr">אב|צ דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '11-2 right word'); selection_test( '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-3 right word'); selection_test( '<div contenteditable dir="ltr">אבצ |דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-4 right word'); selection_test( '<div contenteditable dir="ltr">אבצ ד|עפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-5 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דע|פ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '11-6 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | abc def hij</div>', '11-7 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ |היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | abc def hij</div>', '11-8 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ ה|יח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | abc def hij</div>', '11-9 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ הי|ח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | abc def hij</div>', '11-10 right word'); selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח| abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח | abc def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc |def hij</div>', '11-11 right word'); selection_test( @@ -117,7 +117,7 @@ selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח abc| def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח abc |def hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def |hij</div>', '11-18 right word'); selection_test( @@ -141,7 +141,7 @@ selection_test( '<div contenteditable dir="ltr">אבצ דעפ היח abc def| hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבצ דעפ היח abc def |hij</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij|</div>', '11-22 right word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="ltr">אבצ דעפ היח abc def hij|</div>', '11-26 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_12.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_12.html index 6b811a0..d408151 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_12.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_12.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def hij אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def hij אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| hij אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |hij אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-7 right word'); selection_test( @@ -75,97 +75,97 @@ selection_test( '<div contenteditable dir="ltr">abc def hij| אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-11 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-12 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-13 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij | אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-14 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij |אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-15 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij א|בצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-16 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אב|צ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '12-17 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-18 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ |דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-19 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ ד|עפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-20 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דע|פ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '12-21 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw</div>', '12-22 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ |היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw</div>', '12-23 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ ה|יח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw</div>', '12-24 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ הי|ח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw</div>', '12-25 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח| opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח | opq rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw</div>', '12-26 right word'); selection_test( @@ -207,7 +207,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח opq| rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח opq |rst uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw</div>', '12-33 right word'); selection_test( @@ -231,7 +231,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח opq rst| uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח opq rst |uvw</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw|</div>', '12-37 right word'); selection_test( @@ -258,4 +258,3 @@ '<div contenteditable dir="ltr">abc def hij אבצ דעפ היח opq rst uvw|</div>', '12-41 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_13.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_13.html index 2b8584a9..7827069 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_13.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_13.html
@@ -15,109 +15,108 @@ selection_test( '<div contenteditable dir="rtl">a|bc def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">|abc def hij opq</div>', '13-1 right word'); selection_test( '<div contenteditable dir="rtl">ab|c def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">|abc def hij opq</div>', '13-2 right word'); selection_test( '<div contenteditable dir="rtl">abc| def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">|abc def hij opq</div>', '13-3 right word'); selection_test( '<div contenteditable dir="rtl">abc |def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">|abc def hij opq</div>', '13-4 right word'); selection_test( '<div contenteditable dir="rtl">abc d|ef hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-5 right word'); selection_test( '<div contenteditable dir="rtl">abc de|f hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-6 right word'); selection_test( '<div contenteditable dir="rtl">abc def| hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-7 right word'); selection_test( '<div contenteditable dir="rtl">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-8 right word'); selection_test( '<div contenteditable dir="rtl">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-9 right word'); selection_test( '<div contenteditable dir="rtl">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-10 right word'); selection_test( '<div contenteditable dir="rtl">abc def |hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc |def hij opq</div>', '13-11 right word'); selection_test( '<div contenteditable dir="rtl">abc def h|ij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-12 right word'); selection_test( '<div contenteditable dir="rtl">abc def hi|j opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-13 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij| opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-14 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij |opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq</div>', + '<div contenteditable dir="rtl">abc def | hij opq</div>', '13-15 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij o|pq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-16 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij op|q</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-17 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq</div>', + '<div contenteditable dir="rtl">abc def hij |opq</div>', '13-18 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_14.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_14.html index 425b7cc..672003c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_14.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_14.html
@@ -39,169 +39,168 @@ selection_test( '<div contenteditable dir="rtl"> a|bc def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-5 right word'); selection_test( '<div contenteditable dir="rtl"> ab|c def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-6 right word'); selection_test( '<div contenteditable dir="rtl"> abc| def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-7 right word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-8 right word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-9 right word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-10 right word'); selection_test( '<div contenteditable dir="rtl"> abc |def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> |abc def hij opq </div>', '14-11 right word'); selection_test( '<div contenteditable dir="rtl"> abc d|ef hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-12 right word'); selection_test( '<div contenteditable dir="rtl"> abc de|f hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-13 right word'); selection_test( '<div contenteditable dir="rtl"> abc def| hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-14 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-15 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-16 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-17 right word'); selection_test( '<div contenteditable dir="rtl"> abc def |hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc | def hij opq </div>', '14-18 right word'); selection_test( '<div contenteditable dir="rtl"> abc def h|ij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-19 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hi|j opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij| opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-20 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij| opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-21 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-22 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-23 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-24 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij |opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def | hij opq </div>', '14-25 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij o|pq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-26 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij op|q </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-27 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij opq| </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-28 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-29 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-30 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-31 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij opq |</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij opq </div>', + '<div contenteditable dir="rtl"> abc def hij | opq </div>', '14-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_15.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_15.html index e01af0aa..8d2caf46 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_15.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_15.html
@@ -162,4 +162,3 @@ '<div contenteditable dir="rtl"> abc אבצ | def </div>', '15-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_16.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_16.html index 9f4d0d8..378c0b7d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_16.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_16.html
@@ -39,13 +39,13 @@ selection_test( '<div contenteditable dir="rtl"> a|bc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> |abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-5 right word'); selection_test( '<div contenteditable dir="rtl"> ab|c def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> |abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-6 right word'); selection_test( @@ -81,43 +81,43 @@ selection_test( '<div contenteditable dir="rtl"> abc d|ef אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-12 right word'); selection_test( '<div contenteditable dir="rtl"> abc de|f אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-13 right word'); selection_test( '<div contenteditable dir="rtl"> abc def| אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-14 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-15 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-16 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-17 right word'); selection_test( '<div contenteditable dir="rtl"> abc def |אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl"> abc | def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '16-18 right word'); selection_test( @@ -207,13 +207,13 @@ selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ h|ij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '16-33 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hi|j opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '16-34 right word'); selection_test( @@ -249,43 +249,42 @@ selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij o|pq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ | hij opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-40 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij op|q </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ | hij opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-41 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq| </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-42 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-43 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-44 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-45 right word'); selection_test( '<div contenteditable dir="rtl"> abc def אבצ דדפ hij opq |</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '16-46 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_17.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_17.html index a9a6c1f..c4e4bdaa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_17.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_17.html
@@ -39,127 +39,127 @@ selection_test( '<div contenteditable dir="rtl"> a|bc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-5 right word'); selection_test( '<div contenteditable dir="rtl"> ab|c def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-6 right word'); selection_test( '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-7 right word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-8 right word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-9 right word'); selection_test( '<div contenteditable dir="rtl"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-10 right word'); selection_test( '<div contenteditable dir="rtl"> abc |def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-11 right word'); selection_test( '<div contenteditable dir="rtl"> abc d|ef hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-12 right word'); selection_test( '<div contenteditable dir="rtl"> abc de|f hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-13 right word'); selection_test( '<div contenteditable dir="rtl"> abc def| hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-14 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-15 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-16 right word'); selection_test( '<div contenteditable dir="rtl"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-17 right word'); selection_test( '<div contenteditable dir="rtl"> abc def |hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc | def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-18 right word'); selection_test( '<div contenteditable dir="rtl"> abc def h|ij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-19 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hi|j אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-20 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij| אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-21 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-22 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-23 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-24 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij |אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '17-25 right word'); selection_test( @@ -291,127 +291,126 @@ selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח o|pq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-47 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח op|q rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-48 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-49 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-50 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-51 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-52 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq |rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '17-53 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq r|st uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-54 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rs|t uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-55 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst| uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-56 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-57 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-58 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-59 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst |uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '17-60 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst u|vw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-61 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uv|w </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-62 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw| </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-63 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-64 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-65 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-66 right word'); selection_test( '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq rst uvw |</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '17-67 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_18.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_18.html index 6abe5fc..72a5718b 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_18.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_18.html
@@ -204,4 +204,3 @@ '<div contenteditable dir="rtl"> אבצ דעפ חיח | ופק </div>', '18-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_19.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_19.html index 13a0702..dbb34643 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_19.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_19.html
@@ -168,4 +168,3 @@ '<div contenteditable dir="rtl"> אבצ abc | דעפ </div>', '19-26 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_2.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_2.html index f91fc68..307c950 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_2.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr"> abc| def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc | def hij opq </div>', + '<div contenteditable dir="ltr"> abc def | hij opq </div>', '2-7 right word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="ltr"> abc def| hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def | hij opq </div>', + '<div contenteditable dir="ltr"> abc def hij | opq </div>', '2-14 right word'); selection_test( @@ -135,7 +135,7 @@ selection_test( '<div contenteditable dir="ltr"> abc def hij| opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij | opq </div>', + '<div contenteditable dir="ltr"> abc def hij opq| </div>', '2-21 right word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="ltr"> abc def hij opq| </div>', '2-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_20.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_20.html index 865fc5b..da370d6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_20.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_20.html
@@ -123,13 +123,13 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ a|bc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-19 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ ab|c def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-20 right word'); selection_test( @@ -159,37 +159,37 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc d|ef חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ | abc def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-25 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc de|f חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ | abc def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-26 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc def| חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-27 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-28 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-29 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ abc def |חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '20-30 right word'); selection_test( @@ -276,4 +276,3 @@ '<div contenteditable dir="rtl"> אבצ דעפ abc def חיח | ופק </div>', '20-44 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_21.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_21.html index 2c2d01f..74df90c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_21.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_21.html
@@ -165,109 +165,109 @@ selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח a|bc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-26 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח ab|c def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-27 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-28 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-29 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-30 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-31 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc d|ef jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-32 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc de|f jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-33 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-34 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-35 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-36 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-37 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def j|ih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-38 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def ji|h ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-39 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih| ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-40 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-41 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-42 right word'); selection_test( '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '21-43 right word'); selection_test( @@ -390,4 +390,3 @@ '<div contenteditable dir="rtl"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', '21-63 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_22.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_22.html index 8bc8cd2..9c9cf85 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_22.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_22.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc| def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc |def hij opq</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij opq</div>', '22-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def| hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij opq</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |opq</div>', '22-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij opq</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |opq</div>', '22-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij opq</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |opq</div>', '22-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij opq</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |opq</div>', '22-10 right word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij| opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |opq</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij opq|</div>', '22-14 right word'); selection_test( @@ -120,4 +120,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">abc def hij opq|</div>', '22-18 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_23.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_23.html index 30732c9f..ed9cbc9 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_23.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_23.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| abc def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', '23-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', '23-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', '23-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', '23-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc| def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', '23-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', '23-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', '23-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', '23-10 right word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def| hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', '23-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', '23-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', '23-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', '23-17 right word'); selection_test( @@ -135,25 +135,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij| opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij opq |</div>', '23-21 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij opq |</div>', '23-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij opq |</div>', '23-23 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij opq |</div>', '23-24 right word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij opq |</div>', '23-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_24.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_24.html index 33ea128..060d5ba 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_24.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_24.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| abc אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '24-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '24-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '24-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |\u05D0\u05D1\u05E6 def </div>', '24-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc| אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '24-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '24-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '24-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |אבצ def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 |def </div>', '24-10 right word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ| def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '24-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ | def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '24-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ | def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '24-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ | def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ |def </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc \u05D0\u05D1\u05E6 def |</div>', '24-17 right word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc אבצ def |</div>', '24-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_25.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_25.html index 2a53f7b0..1aa6384 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_25.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_25.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |\u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '25-10 right word'); selection_test( @@ -93,43 +93,43 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def| אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-17 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-18 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def א|בצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-19 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אב|צ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 |\u05D3\u05D3\u05E4 hij opq </div>', '25-20 right word'); selection_test( @@ -141,61 +141,61 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '25-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '25-23 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '25-24 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ |דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '25-25 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ ד|דפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '25-26 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דד|פ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '25-27 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ| hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '25-28 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '25-29 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '25-30 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '25-31 right word'); selection_test( @@ -219,25 +219,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '25-35 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '25-36 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '25-37 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij |opq </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq |</div>', '25-38 right word'); selection_test( @@ -288,4 +288,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc def אבצ דדפ hij opq |</div>', '25-46 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_26.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_26.html index 90803646..c16be77 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_26.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_26.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | abc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc |def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-10 right word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def |hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-17 right word'); selection_test( @@ -135,151 +135,151 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij| אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-21 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-23 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-24 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-25 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij א|בצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-26 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אב|צ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '26-27 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-28 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-29 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-30 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-31 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ |דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-32 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ ד|עפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-33 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דע|פ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw </div>', '26-34 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-35 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-36 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-37 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-38 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ |היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-39 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ ה|יח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-40 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ הי|ח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '26-41 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח| opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '26-42 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '26-43 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '26-44 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח | opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '26-45 right word'); selection_test( @@ -303,25 +303,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq |rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '26-49 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq |rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '26-50 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq |rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '26-51 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq |rst uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '26-52 right word'); selection_test( @@ -345,25 +345,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '26-56 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '26-57 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '26-58 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw |</div>', '26-59 right word'); selection_test( @@ -414,4 +414,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw |</div>', '26-67 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_27.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_27.html index b2063227..684a261 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_27.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_27.html
@@ -9,169 +9,169 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-3 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-4 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> א|בצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-5 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אב|צ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-6 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-10 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-11 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ ד|עפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דע|פ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '27-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-17 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-18 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ ח|יח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-19 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חי|ח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '27-20 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-21 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-23 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-24 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-25 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ו|פק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-26 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופ|ק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '27-27 right word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח ופק |</div>', '27-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_28.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_28.html index dc617bc..e0427a0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_28.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_28.html
@@ -9,25 +9,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| אבצ abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '28-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '28-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '28-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |abc \u05D3\u05E2\u05E4 </div>', '28-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '28-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '28-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '28-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |abc דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc |\u05D3\u05E2\u05E4 </div>', '28-10 right word'); selection_test( @@ -93,25 +93,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc| דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '28-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc | דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '28-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc | דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '28-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc | דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc |דעפ </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4 |</div>', '28-17 right word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> אבצ abc דעפ |</div>', '28-26 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_29.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_29.html index 3f8cd79..28ecd3a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_29.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_29.html
@@ -9,43 +9,43 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-3 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-4 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> א|בצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-5 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אב|צ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-6 right word'); selection_test( @@ -57,61 +57,61 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-10 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-11 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ ד|עפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דע|פ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-17 right word'); selection_test( @@ -135,19 +135,19 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc |def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-21 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc | def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc |def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc | def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc |def חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def |\u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '29-23 right word'); selection_test( @@ -171,37 +171,37 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def| חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-27 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-28 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-29 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-30 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def ח|יח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-31 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חי|ח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 |\u05D5\u05E4\u05E7 </div>', '29-32 right word'); selection_test( @@ -213,37 +213,37 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '29-34 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '29-35 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '29-36 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח |ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '29-37 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ו|פק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '29-38 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופ|ק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 |</div>', '29-39 right word'); selection_test( @@ -276,4 +276,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ abc def חיח ופק |</div>', '29-44 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_3.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_3.html index 5e39a81..a06c836 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_3.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_3.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr"> abc| אבצ def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc | אבצ def </div>', + '<div contenteditable dir="ltr"> abc \u05D0\u05D1\u05E6 | def </div>', '3-7 right word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="ltr"> abc אבצ| def </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc אבצ | def </div>', + '<div contenteditable dir="ltr"> abc \u05D0\u05D1\u05E6 def| </div>', '3-14 right word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="ltr"> abc אבצ def| </div>', '3-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_30.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_30.html index ceabe2a..c6630a6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_30.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_30.html
@@ -9,151 +9,151 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">| אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-3 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-4 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> א|בצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-5 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אב|צ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-6 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-10 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-11 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ ד|עפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דע|פ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-17 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-18 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ ח|יח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-19 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חי|ח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-20 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח| abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-21 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-23 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-24 right word'); selection_test( @@ -177,19 +177,19 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-28 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-29 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-30 right word'); selection_test( @@ -213,19 +213,19 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-34 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-35 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih |\u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-36 right word'); selection_test( @@ -249,109 +249,109 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih| ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-40 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-41 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-42 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-43 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ו|פק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-44 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופ|ק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 |\u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '30-45 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-46 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק | ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-47 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק |ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-48 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ו|פק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-49 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופ|ק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 |\u05E8\u05E1\u05EA </div>', '30-50 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-51 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-52 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-53 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-54 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-55 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק ר|סת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-56 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רס|ת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA |</div>', '30-57 right word'); selection_test( @@ -390,4 +390,3 @@ '<div contenteditable dir="ltr" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק רסת |</div>', '30-63 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_31.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_31.html index 1bb347e..8dae7f6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_31.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_31.html
@@ -9,109 +9,109 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">א|בצ דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופק|</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אב|צ דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופק|</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופק|</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-3 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ |דעפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-4 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ ד|עפ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-5 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דע|פ היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</div>', '31-6 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ | היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-10 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ |היח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-11 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ ה|יח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ הי|ח ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</div>', '31-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '31-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |ופק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '31-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ו|פק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '31-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופ|ק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| ופק</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7|</div>', '31-17 right word'); selection_test( @@ -120,4 +120,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח ופק|</div>', '31-18 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_32.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_32.html index ce27e3a..e0a14b3 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_32.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_32.html
@@ -9,91 +9,91 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">|אבצ דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-0 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">א|בצ דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-1 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אב|צ דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij</div>', '32-2 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-3 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ |דעפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-4 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ ד|עפ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-5 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דע|פ היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 abc def hij</div>', '32-6 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ| דעפ היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |abc def hij</div>', '32-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ |היח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |abc def hij</div>', '32-8 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ ה|יח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |abc def hij</div>', '32-9 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ הי|ח abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ| היח abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |abc def hij</div>', '32-10 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח| abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc |def hij</div>', '32-11 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc |def hij</div>', '32-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc |def hij</div>', '32-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח | abc def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח |abc def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc |def hij</div>', '32-14 right word'); selection_test( @@ -117,7 +117,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח abc| def hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח abc |def hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def |hij</div>', '32-18 right word'); selection_test( @@ -141,7 +141,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח abc def| hij</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח abc def |hij</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 abc def hij|</div>', '32-22 right word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">אבצ דעפ היח abc def hij|</div>', '32-26 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_33.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_33.html index b268c58..6af8e82 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_33.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_33.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc| def hij אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc |def hij אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def| hij אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def |hij אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |\u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-7 right word'); selection_test( @@ -75,115 +75,115 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij| אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-11 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij | אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij | אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij | אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij |אבצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij א|בצ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-16 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אב|צ דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 |\u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw</div>', '33-17 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-18 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ |דעפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-19 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ ד|עפ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-20 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דע|פ היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |\u05D4\u05D9\u05D7 opq rst uvw</div>', '33-21 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ| דעפ היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw</div>', '33-22 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ |היח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw</div>', '33-23 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ ה|יח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw</div>', '33-24 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ הי|ח opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ| היח opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw</div>', '33-25 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח| opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw</div>', '33-26 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw</div>', '33-27 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw</div>', '33-28 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח | opq rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח |opq rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw</div>', '33-29 right word'); selection_test( @@ -207,7 +207,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח opq| rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח opq |rst uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw</div>', '33-33 right word'); selection_test( @@ -231,7 +231,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח opq rst| uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח opq rst |uvw</div>', + '<div contenteditable dir="ltr" style="white-space:pre">abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw|</div>', '33-37 right word'); selection_test( @@ -258,4 +258,3 @@ '<div contenteditable dir="ltr" style="white-space:pre">abc def hij אבצ דעפ היח opq rst uvw|</div>', '33-41 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_34.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_34.html index be64714..7da98e6 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_34.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_34.html
@@ -15,109 +15,108 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre">a|bc def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', '34-1 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">ab|c def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', '34-2 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', '34-3 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', '34-4 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc d|ef hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-5 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc de|f hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-6 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def| hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-7 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-8 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-9 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def | hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-10 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc |def hij opq</div>', '34-11 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def h|ij opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-12 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hi|j opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-13 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij| opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-14 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def |hij opq</div>', '34-15 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij o|pq</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-16 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij op|q</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">|abc def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-17 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre">abc def hij opq|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre">abc| def hij opq</div>', + '<div contenteditable dir="rtl" style="white-space:pre">abc def hij |opq</div>', '34-18 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_35.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_35.html index bcae6702..b0636d2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_35.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_35.html
@@ -39,169 +39,168 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> a|bc def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-5 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> ab|c def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-6 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-7 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-8 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-9 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-10 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', '35-11 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc d|ef hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-12 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc de|f hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-13 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-14 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-15 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-16 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-17 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij opq </div>', '35-18 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def h|ij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-19 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hi|j opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-20 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-21 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-22 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-23 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-24 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij opq </div>', '35-25 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij o|pq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-26 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij op|q </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-27 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq| </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-28 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-29 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-30 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-31 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij opq |</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |opq </div>', '35-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_36.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_36.html index d4c06145..125a0e75 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_36.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_36.html
@@ -162,4 +162,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> abc אבצ |def </div>', '36-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_37.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_37.html index 7ebf298..cd9357c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_37.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_37.html
@@ -39,13 +39,13 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> a|bc def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-5 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> ab|c def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-6 right word'); selection_test( @@ -81,43 +81,43 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc d|ef אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-12 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc de|f אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-13 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def| אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-14 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-15 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-16 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-17 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def |אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def אבצ דדפ hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '37-18 right word'); selection_test( @@ -207,13 +207,13 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ h|ij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '37-33 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hi|j opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 |hij opq </div>', '37-34 right word'); selection_test( @@ -249,43 +249,42 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij o|pq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-40 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij op|q </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ |hij opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-41 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq| </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-42 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-43 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-44 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-45 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij opq |</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def אבצ דדפ hij| opq </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij |opq </div>', '37-46 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_38.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_38.html index 56400f8b..3661c1ce 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_38.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_38.html
@@ -39,127 +39,127 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> a|bc def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-5 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> ab|c def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-6 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-7 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-8 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-9 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc | def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-10 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-11 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc d|ef hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-12 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc de|f hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-13 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def| hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-14 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-15 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-16 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def | hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-17 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc |def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-18 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def h|ij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-19 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hi|j אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> |abc def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-20 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij| אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-21 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-22 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-23 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-24 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij |אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc| def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def |hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '38-25 right word'); selection_test( @@ -291,127 +291,126 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח o|pq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-47 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח op|q rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-48 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-49 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-50 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-51 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq | rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-52 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq |rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 |opq rst uvw </div>', '38-53 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq r|st uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-54 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rs|t uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-55 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst| uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-56 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-57 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-58 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst | uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-59 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst |uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq |rst uvw </div>', '38-60 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst u|vw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-61 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uv|w </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח |opq rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-62 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw| </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-63 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-64 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-65 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw | </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-66 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq rst uvw |</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij אבצ דעפ היח opq| rst uvw </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst |uvw </div>', '38-67 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_39.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_39.html index 5d375f2..8c80da9 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_39.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_39.html
@@ -204,4 +204,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |ופק </div>', '39-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_4.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_4.html index e6a543a6..86a6d7f 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_4.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_4.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr"> abc| def אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc | def אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def | \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq </div>', '4-7 right word'); selection_test( @@ -93,43 +93,43 @@ selection_test( '<div contenteditable dir="ltr"> abc def| אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def | אבצ דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-14 right word'); selection_test( '<div contenteditable dir="ltr"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-15 right word'); selection_test( '<div contenteditable dir="ltr"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-16 right word'); selection_test( '<div contenteditable dir="ltr"> abc def | אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-17 right word'); selection_test( '<div contenteditable dir="ltr"> abc def |אבצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-18 right word'); selection_test( '<div contenteditable dir="ltr"> abc def א|בצ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ דדפ | hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-19 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אב|צ דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ דדפ | hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 | \u05D3\u05D3\u05E4 hij opq </div>', '4-20 right word'); selection_test( @@ -141,43 +141,43 @@ selection_test( '<div contenteditable dir="ltr"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '4-22 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '4-23 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ | דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '4-24 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ |דדפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '4-25 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ ד|דפ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '4-26 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דד|פ hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ| דדפ hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 | hij opq </div>', '4-27 right word'); selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ| hij opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ דדפ | hij opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij | opq </div>', '4-28 right word'); selection_test( @@ -219,7 +219,7 @@ selection_test( '<div contenteditable dir="ltr"> abc def אבצ דדפ hij| opq </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def אבצ דדפ hij | opq </div>', + '<div contenteditable dir="ltr"> abc def \u05D0\u05D1\u05E6 \u05D3\u05D3\u05E4 hij opq| </div>', '4-35 right word'); selection_test( @@ -288,4 +288,3 @@ '<div contenteditable dir="ltr"> abc def אבצ דדפ hij opq| </div>', '4-46 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_40.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_40.html index 4169f00..2fd628e0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_40.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_40.html
@@ -168,4 +168,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ abc |דעפ </div>', '40-26 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_41.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_41.html index ad0e1ae..2a0d8dc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_41.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_41.html
@@ -123,13 +123,13 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ a|bc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-19 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ ab|c def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 |abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-20 right word'); selection_test( @@ -159,37 +159,37 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc d|ef חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-25 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc de|f חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ |abc def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-26 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def| חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-27 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-28 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-29 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def |חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc| def חיח ופק </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc |def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '41-30 right word'); selection_test( @@ -276,4 +276,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ abc def חיח |ופק </div>', '41-44 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_42.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_42.html index 2c62a26..10d98d7 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_42.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_42.html
@@ -165,109 +165,109 @@ selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח a|bc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-26 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח ab|c def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-27 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-28 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-29 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-30 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc |def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 |abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-31 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc d|ef jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-32 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc de|f jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-33 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-34 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-35 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-36 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def |jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc |def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-37 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def j|ih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-38 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def ji|h ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח |abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-39 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih| ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-40 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-41 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-42 right word'); selection_test( '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', + '<div contenteditable dir="rtl" style="white-space:pre"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def |jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '42-43 right word'); selection_test( @@ -390,4 +390,3 @@ '<div contenteditable dir="rtl" style="white-space:pre"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', '42-63 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_43.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_43.html index d5b6b93..7292d97 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_43.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_43.html
@@ -39,25 +39,25 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大| 笑抬的 abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 |笑抬的 abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11|\u62AC\u7684 abc def</div>', '43-5 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 | 笑抬的 abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 |笑抬的 abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11|\u62AC\u7684 abc def</div>', '43-6 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 | 笑抬的 abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 |笑抬的 abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11|\u62AC\u7684 abc def</div>', '43-7 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 | 笑抬的 abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 |笑抬的 abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11|\u62AC\u7684 abc def</div>', '43-8 right word'); selection_test( @@ -81,31 +81,31 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的| abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 |abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11\u62AC\u7684 abc |def</div>', '43-12 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 | abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 |abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11\u62AC\u7684 abc |def</div>', '43-13 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 | abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 |abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11\u62AC\u7684 abc |def</div>', '43-14 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 | abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 |abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11\u62AC\u7684 abc |def</div>', '43-15 right word'); selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 | abc def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 |abc def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11\u62AC\u7684 abc |def</div>', '43-16 right word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 abc| def</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr" style="white-space:pre">人一氧喝大 笑抬的 abc |def</div>', + '<div contenteditable dir="ltr" style="white-space:pre">\u4EBA\u4E00\u6C27\u559D\u5927 \u7B11\u62AC\u7684 abc def|</div>', '43-20 right word'); selection_test(
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_5.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_5.html index a09933ca..79cb0f9a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_5.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_5.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr"> abc| def hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc | def hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def | hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-7 right word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="ltr"> abc def| hij אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def | hij אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij | \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-14 right word'); selection_test( @@ -135,133 +135,133 @@ selection_test( '<div contenteditable dir="ltr"> abc def hij| אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-21 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-22 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-23 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij | אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-24 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij |אבצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-25 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij א|בצ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-26 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אב|צ דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-27 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-28 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-29 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-30 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ | דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-31 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ |דעפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-32 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ ד|עפ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-33 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דע|פ היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D4\u05D9\u05D7 opq rst uvw </div>', '5-34 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ| דעפ היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-35 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-36 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-37 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ | היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-38 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ |היח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-39 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ ה|יח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-40 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ הי|ח opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ| היח opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 | opq rst uvw </div>', '5-41 right word'); selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח| opq rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח | opq rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq | rst uvw </div>', '5-42 right word'); selection_test( @@ -303,7 +303,7 @@ selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח opq| rst uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח opq | rst uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst | uvw </div>', '5-49 right word'); selection_test( @@ -345,7 +345,7 @@ selection_test( '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח opq rst| uvw </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח opq rst | uvw </div>', + '<div contenteditable dir="ltr"> abc def hij \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D4\u05D9\u05D7 opq rst uvw| </div>', '5-56 right word'); selection_test( @@ -414,4 +414,3 @@ '<div contenteditable dir="ltr"> abc def hij אבצ דעפ היח opq rst uvw| </div>', '5-67 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_6.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_6.html index 92cd30f..0785ec44 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_6.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_6.html
@@ -9,169 +9,169 @@ selection_test( '<div contenteditable dir="ltr">| אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-0 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-1 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-2 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-3 right word'); selection_test( '<div contenteditable dir="ltr"> |אבצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-4 right word'); selection_test( '<div contenteditable dir="ltr"> א|בצ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-5 right word'); selection_test( '<div contenteditable dir="ltr"> אב|צ דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-6 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-7 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-8 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-9 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-10 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ |דעפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-11 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ ד|עפ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-12 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דע|פ חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '6-13 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-14 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-15 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-16 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-17 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ |חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-18 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ ח|יח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-19 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חי|ח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '6-20 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-21 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-22 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-23 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-24 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח |ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-25 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ו|פק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-26 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח ופ|ק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '6-27 right word'); selection_test( @@ -204,4 +204,3 @@ '<div contenteditable dir="ltr"> אבצ דעפ חיח ופק| </div>', '6-32 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_7.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_7.html index 9da1cdd..39ad9edc 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_7.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_7.html
@@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr"> אבצ| abc דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ | abc דעפ </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 abc | \u05D3\u05E2\u05E4 </div>', '7-7 right word'); selection_test( @@ -93,7 +93,7 @@ selection_test( '<div contenteditable dir="ltr"> אבצ abc| דעפ </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ abc | דעפ </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 abc \u05D3\u05E2\u05E4| </div>', '7-14 right word'); selection_test( @@ -168,4 +168,3 @@ '<div contenteditable dir="ltr"> אבצ abc דעפ| </div>', '7-26 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_8.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_8.html index 6f1d893..878f9d5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_8.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_8.html
@@ -9,43 +9,43 @@ selection_test( '<div contenteditable dir="ltr">| אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-0 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-1 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-2 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-3 right word'); selection_test( '<div contenteditable dir="ltr"> |אבצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-4 right word'); selection_test( '<div contenteditable dir="ltr"> א|בצ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ | abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-5 right word'); selection_test( '<div contenteditable dir="ltr"> אב|צ דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ | abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-6 right word'); selection_test( @@ -57,43 +57,43 @@ selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-8 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-9 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-10 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ |דעפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-11 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ ד|עפ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-12 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דע|פ abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-13 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ| abc def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ | abc def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc | def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-14 right word'); selection_test( @@ -135,7 +135,7 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc| def חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc | def חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def | \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7 </div>', '8-21 right word'); selection_test( @@ -171,37 +171,37 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def| חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def | חיח ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-27 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-28 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def | חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-29 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def |חיח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-30 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def ח|יח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-31 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חי|ח ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 | \u05D5\u05E4\u05E7 </div>', '8-32 right word'); selection_test( @@ -213,37 +213,37 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '8-34 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '8-35 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח | ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '8-36 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח |ופק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '8-37 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ו|פק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '8-38 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופ|ק </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח| ופק </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 abc def \u05D7\u05D9\u05D7 \u05D5\u05E4\u05E7| </div>', '8-39 right word'); selection_test( @@ -276,4 +276,3 @@ '<div contenteditable dir="ltr"> אבצ דעפ abc def חיח ופק| </div>', '8-44 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_9.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_9.html index 6acd28f..e08bad2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_9.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_multi_space_9.html
@@ -9,133 +9,133 @@ selection_test( '<div contenteditable dir="ltr">| אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-0 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-1 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-2 right word'); selection_test( '<div contenteditable dir="ltr"> | אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-3 right word'); selection_test( '<div contenteditable dir="ltr"> |אבצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-4 right word'); selection_test( '<div contenteditable dir="ltr"> א|בצ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-5 right word'); selection_test( '<div contenteditable dir="ltr"> אב|צ דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 | \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-6 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-7 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-8 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-9 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ | דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-10 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ |דעפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-11 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ ד|עפ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-12 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דע|פ חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 | \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-13 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ| דעפ חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-14 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-15 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-16 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ | חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-17 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ |חיח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-18 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ ח|יח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-19 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חי|ח abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ| חיח abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 | abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-20 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח| abc def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח | abc def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc | def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-21 right word'); selection_test( @@ -177,7 +177,7 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc| def jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc | def jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def | jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-28 right word'); selection_test( @@ -213,7 +213,7 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def| jih ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def | jih ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih | \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-34 right word'); selection_test( @@ -249,109 +249,109 @@ selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih| ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-40 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-41 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih | ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-42 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih |ופק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-43 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ו|פק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-44 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופ|ק ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 | \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA </div>', '9-45 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-46 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק | ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-47 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק |ופק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-48 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ו|פק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-49 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופ|ק רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 | \u05E8\u05E1\u05EA </div>', '9-50 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק| ופק רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-51 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-52 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-53 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק | רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-54 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק |רסת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-55 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק ר|סת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-56 right word'); selection_test( '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רס|ת </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק| רסת </div>', + '<div contenteditable dir="ltr"> \u05D0\u05D1\u05E6 \u05D3\u05E2\u05E4 \u05D7\u05D9\u05D7 abc def jih \u05D5\u05E4\u05E7 \u05D5\u05E4\u05E7 \u05E8\u05E1\u05EA| </div>', '9-57 right word'); selection_test( @@ -390,4 +390,3 @@ '<div contenteditable dir="ltr"> אבצ דעפ חיח abc def jih ופק ופק רסת| </div>', '9-63 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_1.html index e4a0dfc..101bd6aa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_1.html
@@ -9,19 +9,19 @@ selection_test( '<div contenteditable dir="ltr">|אאא <span>בב</span></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |<span>\u05D1\u05D1</span></div>', '1-0 right word'); selection_test( '<div contenteditable dir="ltr">א|אא <span>בב</span></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא <span>בב|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |<span>\u05D1\u05D1</span></div>', '1-1 right word'); selection_test( '<div contenteditable dir="ltr">אא|א <span>בב</span></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא <span>בב|</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |<span>\u05D1\u05D1</span></div>', '1-2 right word'); selection_test( @@ -33,19 +33,19 @@ selection_test( '<div contenteditable dir="ltr">אאא |<span>בב</span></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 <span>\u05D1\u05D1|</span></div>', '1-4 right word'); selection_test( '<div contenteditable dir="ltr">אאא <span>|בב</span></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 <span>\u05D1\u05D1|</span></div>', '1-5 right word'); selection_test( '<div contenteditable dir="ltr">אאא <span>ב|ב</span></div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| <span>בב</span></div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 <span>\u05D1\u05D1|</span></div>', '1-6 right word'); selection_test( @@ -54,4 +54,3 @@ '<div contenteditable dir="ltr">אאא <span>בב|</span></div>', '1-7 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_10.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_10.html index ecdb28b..5b9bcf5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_10.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_10.html
@@ -9,145 +9,145 @@ selection_test( '<div contenteditable dir="ltr">|אבד דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-0 right word'); selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-1 right word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-2 right word'); selection_test( '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-3 right word'); selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-4 right word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-5 right word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-6 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-7 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ |<span>היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-8 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>|היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-9 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>ה|יח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-10 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>הי|ח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '10-11 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span>היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-12 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח |ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-13 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ו|פק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-14 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופ|ק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-15 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק|</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-16 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>|ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-17 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ו|וש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-18 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>וו|ש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '10-19 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '10-20 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש |כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '10-21 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כ|טז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '10-22 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כט|ז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '10-23 right word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="ltr">אבד דעפ <span>היח ופק</span>ווש כטז|</div>', '10-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_11.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_11.html index 61670b62..aa5eef2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_11.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_11.html
@@ -69,13 +69,13 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">a|bc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-10 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">ab|c def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="ltr">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-11 right word'); selection_test( @@ -93,49 +93,49 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc d|ef</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span dir="ltr">abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-14 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc de|f</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span dir="ltr">abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-15 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def|</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-16 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>|ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-17 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ו|וש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-18 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>וו|ש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-19 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-20 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש |כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="ltr">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '11-21 right word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">abc def</span>ווש |כטז</div>', '11-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_12.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_12.html index c5467fd..bda68b0 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_12.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_12.html
@@ -9,49 +9,49 @@ selection_test( '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-0 right word'); selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-1 right word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-2 right word'); selection_test( '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-3 right word'); selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-4 right word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-5 right word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-6 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '12-7 right word'); selection_test( @@ -81,73 +81,73 @@ selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc| def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc |def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-12 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc |def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-13 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc d|ef</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-14 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc de|f</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-15 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def|</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-16 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>|ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-17 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ו|וש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ |<span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-18 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>וו|ש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ |<span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '12-19 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ |<span dir="rtl">abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '12-20 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש |כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '12-21 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כ|טז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '12-22 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כט|ז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '12-23 right word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">abc def</span>ווש כטז|</div>', '12-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_13.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_13.html index b24e4ef..62a7ea9 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_13.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_13.html
@@ -69,13 +69,13 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>a|bc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-10 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>ab|c def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-11 right word'); selection_test( @@ -93,49 +93,49 @@ selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc d|ef</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-14 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc de|f</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ |<span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-15 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def|</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-16 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>|ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-17 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ו|וש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-18 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>וו|ש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-19 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-20 right word'); selection_test( '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש |כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד דעפ <span>abc| def</span>ווש כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '13-21 right word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span>abc def</span>ווש |כטז</div>', '13-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_14.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_14.html index da30a00..6ca8abf 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_14.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_14.html
@@ -9,19 +9,19 @@ selection_test( '<div contenteditable dir="ltr">|אבד דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-0 right word'); selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ |<span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-1 right word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ |<span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-2 right word'); selection_test( @@ -33,25 +33,25 @@ selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-4 right word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-5 right word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-6 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span>abc def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ |<span>abc def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc |def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '14-7 right word'); selection_test( @@ -81,49 +81,49 @@ selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc| def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc |def</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-12 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc |def</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-13 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc d|ef</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-14 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc de|f</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-15 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def|</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-16 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>|ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-17 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ו|וש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-18 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>וו|ש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '14-19 right word'); selection_test( @@ -135,19 +135,19 @@ selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש |כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '14-21 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כ|טז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '14-22 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כט|ז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span>abc def</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '14-23 right word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="ltr">אבד דעפ <span>abc def</span>ווש כטז|</div>', '14-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_15.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_15.html index f8c1178..5dd1960 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_15.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_15.html
@@ -93,19 +93,19 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">a|bc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-14 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">ab|c אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-15 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc |אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="ltr">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-16 right word'); selection_test( @@ -135,55 +135,55 @@ selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא |def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ |<span dir="ltr">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-21 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא d|ef</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ |<span dir="ltr">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-22 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא de|f</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ |<span dir="ltr">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-23 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def|</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-24 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>|ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-25 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ו|וש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-26 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>וו|ש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-27 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש| rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-28 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש |rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc| אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="ltr">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '15-29 right word'); selection_test( @@ -228,4 +228,3 @@ '<div contenteditable dir="rtl">אבד opq דעפ <span dir="ltr">abc אאא def</span>ווש rst |כטז</div>', '15-36 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_16.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_16.html index 512648a5..9ed26ab5 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_16.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_16.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">אבד| opq דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד |opq דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-3 right word'); selection_test( @@ -51,133 +51,133 @@ selection_test( '<div contenteditable dir="ltr">אבד opq| דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq |דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-7 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq |דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא |def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-8 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq ד|עפ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-9 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דע|פ <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-10 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-11 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-12 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">|abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-13 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">a|bc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-14 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">ab|c אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-15 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc| אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ| <span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-16 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc |אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-17 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc א|אא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-18 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אא|א def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '16-19 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ |<span dir="rtl">abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-20 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא |def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-21 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא d|ef</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-22 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא de|f</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-23 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def|</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-24 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>|ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא| def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-25 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ו|וש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא |def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-26 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>וו|ש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא |def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '16-27 right word'); selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש| rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst |\u05DB\u05D8\u05D6</div>', '16-28 right word'); selection_test( @@ -201,7 +201,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש rst| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש rst |כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span dir="rtl">abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6|</div>', '16-32 right word'); selection_test( @@ -228,4 +228,3 @@ '<div contenteditable dir="ltr">אבד opq דעפ <span dir="rtl">abc אאא def</span>ווש rst כטז|</div>', '16-36 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_17.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_17.html index 30d8bf1..44e5ed13 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_17.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_17.html
@@ -228,4 +228,3 @@ '<div contenteditable dir="rtl">אבד opq דעפ <span>abc אאא def</span>ווש rst |כטז</div>', '17-36 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_18.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_18.html index e726ee1..909510a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_18.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_18.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">אבד| opq דעפ <span>abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד |opq דעפ <span>abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq |\u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '18-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq| דעפ <span>abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq |דעפ <span>abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 |<span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '18-7 right word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ| <span>abc אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ |<span>abc אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc |\u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '18-11 right word'); selection_test( @@ -105,7 +105,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span>abc| אאא def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span>abc |אאא def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 |def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6</div>', '18-16 right word'); selection_test( @@ -129,7 +129,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא| def</span>ווש rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא |def</span>ווש rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 |rst \u05DB\u05D8\u05D6</div>', '18-20 right word'); selection_test( @@ -177,7 +177,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא def</span>ווש| rst כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא def</span>ווש |rst כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst |\u05DB\u05D8\u05D6</div>', '18-28 right word'); selection_test( @@ -201,7 +201,7 @@ selection_test( '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא def</span>ווש rst| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא def</span>ווש rst |כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 opq \u05D3\u05E2\u05E4 <span>abc \u05D0\u05D0\u05D0 def</span>\u05D5\u05D5\u05E9 rst \u05DB\u05D8\u05D6|</div>', '18-32 right word'); selection_test( @@ -228,4 +228,3 @@ '<div contenteditable dir="ltr">אבד opq דעפ <span>abc אאא def</span>ווש rst כטז|</div>', '18-36 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_19.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_19.html index 836b4db..7d5b419 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_19.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_19.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">aaa| <span>bbb אאא </span>ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa |<span>bbb אאא </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb |\u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9</div>', '19-3 right word'); selection_test( @@ -57,25 +57,25 @@ selection_test( '<div contenteditable dir="ltr">aaa <span>bbb| אאא </span>ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb |אאא </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-8 right word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb |אאא </span>ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-9 right word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb א|אא </span>ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>ווש|</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-10 right word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אא|א </span>ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>ווש|</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 |</span>\u05D5\u05D5\u05E9</div>', '19-11 right word'); selection_test( @@ -87,25 +87,25 @@ selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא |</span>ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9|</div>', '19-13 right word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>|ווש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9|</div>', '19-14 right word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>ו|וש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9|</div>', '19-15 right word'); selection_test( '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>וו|ש</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa <span>bbb אאא| </span>ווש</div>', + '<div contenteditable dir="ltr">aaa <span>bbb \u05D0\u05D0\u05D0 </span>\u05D5\u05D5\u05E9|</div>', '19-16 right word'); selection_test( @@ -114,4 +114,3 @@ '<div contenteditable dir="ltr">aaa <span>bbb אאא </span>ווש|</div>', '19-17 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_2.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_2.html index 47d3ef47..7605570a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_2.html
@@ -54,4 +54,3 @@ '<div contenteditable dir="rtl">אאא |<span>בב</span></div>', '2-7 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_20.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_20.html index 9bcee11..1ea73eb 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_20.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_20.html
@@ -39,13 +39,13 @@ selection_test( '<div contenteditable dir="rtl">אבד o|pq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 |opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-5 right word'); selection_test( '<div contenteditable dir="rtl">אבד op|q rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 |opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-6 right word'); selection_test( @@ -63,25 +63,25 @@ selection_test( '<div contenteditable dir="rtl">אבד opq r|st דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד |opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-9 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rs|t דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד |opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-10 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst| דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-11 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst |דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq| rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq |rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-12 right word'); selection_test( @@ -117,49 +117,49 @@ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">a|bc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 |<span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-18 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">ab|c uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 |<span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-19 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 |<span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-20 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc |uvw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 |<span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-21 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc u|vw אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-22 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uv|w אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-23 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw| אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-24 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw |אאא def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc |uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-25 right word'); selection_test( @@ -183,96 +183,92 @@ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא |def lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw |\u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-29 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא d|ef lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-30 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא de|f lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-31 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def| lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ |<span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-32 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def |lmn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ |<span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 |def lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-33 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def l|mn</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ |<span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-34 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lm|n</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ |<span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-35 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn|</span>אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-36 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>|אבצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-37 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>א|בצ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-38 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אב|צ hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-39 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ| hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-40 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc| uvw אאא def lmn</span>אבצ hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def |lmn</span>\u05D0\u05D1\u05E6 hij xyz \u05D5\u05E7\u05E7</div>', '20-41 right word'); -/* - * TODO(xiaochengh): These tests currently fail on Windows. - * Make them pass after changing left/right caret movements to logical. selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ h|ij xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 |hij xyz \u05D5\u05E7\u05E7</div>', '20-42 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hi|j xyz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 |hij xyz \u05D5\u05E7\u05E7</div>', '20-43 right word'); -*/ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', @@ -286,33 +282,29 @@ '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', '20-45 right word'); -/* - * TODO(xiaochengh): These tests currently fail on Windows. - * Make them pass after changing left/right caret movements to logical. selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij x|yz וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-46 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xy|z וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ |hij xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-47 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz| וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-48 right word'); selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz |וקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij| xyz וקק</div>', + '<div contenteditable dir="rtl">\u05D0\u05D1\u05D3 opq rst \u05D3\u05E2\u05E4 <span dir="ltr">abc uvw \u05D0\u05D0\u05D0 def lmn</span>\u05D0\u05D1\u05E6 hij |xyz \u05D5\u05E7\u05E7</div>', '20-49 right word'); -*/ selection_test( '<div contenteditable dir="rtl">אבד opq rst דעפ <span dir="ltr">abc uvw אאא def lmn</span>אבצ hij xyz ו|קק</div>',
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_3.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_3.html index a08cd70..905fa716 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_3.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_3.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="ltr">abc def |<span>hij opq</span> rst uvw</div>', '3-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |<span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span>hij |opq</span> rst uvw</div>', '3-7 right word'); selection_test( @@ -81,7 +81,7 @@ selection_test( '<div contenteditable dir="ltr">abc def <span>hij| opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span>hij |opq</span> rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span>hij opq</span> |rst uvw</div>', '3-12 right word'); selection_test( @@ -105,13 +105,13 @@ selection_test( '<div contenteditable dir="ltr">abc def <span>hij opq|</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span>hij opq</span> |rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst |uvw</div>', '3-16 right word'); selection_test( '<div contenteditable dir="ltr">abc def <span>hij opq</span>| rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span>hij opq</span> |rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst |uvw</div>', '3-17 right word'); selection_test( @@ -135,7 +135,7 @@ selection_test( '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst| uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst |uvw</div>', + '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst uvw|</div>', '3-21 right word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="ltr">abc def <span>hij opq</span> rst uvw|</div>', '3-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_4.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_4.html index ae35de7..b80dcf9d 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_4.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_4.html
@@ -15,151 +15,150 @@ selection_test( '<div contenteditable dir="rtl">a|bc def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', '4-1 right word'); selection_test( '<div contenteditable dir="rtl">ab|c def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', '4-2 right word'); selection_test( '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', '4-3 right word'); selection_test( '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', '4-4 right word'); selection_test( '<div contenteditable dir="rtl">abc d|ef <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-5 right word'); selection_test( '<div contenteditable dir="rtl">abc de|f <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-6 right word'); selection_test( '<div contenteditable dir="rtl">abc def| <span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-7 right word'); selection_test( '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-8 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>|hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span>hij opq</span> rst uvw</div>', '4-9 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>h|ij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-10 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hi|j opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-11 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij| opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-12 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span>hij opq</span> rst uvw</div>', '4-13 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij o|pq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-14 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij op|q</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-15 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq|</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-16 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span>| rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-17 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij |opq</span> rst uvw</div>', '4-18 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> r|st uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-19 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rs|t uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-20 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst| uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-21 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> |rst uvw</div>', '4-22 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst u|vw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-23 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uv|w</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-24 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst uvw|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def <span>hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span>hij opq</span> rst |uvw</div>', '4-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_5.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_5.html index 82668a380..138994ea 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_5.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_5.html
@@ -15,151 +15,150 @@ selection_test( '<div contenteditable dir="rtl">a|bc def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', '5-1 right word'); selection_test( '<div contenteditable dir="rtl">ab|c def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', '5-2 right word'); selection_test( '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', '5-3 right word'); selection_test( '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', '5-4 right word'); selection_test( '<div contenteditable dir="rtl">abc d|ef <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-5 right word'); selection_test( '<div contenteditable dir="rtl">abc de|f <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-6 right word'); selection_test( '<div contenteditable dir="rtl">abc def| <span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-7 right word'); selection_test( '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-8 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">|hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc |def <span dir="ltr">hij opq</span> rst uvw</div>', '5-9 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">h|ij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-10 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hi|j opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-11 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij| opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-12 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def |<span dir="ltr">hij opq</span> rst uvw</div>', '5-13 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij o|pq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-14 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij op|q</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-15 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq|</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-16 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span>| rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-17 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij |opq</span> rst uvw</div>', '5-18 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> r|st uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-19 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rs|t uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-20 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst| uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-21 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> |rst uvw</div>', '5-22 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst u|vw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-23 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uv|w</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-24 right word'); selection_test( '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst uvw|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def <span dir="ltr">hij opq</span> rst uvw</div>', + '<div contenteditable dir="rtl">abc def <span dir="ltr">hij opq</span> rst |uvw</div>', '5-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_6.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_6.html index f2b6296..a1aece4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_6.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_6.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def <span dir="rtl">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def <span dir="rtl">hij opq</span> rst uvw</div>', + '<div contenteditable dir="ltr">abc def |<span dir="rtl">hij opq</span> rst uvw</div>', '6-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| <span dir="rtl">hij opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |<span dir="rtl">hij opq</span> rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span dir="rtl">hij |opq</span> rst uvw</div>', '6-7 right word'); selection_test( @@ -81,7 +81,7 @@ selection_test( '<div contenteditable dir="ltr">abc def <span dir="rtl">hij| opq</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span dir="rtl">hij |opq</span> rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> |rst uvw</div>', '6-12 right word'); selection_test( @@ -105,13 +105,13 @@ selection_test( '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq|</span> rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> |rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst |uvw</div>', '6-16 right word'); selection_test( '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span>| rst uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> |rst uvw</div>', + '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst |uvw</div>', '6-17 right word'); selection_test( @@ -135,7 +135,7 @@ selection_test( '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst| uvw</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst |uvw</div>', + '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst uvw|</div>', '6-21 right word'); selection_test( @@ -162,4 +162,3 @@ '<div contenteditable dir="ltr">abc def <span dir="rtl">hij opq</span> rst uvw|</div>', '6-25 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_7.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_7.html index a08fdcd..b20f0bbe 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_7.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_7.html
@@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span dir="ltr">היח ופק</span>ווש |כטז</div>', '7-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_8.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_8.html index 840bcd6d..c6e8f95 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_8.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_8.html
@@ -9,145 +9,145 @@ selection_test( '<div contenteditable dir="ltr">|אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-0 right word'); selection_test( '<div contenteditable dir="ltr">א|בד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-1 right word'); selection_test( '<div contenteditable dir="ltr">אב|ד דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 |\u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-2 right word'); selection_test( '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-3 right word'); selection_test( '<div contenteditable dir="ltr">אבד |דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-4 right word'); selection_test( '<div contenteditable dir="ltr">אבד ד|עפ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-5 right word'); selection_test( '<div contenteditable dir="ltr">אבד דע|פ <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 |<span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-6 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד| דעפ <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-7 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ |<span dir="rtl">היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-8 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">|היח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-9 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">ה|יח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-10 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">הי|ח ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 |\u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6</div>', '8-11 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ| <span dir="rtl">היח ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-12 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח |ופק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-13 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ו|פק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-14 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופ|ק</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-15 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק|</span>ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-16 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>|ווש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-17 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ו|וש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-18 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>וו|ש כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 |\u05DB\u05D8\u05D6</div>', '8-19 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח| ופק</span>ווש כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '8-20 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש |כטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '8-21 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כ|טז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '8-22 right word'); selection_test( '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כט|ז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש| כטז</div>', + '<div contenteditable dir="ltr">\u05D0\u05D1\u05D3 \u05D3\u05E2\u05E4 <span dir="rtl">\u05D4\u05D9\u05D7 \u05D5\u05E4\u05E7</span>\u05D5\u05D5\u05E9 \u05DB\u05D8\u05D6|</div>', '8-23 right word'); selection_test( @@ -156,4 +156,3 @@ '<div contenteditable dir="ltr">אבד דעפ <span dir="rtl">היח ופק</span>ווש כטז|</div>', '8-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_9.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_9.html index 1872043b..052aaf4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_9.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_inline_element_9.html
@@ -156,4 +156,3 @@ '<div contenteditable dir="rtl">אבד דעפ <span>היח ופק</span>ווש |כטז</div>', '9-24 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_1.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_1.html index f1275f4..c1eee6a 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_1.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_1.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def hij opq rst</div>', + '<div contenteditable dir="ltr">abc def |hij opq rst</div>', '1-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |hij opq rst</div>', + '<div contenteditable dir="ltr">abc def hij |opq rst</div>', '1-7 right word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij| opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij |opq rst</div>', + '<div contenteditable dir="ltr">abc def hij opq |rst</div>', '1-11 right word'); selection_test( @@ -99,7 +99,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij opq| rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij opq |rst</div>', + '<div contenteditable dir="ltr">abc def hij opq rst|</div>', '1-15 right word'); selection_test( @@ -126,4 +126,3 @@ '<div contenteditable dir="ltr">abc def hij opq rst|</div>', '1-19 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_10.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_10.html index 27c6ef7..6927a38 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_10.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_10.html
@@ -78,4 +78,3 @@ '<div contenteditable dir="rtl">aaa אאא |bbb</div>', '10-11 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_11.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_11.html index fe8572c..b6f75aa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_11.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_11.html
@@ -9,73 +9,73 @@ selection_test( '<div contenteditable dir="ltr">|אאא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-0 right word'); selection_test( '<div contenteditable dir="ltr">א|אא בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-1 right word'); selection_test( '<div contenteditable dir="ltr">אא|א בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-2 right word'); selection_test( '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-3 right word'); selection_test( '<div contenteditable dir="ltr">אאא |בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-4 right word'); selection_test( '<div contenteditable dir="ltr">אאא ב|בב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-5 right word'); selection_test( '<div contenteditable dir="ltr">אאא בב|ב צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-6 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-7 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב |צצצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-8 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צ|צצ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-9 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצ|צ aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב| צצצ aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-10 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ| aaa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-11 right word'); selection_test( @@ -99,7 +99,7 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa |bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-15 right word'); selection_test( @@ -123,7 +123,7 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb |ccc דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc |\u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-19 right word'); selection_test( @@ -147,73 +147,73 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc| דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-23 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-24 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc ד|דד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפפ|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-25 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דד|ד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפפ|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 |\u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '11-26 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפפ|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-27 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד |עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-28 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד ע|עע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-29 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עע|ע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 |\u05E4\u05E4\u05E4</div>', '11-30 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד| עעע פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4|</div>', '11-31 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע |פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4|</div>', '11-32 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פ|פפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4|</div>', '11-33 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפ|פ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע| פפפ</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4|</div>', '11-34 right word'); selection_test( @@ -222,4 +222,3 @@ '<div contenteditable dir="ltr">אאא בבב צצצ aaa bbb ccc דדד עעע פפפ|</div>', '11-35 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_12.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_12.html index 65c3f750..906798e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_12.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_12.html
@@ -87,73 +87,73 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ a|aa bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-13 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aa|a bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-14 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-15 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa |bbb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |aaa bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-16 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa b|bb ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-17 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bb|b ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-18 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb| ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-19 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb |ccc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa |bbb ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-20 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb c|cc דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-21 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb cc|c דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ |aaa bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-22 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc| דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-23 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc |דדד עעע פפפ</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב צצצ aaa| bbb ccc דדד עעע פפפ</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 aaa bbb |ccc \u05D3\u05D3\u05D3 \u05E2\u05E2\u05E2 \u05E4\u05E4\u05E4</div>', '12-24 right word'); selection_test( @@ -222,4 +222,3 @@ '<div contenteditable dir="rtl">אאא בבב צצצ aaa bbb ccc דדד עעע |פפפ</div>', '12-35 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_13.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_13.html index e6f817e..6d7a7f8 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_13.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_13.html
@@ -9,19 +9,19 @@ selection_test( '<div contenteditable dir="ltr">|אאא בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-0 right word'); selection_test( '<div contenteditable dir="ltr">א|אא בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב |aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-1 right word'); selection_test( '<div contenteditable dir="ltr">אא|א בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב |aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-2 right word'); selection_test( @@ -33,25 +33,25 @@ selection_test( '<div contenteditable dir="ltr">אאא |בבב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-4 right word'); selection_test( '<div contenteditable dir="ltr">אאא ב|בב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-5 right word'); selection_test( '<div contenteditable dir="ltr">אאא בב|ב aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא| בבב aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-6 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב| aaa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב |aaa bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-7 right word'); selection_test( @@ -75,7 +75,7 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב aaa| bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa |bbb צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb |\u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '13-11 right word'); selection_test( @@ -99,25 +99,25 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb| צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb |צצצ דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-15 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb |צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-16 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צ|צצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ דדד|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-17 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצ|צ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ דדד|</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 |\u05D3\u05D3\u05D3</div>', '13-18 right word'); selection_test( @@ -129,19 +129,19 @@ selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ |דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3|</div>', '13-20 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ ד|דד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3|</div>', '13-21 right word'); selection_test( '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ דד|ד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ| דדד</div>', + '<div contenteditable dir="ltr">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3|</div>', '13-22 right word'); selection_test( @@ -150,4 +150,3 @@ '<div contenteditable dir="ltr">אאא בבב aaa bbb צצצ דדד|</div>', '13-23 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_14.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_14.html index eb351cc..535598c 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_14.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_14.html
@@ -63,13 +63,13 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב a|aa bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-9 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aa|a bbb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |aaa bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-10 right word'); selection_test( @@ -87,25 +87,25 @@ selection_test( '<div contenteditable dir="rtl">אאא בבב aaa b|bb צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב |aaa bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-13 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aaa bb|b צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב |aaa bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-14 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aaa bbb| צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-15 right word'); selection_test( '<div contenteditable dir="rtl">אאא בבב aaa bbb |צצצ דדד</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">אאא בבב aaa| bbb צצצ דדד</div>', + '<div contenteditable dir="rtl">\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 aaa |bbb \u05E6\u05E6\u05E6 \u05D3\u05D3\u05D3</div>', '14-16 right word'); selection_test( @@ -150,4 +150,3 @@ '<div contenteditable dir="rtl">אאא בבב aaa bbb צצצ |דדד</div>', '14-23 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_15.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_15.html index c8632988..7d72770 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_15.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_15.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">שנב| abc סטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">שנב |abc סטז</div>', + '<div contenteditable dir="ltr">\u05E9\u05E0\u05D1 abc |\u05E1\u05D8\u05D6</div>', '15-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">שנב abc| סטז</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">שנב abc |סטז</div>', + '<div contenteditable dir="ltr">\u05E9\u05E0\u05D1 abc \u05E1\u05D8\u05D6|</div>', '15-7 right word'); selection_test( @@ -78,4 +78,3 @@ '<div contenteditable dir="ltr">שנב abc סטז|</div>', '15-11 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_16.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_16.html index 4ddbba0..6b1d80a2 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_16.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_16.html
@@ -78,4 +78,3 @@ '<div contenteditable dir="rtl">שנב abc |סטז</div>', '16-11 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_17.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_17.html index 119d7b4..088bedfa 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_17.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_17.html
@@ -9,85 +9,85 @@ selection_test( '<div contenteditable dir="ltr">|abc \u202Bבאד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc |\u202B\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-0 right word'); selection_test( '<div contenteditable dir="ltr">a|bc \u202Bבאד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc |\u202B\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-1 right word'); selection_test( '<div contenteditable dir="ltr">ab|c \u202Bבאד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc |\u202B\u05D1\u05D0\u05D3 def\u202C xyz</div>', '17-2 right word'); selection_test( '<div contenteditable dir="ltr">abc| \u202Bבאד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-3 right word'); selection_test( '<div contenteditable dir="ltr">abc |\u202Bבאד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-4 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202B|באד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-5 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bב|אד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-6 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבא|ד def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 |def\u202C xyz</div>', '17-7 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz|</div>', '17-8 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד |def\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz|</div>', '17-9 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד d|ef\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz|</div>', '17-10 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד de|f\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד| def\u202C xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz|</div>', '17-11 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד def|\u202C xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz|</div>', '17-12 right word'); selection_test( '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C| xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C |xyz</div>', + '<div contenteditable dir="ltr">abc \u202B\u05D1\u05D0\u05D3 def\u202C xyz|</div>', '17-13 right word'); selection_test( @@ -114,4 +114,3 @@ '<div contenteditable dir="ltr">abc \u202Bבאד def\u202C xyz|</div>', '17-17 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_18.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_18.html index a0cafd7..9f5e2bae4 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_18.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_18.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def hij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def hij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', + '<div contenteditable dir="ltr">abc def |hij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', '18-3 right word'); selection_test( @@ -51,43 +51,43 @@ selection_test( '<div contenteditable dir="ltr">abc def| hij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |hij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', + '<div contenteditable dir="ltr">abc def hij |<img src="../../../accessibility/resources/cake.png"> opq rst </div>', '18-7 right word'); selection_test( '<div contenteditable dir="ltr">abc def |hij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> |opq rst </div>', + '<div contenteditable dir="ltr">abc def hij |<img src="../../../accessibility/resources/cake.png"> opq rst </div>', '18-8 right word'); selection_test( '<div contenteditable dir="ltr">abc def h|ij <img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> |opq rst </div>', + '<div contenteditable dir="ltr">abc def hij |<img src="../../../accessibility/resources/cake.png"> opq rst </div>', '18-9 right word'); selection_test( '<div contenteditable dir="ltr">abc def hi|j <img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> |opq rst </div>', + '<div contenteditable dir="ltr">abc def hij |<img src="../../../accessibility/resources/cake.png"> opq rst </div>', '18-10 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij| <img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> |opq rst </div>', + '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq |rst </div>', '18-11 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij |<img src="../../../accessibility/resources/cake.png"> opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> |opq rst </div>', + '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq |rst </div>', '18-12 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png">| opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> |opq rst </div>', + '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq |rst </div>', '18-13 right word'); selection_test( @@ -111,7 +111,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq| rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq |rst </div>', + '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq rst| </div>', '18-17 right word'); selection_test( @@ -144,4 +144,3 @@ '<div contenteditable dir="ltr">abc def hij <img src="../../../accessibility/resources/cake.png"> opq rst| </div>', '18-22 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_19.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_19.html index 507e269..67c28d9d7 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_19.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_19.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def this<span>is</span><span>one</span><span>word</span>end opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def this<span>is</span><span>one</span><span>word</span>end opq rst </div>', + '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>', '19-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| this<span>is</span><span>one</span><span>word</span>end opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |this<span>is</span><span>one</span><span>word</span>end opq rst </div>', + '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>', '19-7 right word'); selection_test( @@ -177,7 +177,7 @@ selection_test( '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end| opq rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end |opq rst </div>', + '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>', '19-28 right word'); selection_test( @@ -201,7 +201,7 @@ selection_test( '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq| rst </div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq |rst </div>', + '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>', '19-32 right word'); selection_test( @@ -234,4 +234,3 @@ '<div contenteditable dir="ltr">abc def this<span>is</span><span>one</span><span>word</span>end opq rst| </div>', '19-37 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_2.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_2.html index af05494..1d7385e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_2.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_2.html
@@ -15,115 +15,114 @@ selection_test( '<div contenteditable dir="rtl">a|bc def hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">|abc def hij opq rst</div>', '2-1 right word'); selection_test( '<div contenteditable dir="rtl">ab|c def hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">|abc def hij opq rst</div>', '2-2 right word'); selection_test( '<div contenteditable dir="rtl">abc| def hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">|abc def hij opq rst</div>', '2-3 right word'); selection_test( '<div contenteditable dir="rtl">abc |def hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">|abc def hij opq rst</div>', '2-4 right word'); selection_test( '<div contenteditable dir="rtl">abc d|ef hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-5 right word'); selection_test( '<div contenteditable dir="rtl">abc de|f hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij opq rst</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-6 right word'); selection_test( '<div contenteditable dir="rtl">abc def| hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-7 right word'); selection_test( '<div contenteditable dir="rtl">abc def |hij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc |def hij opq rst</div>', '2-8 right word'); selection_test( '<div contenteditable dir="rtl">abc def h|ij opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-9 right word'); selection_test( '<div contenteditable dir="rtl">abc def hi|j opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij| opq rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-10 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij| opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-11 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij |opq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def |hij opq rst</div>', '2-12 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij o|pq rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-13 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij op|q rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij opq| rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-14 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq| rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-15 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq |rst</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij |opq rst</div>', '2-16 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq r|st</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-17 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq rs|t</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-18 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij opq rst|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij opq rst</div>', + '<div contenteditable dir="rtl">abc def hij opq |rst</div>', '2-19 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_3.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_3.html index 2ffa8fa6..42545a63 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_3.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_3.html
@@ -9,115 +9,115 @@ selection_test( '<div contenteditable dir="ltr">|ששש נננ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-0 right word'); selection_test( '<div contenteditable dir="ltr">ש|שש נננ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג קקק|</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-1 right word'); selection_test( '<div contenteditable dir="ltr">שש|ש נננ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג קקק|</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 |\u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-2 right word'); selection_test( '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג קקק|</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-3 right word'); selection_test( '<div contenteditable dir="ltr">ששש |נננ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-4 right word'); selection_test( '<div contenteditable dir="ltr">ששש נ|ננ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-5 right word'); selection_test( '<div contenteditable dir="ltr">ששש ננ|נ בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 |\u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-6 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש| נננ בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-7 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ |בבב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-8 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ ב|בב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-9 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בב|ב גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 |\u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7</div>', '3-10 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ| בבב גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-11 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב |גגג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-12 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב ג|גג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-13 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גג|ג קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 |\u05E7\u05E7\u05E7</div>', '3-14 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב| גגג קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7|</div>', '3-15 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג |קקק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7|</div>', '3-16 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג ק|קק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7|</div>', '3-17 right word'); selection_test( '<div contenteditable dir="ltr">ששש נננ בבב גגג קק|ק</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">ששש נננ בבב גגג| קקק</div>', + '<div contenteditable dir="ltr">\u05E9\u05E9\u05E9 \u05E0\u05E0\u05E0 \u05D1\u05D1\u05D1 \u05D2\u05D2\u05D2 \u05E7\u05E7\u05E7|</div>', '3-18 right word'); selection_test( @@ -126,4 +126,3 @@ '<div contenteditable dir="ltr">ששש נננ בבב גגג קקק|</div>', '3-19 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_4.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_4.html index 7a9595e..fc5f461 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_4.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_4.html
@@ -126,4 +126,3 @@ '<div contenteditable dir="rtl">ששש נננ בבב גגג |קקק</div>', '4-19 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_5.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_5.html index ffa6f64..043bf1e 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_5.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_5.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">abc def| hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij |\u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-7 right word'); selection_test( @@ -75,79 +75,79 @@ selection_test( '<div contenteditable dir="ltr">abc def hij| אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij |אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-11 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij |אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-12 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij א|אא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-13 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אא|א בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 |\u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-14 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-15 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא |בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-16 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא ב|בב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-17 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בב|ב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 |\u05E6\u05E6\u05E6 opr uvw xyz</div>', '5-18 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא| בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '5-19 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב |צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '5-20 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צ|צצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '5-21 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצ|צ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב| צצצ opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '5-22 right word'); selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ| opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '5-23 right word'); selection_test( @@ -171,7 +171,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ opr| uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ opr |uvw xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '5-27 right word'); selection_test( @@ -195,7 +195,7 @@ selection_test( '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ opr uvw| xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ opr uvw |xyz</div>', + '<div contenteditable dir="ltr">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz|</div>', '5-31 right word'); selection_test( @@ -222,4 +222,3 @@ '<div contenteditable dir="ltr">abc def hij אאא בבב צצצ opr uvw xyz|</div>', '5-35 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_6.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_6.html index ca0980f..c9a5d04 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_6.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_6.html
@@ -15,73 +15,73 @@ selection_test( '<div contenteditable dir="rtl">a|bc def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-1 right word'); selection_test( '<div contenteditable dir="rtl">ab|c def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-2 right word'); selection_test( '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-3 right word'); selection_test( '<div contenteditable dir="rtl">abc |def hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-4 right word'); selection_test( '<div contenteditable dir="rtl">abc d|ef hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-5 right word'); selection_test( '<div contenteditable dir="rtl">abc de|f hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-6 right word'); selection_test( '<div contenteditable dir="rtl">abc def| hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-7 right word'); selection_test( '<div contenteditable dir="rtl">abc def |hij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-8 right word'); selection_test( '<div contenteditable dir="rtl">abc def h|ij אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-9 right word'); selection_test( '<div contenteditable dir="rtl">abc def hi|j אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-10 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij| אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-11 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij |אאא בבב צצצ opr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def hij אאא בבב צצצ opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def |hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw xyz</div>', '6-12 right word'); selection_test( @@ -159,67 +159,66 @@ selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ o|pr uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '6-25 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ op|r uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '6-26 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '6-27 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr |uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 |opr uvw xyz</div>', '6-28 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr u|vw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-29 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uv|w xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-30 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw| xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-31 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw |xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr |uvw xyz</div>', '6-32 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw x|yz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-33 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xy|z</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ |opr uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-34 right word'); selection_test( '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr uvw xyz|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def hij אאא בבב צצצ opr| uvw xyz</div>', + '<div contenteditable dir="rtl">abc def hij \u05D0\u05D0\u05D0 \u05D1\u05D1\u05D1 \u05E6\u05E6\u05E6 opr uvw |xyz</div>', '6-35 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_7.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_7.html index d3a0bf7..6e5633e1 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_7.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_7.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">abc| def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc |def שנב סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def |\u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '7-3 right word'); selection_test( @@ -51,25 +51,25 @@ selection_test( '<div contenteditable dir="ltr">abc def| שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def |שנב סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-7 right word'); selection_test( '<div contenteditable dir="ltr">abc def |שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-8 right word'); selection_test( '<div contenteditable dir="ltr">abc def ש|נב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב סטז |uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-9 right word'); selection_test( '<div contenteditable dir="ltr">abc def שנ|ב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב סטז |uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 |\u05E1\u05D8\u05D6 uvw xyz</div>', '7-10 right word'); selection_test( @@ -81,25 +81,25 @@ selection_test( '<div contenteditable dir="ltr">abc def שנב |סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 |uvw xyz</div>', '7-12 right word'); selection_test( '<div contenteditable dir="ltr">abc def שנב ס|טז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 |uvw xyz</div>', '7-13 right word'); selection_test( '<div contenteditable dir="ltr">abc def שנב סט|ז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב| סטז uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 |uvw xyz</div>', '7-14 right word'); selection_test( '<div contenteditable dir="ltr">abc def שנב סטז| uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב סטז |uvw xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '7-15 right word'); selection_test( @@ -123,7 +123,7 @@ selection_test( '<div contenteditable dir="ltr">abc def שנב סטז uvw| xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">abc def שנב סטז uvw |xyz</div>', + '<div contenteditable dir="ltr">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz|</div>', '7-19 right word'); selection_test( @@ -150,4 +150,3 @@ '<div contenteditable dir="ltr">abc def שנב סטז uvw xyz|</div>', '7-23 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_8.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_8.html index f400e2b..0387d63 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_8.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_8.html
@@ -15,13 +15,13 @@ selection_test( '<div contenteditable dir="rtl">a|bc def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-1 right word'); selection_test( '<div contenteditable dir="rtl">ab|c def שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">|abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-2 right word'); selection_test( @@ -39,25 +39,25 @@ selection_test( '<div contenteditable dir="rtl">abc d|ef שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-5 right word'); selection_test( '<div contenteditable dir="rtl">abc de|f שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">|abc def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-6 right word'); selection_test( '<div contenteditable dir="rtl">abc def| שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-7 right word'); selection_test( '<div contenteditable dir="rtl">abc def |שנב סטז uvw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc| def שנב סטז uvw xyz</div>', + '<div contenteditable dir="rtl">abc |def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw xyz</div>', '8-8 right word'); selection_test( @@ -111,13 +111,13 @@ selection_test( '<div contenteditable dir="rtl">abc def שנב סטז u|vw xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 |uvw xyz</div>', '8-17 right word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uv|w xyz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 |uvw xyz</div>', '8-18 right word'); selection_test( @@ -135,19 +135,18 @@ selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uvw x|yz</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז |uvw xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-21 right word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uvw xy|z</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז |uvw xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-22 right word'); selection_test( '<div contenteditable dir="rtl">abc def שנב סטז uvw xyz|</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="rtl">abc def שנב סטז uvw| xyz</div>', + '<div contenteditable dir="rtl">abc def \u05E9\u05E0\u05D1 \u05E1\u05D8\u05D6 uvw |xyz</div>', '8-23 right word'); </script> -
diff --git a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_9.html b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_9.html index 7bd1476..0bc1294 100644 --- a/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_9.html +++ b/third_party/blink/web_tests/editing/selection/modify_move/move_right_word_visually_single_space_one_element_9.html
@@ -27,7 +27,7 @@ selection_test( '<div contenteditable dir="ltr">aaa| אאא bbb</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa |אאא bbb</div>', + '<div contenteditable dir="ltr">aaa \u05D0\u05D0\u05D0 |bbb</div>', '9-3 right word'); selection_test( @@ -51,7 +51,7 @@ selection_test( '<div contenteditable dir="ltr">aaa אאא| bbb</div>', selection => selection.modify('move', 'right', 'word'), - '<div contenteditable dir="ltr">aaa אאא |bbb</div>', + '<div contenteditable dir="ltr">aaa \u05D0\u05D0\u05D0 bbb|</div>', '9-7 right word'); selection_test( @@ -78,4 +78,3 @@ '<div contenteditable dir="ltr">aaa אאא bbb|</div>', '9-11 right word'); </script> -
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json index f51a33d..88523d1 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -6811,6 +6811,12 @@ {} ] ], + "speech-api/SpeechSynthesisUtterance-volume-manual.html": [ + [ + "speech-api/SpeechSynthesisUtterance-volume-manual.html", + {} + ] + ], "storage/persist-permission-manual.https.html": [ [ "storage/persist-permission-manual.https.html", @@ -62663,6 +62669,30 @@ {} ] ], + "css/css-text/hyphens/hyphens-out-of-flow-001.html": [ + [ + "css/css-text/hyphens/hyphens-out-of-flow-001.html", + [ + [ + "/css/css-text/hyphens/reference/hyphens-span-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/hyphens/hyphens-out-of-flow-002.html": [ + [ + "css/css-text/hyphens/hyphens-out-of-flow-002.html", + [ + [ + "/css/css-text/hyphens/reference/hyphens-span-002-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/hyphens/hyphens-shaping-001.html": [ [ "css/css-text/hyphens/hyphens-shaping-001.html", @@ -202136,11 +202166,6 @@ {} ] ], - "webrtc/RTCRtpTransceiver-setCodecPreferences-expected.txt": [ - [ - {} - ] - ], "webrtc/RTCRtpTransceiver-stop-expected.txt": [ [ {} @@ -228836,6 +228861,12 @@ {} ] ], + "css/css-contain/contain-size-grid-003.html": [ + [ + "css/css-contain/contain-size-grid-003.html", + {} + ] + ], "css/css-contain/contain-size-multicol-as-flex-item.html": [ [ "css/css-contain/contain-size-multicol-as-flex-item.html", @@ -305032,6 +305063,12 @@ {} ] ], + "shape-detection/detection-ImageData-detached.html": [ + [ + "shape-detection/detection-ImageData-detached.html", + {} + ] + ], "shape-detection/detection-ImageData.html": [ [ "shape-detection/detection-ImageData.html", @@ -372182,6 +372219,10 @@ "43361c298343117362f35596611a9faf854cea47", "reftest" ], + "css/css-contain/contain-size-grid-003.html": [ + "e146b8859206bd4af41b37239fe0ac95a5d2a178", + "testharness" + ], "css/css-contain/contain-size-monolithic-001.html": [ "30f19b6cbbd6f6737d5175b1946c17805e0568d6", "reftest" @@ -397174,6 +397215,14 @@ "39814d3e18c622c022d5e3314580ebb187d217da", "reftest" ], + "css/css-text/hyphens/hyphens-out-of-flow-001.html": [ + "05d78b2c6cc974eb736983d5e9e054ca7db7c95a", + "reftest" + ], + "css/css-text/hyphens/hyphens-out-of-flow-002.html": [ + "0b88adaed8fa8be943706cb043b02785d601ac8b", + "reftest" + ], "css/css-text/hyphens/hyphens-shaping-001.html": [ "0cd2243bdac0e89add0223c03ba2328cb239c980", "reftest" @@ -475003,7 +475052,7 @@ "testharness" ], "portals/portals-activate-inside-portal.html": [ - "97cbeb8b9db7b8d81b85451c90344227e41e30c0", + "efeb23d4e38d21627be812fa85bbd5d74ba83da4", "testharness" ], "portals/portals-activate-no-browsing-context.html": [ @@ -475047,7 +475096,7 @@ "testharness" ], "portals/portals-no-referrer.html": [ - "0386272f441a0c2e19452821968a624d3ab16700", + "1bd68a1c4a21ed3d2db559f7d7c62c187215e40c", "testharness" ], "portals/portals-post-message.sub.html": [ @@ -475071,7 +475120,7 @@ "support" ], "portals/resources/portal-activate-inside-portal.html": [ - "9c9c4df6695909cbe3dc64e9f8f72b918fa58dd3", + "c6dc0bb68b30777b48d7bb69c72c62dc601619dd", "support" ], "portals/resources/portal-activate-twice-window-1.html": [ @@ -475123,11 +475172,11 @@ "support" ], "portals/resources/portal-post-message-before-activate-portal.html": [ - "94cae0f010ec3253c4da56b52836646daf351ac5", + "9e6c9a38958e35d754af918bb060a8bfe7ad28c5", "support" ], "portals/resources/portal-post-message-before-activate-window.html": [ - "55fe61126445eddcfc5d83464604c34b2df0f9b7", + "36c0ccc742f24c09773f162eb8bf532f34333d05", "support" ], "portals/resources/portal-post-message-during-activate-window.html": [ @@ -475155,7 +475204,7 @@ "support" ], "portals/resources/postmessage-referrer.sub.html": [ - "6897ab0801d8d0408913a5a44c03a022c983121e", + "92aef00380ae4a6180039ad0b10169c81a190441", "support" ], "portals/resources/simple-portal.html": [ @@ -490198,6 +490247,10 @@ "a7157c0960eb463b953576e00bb9628cd48df73d", "testharness" ], + "shape-detection/detection-ImageData-detached.html": [ + "6b6060f089eb5629e8625a8e58f9a0348f2988be", + "testharness" + ], "shape-detection/detection-ImageData.html": [ "a74c2afbe1bcde274793853c593c662f4b161e91", "testharness" @@ -490822,6 +490875,10 @@ "2fd394150e941ccbeb8d63b99e598cc53e55446d", "testharness" ], + "speech-api/SpeechSynthesisUtterance-volume-manual.html": [ + "f340ba8bb273593eacfe396b46f7fdec9a409798", + "manual" + ], "speech-api/historical-expected.txt": [ "ebdbc55fd4658f55caf39ddafb50524125f0907f", "support" @@ -503947,7 +504004,7 @@ "testharness" ], "webrtc/RTCDtlsTransport-state.html": [ - "fd7215fa4e162acaed2af563c83b5b0846af3dd5", + "60a14b151e18940a15f91143641f360ef0da346e", "testharness" ], "webrtc/RTCError.html": [ @@ -504075,7 +504132,7 @@ "testharness" ], "webrtc/RTCPeerConnection-helper.js": [ - "efbb1a23c88b2a5f524391cbe66c8495624ceaa3", + "5426e5810738d74724f13b2044f5cce7e5e720cd", "support" ], "webrtc/RTCPeerConnection-iceConnectionState-disconnected.https.html": [ @@ -504087,7 +504144,7 @@ "support" ], "webrtc/RTCPeerConnection-iceConnectionState.https.html": [ - "1bb07935cc70b767fda1872f4495f0655b6a44c7", + "4a7f137fd6a3a4f96b74526b14ff3f40f2d3852d", "testharness" ], "webrtc/RTCPeerConnection-iceGatheringState-expected.txt": [ @@ -504346,12 +504403,8 @@ "e76bc1fbb7740f7a575f0acba397284aa5d5db94", "testharness" ], - "webrtc/RTCRtpTransceiver-setCodecPreferences-expected.txt": [ - "a13c414228db975584d1897eb718415238008d77", - "support" - ], "webrtc/RTCRtpTransceiver-setCodecPreferences.html": [ - "a1f7854e1a2f18036040f882889ff6758e9968c0", + "c553c9d8bc79640c23ec803552f973012a801bb5", "testharness" ], "webrtc/RTCRtpTransceiver-stop-expected.txt": [ @@ -504439,7 +504492,7 @@ "testharness" ], "webrtc/idlharness.https.window-expected.txt": [ - "3b456b5366ccad7e9eb445484cdaa009fad2b452", + "a3925995a7df467d58adc6fc608fcb777ca1bc35", "support" ], "webrtc/idlharness.https.window.js": [
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html index 6165886..3020256 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html
@@ -20,6 +20,6 @@ onload='t1.done();' onerror='t1.unreached_func("The image should have loaded");'> - <script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=img-src%20%27none%27'></script> + <script async defer src='../support/checkReport.sub.js?reportField=effectiveDirective&reportValue=img-src%20%27none%27'></script> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html index 6ec11ef..23337ae 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html
@@ -50,6 +50,6 @@ onload='t1.unreached_func("The image should not have loaded");' onerror='t1.done();'> - <script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=img-src%20%27none%27'></script> + <script async defer src='../support/checkReport.sub.js?reportField=effectiveDirective&reportValue=img-src%20%27none%27'></script> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html index d633e3b..b83a05ce 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html
@@ -17,6 +17,6 @@ </script> <iframe src="../support/fail.html"></iframe> - <script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=frame-src%20%27none%27'></script> + <script async defer src='../support/checkReport.sub.js?reportField=effectiveDirective&reportValue=frame-src%20%27none%27'></script> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/inheritance.html b/third_party/blink/web_tests/external/wpt/css/css-color/inheritance.html new file mode 100644 index 0000000..2928bfa3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-color/inheritance.html
@@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Inheritance of CSS Color properties</title> +<link rel="help" href="https://drafts.csswg.org/css-color/#property-index"> +<meta name="assert" content="Properties inherit or not according to the spec."> +<meta name="assert" content="Properties have initial values according to the spec."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/inheritance-testcommon.js"></script> +</head> +<body> +<div id="container"> + <div id="target"></div> +</div> +<script> +assert_inherited('color', 'rgb(0, 0, 0)', 'rgb(42, 53, 64)'); +assert_not_inherited('opacity', '1', '0.5'); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/parsing/color-computed.html b/third_party/blink/web_tests/external/wpt/css/css-color/parsing/color-computed.html new file mode 100644 index 0000000..e339a0ca --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-color/parsing/color-computed.html
@@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Color Module Level 3: getComputedValue().color</title> +<link rel="help" href="https://drafts.csswg.org/css-color/#propdef-color"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="container"> + <div id="target"></div> +</div> +<style> + #container { + color: rgb(255, 0, 0); + } +</style> +<script> +test_computed_value("color", "currentcolor", "rgb(255, 0, 0)"); +test_computed_value("color", "transparent", "rgba(0, 0, 0, 0)"); +test_computed_value("color", "red", "rgb(255, 0, 0)"); +test_computed_value("color", "magenta", "rgb(255, 0, 255)"); +test_computed_value("color", "#234", "rgb(34, 51, 68)"); +test_computed_value("color", "#FEDCBA", "rgb(254, 220, 186)"); +test_computed_value("color", "rgb(2, 3, 4)"); +test_computed_value("color", "rgb(100%, 0%, 0%)", "rgb(255, 0, 0)"); +test_computed_value("color", "rgba(2, 3, 4, 0.5)"); +test_computed_value("color", "hsl(120, 100%, 50%)", "rgb(0, 255, 0)"); +test_computed_value("color", "hsla(120, 100%, 50%, 0.25)", "rgba(0, 255, 0, 0.25)"); +test_computed_value("color", "rgb(-2, 3, 4)", "rgb(0, 3, 4)"); +test_computed_value("color", "rgb(100, 200, 300)", "rgb(100, 200, 255)"); +test_computed_value("color", "rgb(20, 10, 0, -10)", "rgba(20, 10, 0, 0)"); +test_computed_value("color", "rgb(100%, 200%, 300%)", "rgb(255, 255, 255)"); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/parsing/opacity-computed.html b/third_party/blink/web_tests/external/wpt/css/css-color/parsing/opacity-computed.html new file mode 100644 index 0000000..32250b3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-color/parsing/opacity-computed.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Grid Layout Test: getComputedValue().opacity</title> +<link rel="help" href="https://www.w3.org/TR/css-color-3/#opacity"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("opacity", "1"); +test_computed_value("opacity", "0.5"); +test_computed_value("opacity", "0"); +test_computed_value("opacity", "-2", "0"); +test_computed_value("opacity", "3", "1"); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-images/inheritance.html b/third_party/blink/web_tests/external/wpt/css/css-images/inheritance.html new file mode 100644 index 0000000..5ca1ed6b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-images/inheritance.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Inheritance of CSS Images properties</title> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#property-index"> +<meta name="assert" content="Properties inherit or not according to the spec."> +<meta name="assert" content="Properties have initial values according to the spec."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/inheritance-testcommon.js"></script> +</head> +<body> +<div id="container"> +<div id="target"></div> +</div> +<script> +assert_inherited('image-orientation', '0deg', 'from-image'); // none is 0deg +assert_inherited('image-rendering', 'auto', 'pixelated'); +assert_not_inherited('object-fit', 'fill', 'contain'); +assert_not_inherited('object-position', '50% 50%', '10px 20px'); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-computed.html b/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-computed.html new file mode 100644 index 0000000..f95dcc05 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-computed.html
@@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3 Test: getComputedValue().objectPosition</title> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-object-position"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("object-position", "10% center", "10% 50%"); +test_computed_value("object-position", "right 30% top 60px", "70% 60px"); +test_computed_value("object-position", "-20% -30px"); +test_computed_value("object-position", "30px center", "30px 50%"); +test_computed_value("object-position", "40px top", "40px 0%"); +test_computed_value("object-position", "right 20% bottom 10%", "80% 90%"); +test_computed_value("object-position", "right bottom", "100% 100%"); +test_computed_value("object-position", "center 50px", "50% 50px"); +test_computed_value("object-position", "center bottom", "50% 100%"); +test_computed_value("object-position", "left center", "0% 50%"); +test_computed_value("object-position", "left bottom", "0% 100%"); +test_computed_value("object-position", "right 40%", "100% 40%"); +test_computed_value("object-position", "center top", "50% 0%"); +test_computed_value("object-position", "center", "50% 50%"); +test_computed_value("object-position", "center center", "50% 50%"); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-valid.html b/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-valid.html index b9dab78b..90178c66 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-valid.html +++ b/third_party/blink/web_tests/external/wpt/css/css-images/parsing/object-position-valid.html
@@ -15,7 +15,7 @@ // First serialization is being returned by Blink/Firefox/WebKit, second by Edge. test_valid_value("object-position", "10%", ["10% center", "10% 50%"]); test_valid_value("object-position", "right 30% top 60px"); // "calc(70%) 60px" in Edge. -test_valid_value("object-position", "20% 30px"); +test_valid_value("object-position", "-20% -30px"); test_valid_value("object-position", "30px center", ["30px center", "30px 50%"]); test_valid_value("object-position", "40px top", ["40px top", "40px 0%"]); test_valid_value("object-position", "bottom 10% right 20%", "right 20% bottom 10%"); // "calc(80%) calc(90%)" in Edge.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type-change.html b/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type-change.html new file mode 100644 index 0000000..89b4edaf1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type-change.html
@@ -0,0 +1,66 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-scroll-snap/#scroll-snap-type" /> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +div, html, body { + margin: 0; + padding: 0; +} +html { + margin: 0px; + overflow: scroll; +} +#scroller { + margin-left: 200px; + + height: 300px; + width: 300px; + overflow: scroll; +} +.space { + width: 2000px; + height: 2000px; +} +.snap_area { + margin-left: 200px; + top: 0; + width: 200px; + height: 200px; + background-color: blue; + scroll-snap-align: none start; +} +</style> + +<!-- Add snap area to the root scroller --> +<div class="snap_area" id="viewport"></div> + +<div id="scroller"> + <div class="snap_area" id="inner"></div> + <div class="space"></div> +</div> + +<div class="space"></div> + +<script> + +const scrollers = [document.scrollingElement, document.getElementById("scroller")]; +for (const scroller of scrollers) { + test(_ => { + scroller.style.scrollSnapType = 'x mandatory'; + scroller.scrollTo(100, 0); + assert_equals(scroller.scrollLeft, 200, "scrolling should snap"); + + // When snap type is 'none' the scroller, scrolling should not snap. + scroller.style.scrollSnapType = 'none'; + scroller.scrollTo(100, 0); + assert_equals(scroller.scrollLeft, 100, "scrolling should not snap"); + + // When snap type is changed back to mandatory, scrolling should snap. + scroller.style.scrollSnapType = 'x mandatory'; + scroller.scrollTo(110, 0); + assert_equals(scroller.scrollLeft, 200, "scrolling should snap after change"); + }, `scroll-snap-type on ${scroller.nodeName} should control snapping behavior and changing it takes effect`); +} +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type-proximity.html b/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type.html similarity index 84% rename from third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type-proximity.html rename to third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type.html index cfe990c..1577aa7 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type-proximity.html +++ b/third_party/blink/web_tests/external/wpt/css/css-scroll-snap/scroll-snap-type.html
@@ -1,5 +1,5 @@ <!DOCTYPE html> -<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1" /> +<link rel="help" href="https://drafts.csswg.org/css-scroll-snap/#scroll-snap-type" /> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -77,4 +77,11 @@ assert_equals(scroller.scrollLeft, 1000); assert_equals(scroller.scrollTop, 1000); }, "proximity scroll-snap-type should snap if the snap position is close."); + +test(_ => { + scroller.style.scrollSnapType = "none"; + scroller.scrollTo(100, 100); + assert_equals(scroller.scrollLeft, 100, "scrolling should not snap"); + assert_equals(scroller.scrollTop, 100, "scrolling should not snap"); +}, "none scroll-snap-type shouldn't snap."); </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-out-of-flow-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-out-of-flow-001.html new file mode 100644 index 0000000..05d78b2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-out-of-flow-001.html
@@ -0,0 +1,30 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text Test: manual hyphenation and out-of-flow</title> +<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#hyphens-property"> +<meta name="flags" content=""> +<link rel="match" href="reference/hyphens-span-001-ref.html"> +<meta name="assert" content="the presence of an out of flow element has no effect on manual hyhenation"> +<style> +span { + position: absolute; + color: transparent; +} +div { + border: solid orange; + margin: 5px; + width: 6ch; + hyphens: manual; +} +</style> + +<p>Test passes if the text in all orange boxes below is identical (including the presence and position of a hyphen). + +<div>high­way</div> +<div><span>abspos</span>high­way</div> +<div>h<span>abspos</span>igh­way</div> +<div>high<span>abspos</span>­way</div> +<div>high­<span>abspos</span>way</div> +<div>high­wa<span>abspos</span>y</div> +<div>high­way<span>abspos</span></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-out-of-flow-002.html b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-out-of-flow-002.html new file mode 100644 index 0000000..0b88adae --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-out-of-flow-002.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text Test: auto hyphenation and out-of-flow</title> +<link rel="author" title="Florian Rivoal" href="http://florian.rivoal.net/"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#hyphens-property"> +<meta name="flags" content=""> +<link rel="match" href="reference/hyphens-span-002-ref.html"> +<meta name="assert" content="the presence of an out of flow element has no effect on automatic hyhenation"> +<style> +span { + position: absolute; + color: transparent; +} +div { + border: solid orange; + margin: 5px; + width: 6ch; + hyphens: auto; +} +</style> + +<p>Test passes if the text in all orange boxes below is identical (including the presence and position of a hyphen). + +<div lang=en>highway</div> +<div lang=en><span>abspos</span>highway</div> +<div lang=en>h<span>abspos</span>ighway</div> +<div lang=en>high<span>abspos</span>way</div> +<div lang=en>high<span>abspos</span>way</div> +<div lang=en>highwa<span>abspos</span>y</div> +<div lang=en>highway<span>abspos</span></div> + +<!-- +This test assumes the presence of "highway" +with a hyphenation point between "high" and "way" +in the hyphenation dictionary for English +in order to be useful, +but that assumption is not necessary for the test to be correct: +if the word doesn't hyphenate, +it will not hyphenate in any of the cases. +-->
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom-ref.html b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom-ref.html new file mode 100644 index 0000000..5e43c7d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom-ref.html
@@ -0,0 +1,58 @@ +<!DOCTYPE html> +<html style="zoom:5"> +<meta charset="utf-8"> +<title>backdrop-filter: Clip the filter at border box of element</title> +<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org"> + + + +<div> + <p>Expected: A green box, color-inverted inside the short, wide box with a<br> + blue border and rounded corners, and not color-inverted anywhere else. In<br> + particular, there should be no color inversion inside the tall, narrow box,<br> + or anywhere outside that.</p> +</div> +<div class="box"></div> +<div class="navbar"></div> +<div class="menu"></div> +<div class="menu2"></div> + +<style> +div { + position: absolute; +} +.box { + width: 200px; + height: 200px; + top: 100px; + left: 100px; + background: green; +} +.navbar { + width: 300px; + height: 50px; + top: 150px; + left: 50px; + border: 2px solid blue; + backdrop-filter: invert(1); + border-radius: 10px 20px 30px 40px; +} +.menu { + width: 100px; + height: 150px; + top: 202px; + left: 147px; + border: 2px solid red; +} +.menu2 { + width: 100px; + height: 30px; + top: 118px; + left: 147px; + border: 2px solid red; +} +</style> + +<script> + window.scrollTo(0,700); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom.html b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom.html new file mode 100644 index 0000000..36f0b1b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-clip-rect-zoom.html
@@ -0,0 +1,58 @@ +<!DOCTYPE html> +<html style="zoom:5"> +<meta charset="utf-8"> +<title>backdrop-filter: Clip the filter at border box of element</title> +<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="match" href="backdrop-filter-clip-rect-zoom-ref.html"> + +<div> + <p>Expected: A green box, color-inverted inside the short, wide box with a<br> + blue border and rounded corners, and not color-inverted anywhere else. In<br> + particular, there should be no color inversion inside the tall, narrow box,<br> + or anywhere outside that.</p> +</div> +<div class="box"></div> +<div class="navbar"> + <div class="menu"></div> + <div class="menu2"></div> +</div> +<style> +div { + position: absolute; +} +.box { + width: 200px; + height: 200px; + top: 100px; + left: 100px; + background: green; +} +.navbar { + width: 300px; + height: 50px; + top: 150px; + left: 50px; + border: 2px solid blue; + backdrop-filter: invert(1); + border-radius: 10px 20px 30px 40px; +} +.menu { + width: 100px; + height: 150px; + top: 50px; + left: 95px; + border: 2px solid red; +} +.menu2 { + width: 100px; + height: 30px; + top: -34px; + left: 95px; + border: 2px solid red; +} +</style> + +<script> + window.scrollTo(0,700); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/layout-stability/buffer-layout-jank.html b/third_party/blink/web_tests/external/wpt/layout-stability/buffer-layout-jank.html index f5818cfb..5700959 100644 --- a/third_party/blink/web_tests/external/wpt/layout-stability/buffer-layout-jank.html +++ b/third_party/blink/web_tests/external/wpt/layout-stability/buffer-layout-jank.html
@@ -12,6 +12,7 @@ <img src="resources/slow-image.py"> <script> async_test(function (t) { + const startTime = performance.now(); // Modify the position of the div. document.getElementById('myDiv').style = "top: 60px"; function testBufferedEntry() { @@ -19,13 +20,15 @@ t.step_timeout(testBufferedEntry, 0); return; } + const endTime = performance.now(); assert_equals(performance.getEntriesByType('layoutJank').length, 1); assert_equals(performance.getEntries().filter( entry => entry.entryType === 'layoutJank').length, 1); const entry = performance.getEntriesByType('layoutJank')[0]; assert_equals(entry.entryType, "layoutJank"); assert_equals(entry.name, ""); - assert_equals(entry.startTime, 0.0); + assert_greater_than_equal(entry.startTime, startTime) + assert_less_than_equal(entry.startTime, endTime) assert_equals(entry.duration, 0.0); // The layout jank fraction should be: 300 * (100 + 60) / viewport size. assert_equals(entry.fraction, 300 * (100 + 60) /
diff --git a/third_party/blink/web_tests/external/wpt/layout-stability/observe-layoutjank.html b/third_party/blink/web_tests/external/wpt/layout-stability/observe-layoutjank.html index 1a0533ac..9d0f71c 100644 --- a/third_party/blink/web_tests/external/wpt/layout-stability/observe-layoutjank.html +++ b/third_party/blink/web_tests/external/wpt/layout-stability/observe-layoutjank.html
@@ -10,13 +10,16 @@ <script src="/resources/testharnessreport.js"></script> <script> async_test(function (t) { + const startTime = performance.now(); const observer = new PerformanceObserver( t.step_func_done(function(entryList) { + const endTime = performance.now(); assert_equals(entryList.getEntries().length, 1); const entry = entryList.getEntries()[0]; assert_equals(entry.entryType, "layoutJank"); assert_equals(entry.name, ""); - assert_equals(entry.startTime, 0.0); + assert_greater_than_equal(entry.startTime, startTime) + assert_less_than_equal(entry.startTime, endTime) assert_equals(entry.duration, 0.0); // The layout jank fraction should be: 300 * (100 + 60) / viewport size. assert_equals(entry.fraction, 300 * (100 + 60) /
diff --git a/third_party/blink/web_tests/external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html b/third_party/blink/web_tests/external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html new file mode 100644 index 0000000..f340ba8b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/speech-api/SpeechSynthesisUtterance-volume-manual.html
@@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> +<head> + <title>5.2.3 SpeechSynthesisUtterance volume attribute test - Manual</title> + <style> + div, + #test { + display: block; + width: 640px; + word-break: break-all; + padding: 4px; + } + #test, + #volume { + background: skyblue; + font-weight: bold; + } + </style> + <script> + const text = "hello universe"; + const volumes = [0, 0.2, 0.4, 0.6, 1]; + + handleVoicesChanged = async _ => { + for (const volume of volumes) { + await new Promise(resolve => { + document.getElementById("volume").value = volume; + const utterance = new SpeechSynthesisUtterance(); + utterance.text = "hello universe"; + utterance.volume = volume; + utterance.onend = resolve; + window.speechSynthesis.speak(utterance); + }); + }; + }; + onload = e => { + document.getElementById("test").onclick = _ => { + if (window.speechSynthesis.getVoices().length === 0) { + window.speechSynthesis.onvoiceschanged = handleVoicesChanged; + } else { + handleVoicesChanged() + } + }; + }; + </script> +</head> +<body> + <div> + <h3>Specification:</h3> + <a href="https://w3c.github.io/speech-api/speechapi.html#utterance-attributes"><b><code><i><u>volume</u></i></code> attribute</b></a> + <blockquote> + This attribute specifies the speaking volume for the utterance. It ranges between 0 and 1 inclusive, with 0 being the lowest volume and 1 the highest volume, with a default of 1. If SSML is used, this value will be overridden by prosody tags in the markup. + </blockquote> + </div> + <div id="test"> + Click to execute <code>window.speechSynthesis.speak()</code> with <code>volume attribute</code> set to <code>0, 0.2, 0.4, 0.6, 1.</code> + </div> + <br> + <div> + <label for="volume">Current volume: </label> + <input id="volume" readonly> + <h3>Manaul Test:</h3>Does the volume of audio output change? + </div> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/svg/pservers/inheritance.svg b/third_party/blink/web_tests/external/wpt/svg/pservers/inheritance.svg new file mode 100644 index 0000000..e08b93d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/svg/pservers/inheritance.svg
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" + xmlns:h="http://www.w3.org/1999/xhtml" + width="800px" height="8000px"> + <title>Inheritance of SVG paint server properties</title> + <metadata> + <h:link rel="help" href="https://svgwg.org/svg2-draft/pservers.html"/> + <h:meta name="assert" content="properties inherit according to the spec."/> + <h:meta name="assert" content="properties have expected initial values."/> + </metadata> + <g id="container"> + <g id="target"></g> + </g> + <h:script src="/resources/testharness.js"/> + <h:script src="/resources/testharnessreport.js"/> + <h:script src="/css/support/inheritance-testcommon.js"/> + <script><![CDATA[ +assert_not_inherited('stop-color', 'rgb(0, 0, 0)', 'rgb(42, 53, 64)'); +assert_not_inherited('stop-opacity', '1', '0.5'); + ]]></script> +</svg>
diff --git a/third_party/blink/web_tests/fast/dom/52776.html b/third_party/blink/web_tests/fast/dom/52776.html index 3e4c894..24819740 100644 --- a/third_party/blink/web_tests/fast/dom/52776.html +++ b/third_party/blink/web_tests/fast/dom/52776.html
@@ -110,9 +110,7 @@ var test = document.getElementById('test'); var sel = getSelection(); - sel.collapse(test,0); - sel.modify("move", "right", "lineBoundary"); - sel.modify("move", "left", "character"); + sel.collapse(test.firstChild, 3); sel.modify("extend", "left", "character"); assertEqual("test id=test: the right-most character of rendering result of <PDF>abc<PDF> in RTL block should be c", sel.toString(), 'c'); </script>
diff --git a/third_party/blink/web_tests/fast/text/selection/atsui-bidi-control-expected.txt b/third_party/blink/web_tests/fast/text/selection/atsui-bidi-control-expected.txt index 9edf548..3c9ce136 100644 --- a/third_party/blink/web_tests/fast/text/selection/atsui-bidi-control-expected.txt +++ b/third_party/blink/web_tests/fast/text/selection/atsui-bidi-control-expected.txt
@@ -3,9 +3,9 @@ (1,1) (2,2) (3,3) -(6,6) -(5,5) (4,4) +(5,5) +(6,6) (7,7) (8,8) (9,9)
diff --git a/third_party/blink/web_tests/xr/xrSession_deviceDisconnect.html b/third_party/blink/web_tests/xr/xrSession_deviceDisconnect.html new file mode 100644 index 0000000..6f2a586 --- /dev/null +++ b/third_party/blink/web_tests/xr/xrSession_deviceDisconnect.html
@@ -0,0 +1,166 @@ +<!DOCTYPE html> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> +<script src="file:///gen/device/vr/public/mojom/vr_service.mojom.js"></script> +<script src="../external/wpt/resources/chromium/webxr-test.js"></script> +<script src="../xr/resources/xr-internal-device-mocking.js"></script> +<script src="../xr/resources/xr-test-utils.js"></script> +<script src="../xr/resources/test-constants.js"></script> +<canvas id="webgl-canvas"></canvas> + +<script> + +let testName = "Outstanding promises resolve appropriately if device disconencts"; + +// Expose the ability to get get the VRService and close the device on that VRService. +ChromeXRTest.prototype.getService = function() { + return this.mockVRService_; +} + +MockVRService.prototype.closeDevice = function() { + this.deviceBinding_.close(); + this.devicePtr_ = null; +} + +// Override the default implementations of requestSession and supportsSession +// from XRDevice so that we can choose to either return an answer immediately or +// return a promise that will never resolve to guarantee we have an outstanding +// promise on device disconnect. +MockVRService.prototype.requestSession = function(sessionOptions, was_activation) { + return new Promise((resolve,reject) => { }); +} + +let immediatelyResolveSupportsSession = true; +MockVRService.prototype.supportsSession = function(sessionOptions) { + if (immediatelyResolveSupportsSession) { + return Promise.resolve({ supportsSession: true }); + } + + return new Promise((resolve, reject) => { }); +} + +// Override the default requestDevice implementation so that we can fail if it's +// called when we don't expect it to be called (typically this would be because +// we aren't planning to force another device closure and would leave any +// outstanding promises unresolved, and thus cause the test to timeout), and so +// that we can store the device binding so that we can force it to be closed. +let failIfRequestDeviceCalled = false; +MockVRService.prototype.requestDevice = function() { + if (failIfRequestDeviceCalled) { + assert_unreached("requestDevice shouldn't be called at this time"); + } + + if (!this.devicePtr_) { + this.devicePtr_ = new device.mojom.XRDevicePtr(); + this.deviceBinding_ = new mojo.Binding( + device.mojom.XRDevice, this, mojo.makeRequest(this.devicePtr_)); + } + + return Promise.resolve({device: this.devicePtr_}); +} + +// Convenience methods to turn a resolve/reject into an appropraite string +// which Promise.All can check to tell us which methods failed. +// If we just let the promises assert, then Promise.all would only fail on the +// first assert. +let successMessage = "PASS"; +let failMessageStart = "FAIL: " +function WrapResolve(promise, name, errorMsg) { + return promise.then(() => { + return successMessage; + }, () => { + return failMessageStart + name + ": " + errorMsg; + }); +} + +function WrapReject(promise, name, errorMsg, errorType) { + return promise.then(() => { + return failMessageStart + name + ": " + errorMsg; + }, (err) => { + if (err.name === errorType) { + return successMessage; + } + + return failMessageStart + name + ": expected: " + errorType + " but got: " + err.name; + }); +} + +// Per security requirements, requesting an immersive session requires a user gesture. +function requestImmersiveSession() { + return new Promise((resolve, reject) => { + runWithUserGesture(() => { + navigator.xr.requestSession('immersive-vr').then((session) => { + resolve(session); + }, (err) => { + reject(err); + }); + }); + }); +} + +let validateDeviceDisconnectPromise = function() { + // Ensure that the state is properly set-up for our helper functions so that + // we can be called multiple times. + failIfRequestDeviceCalled = false; + immediatelyResolveSupportsSession = true; + + // Make a supports session call so that we can ensure that the underlying code + // has gotten a devicePtr set up. Note that inline, since it's always + // guaranteed doesn't ensure that the device is set up, where-as a call to see + // if we support immersive does require a device + return navigator.xr.supportsSession('immersive-vr').then(() => { + + // Cause supportsSession to stop returning and make future calls "hang"/ + immediatelyResolveSupportsSession = false; + + // We don't expect a new device to be requested, and if it is we aren't + // going to close it during this test, so any of our mocked calls will cause + // a timeout. + failIfRequestDeviceCalled = true; + let promises = []; + + // Note that inline session requests still call out through the device. + promises.push(WrapResolve(navigator.xr.requestSession('inline'), "Request Inline", + "Inline should always be available")); + promises.push(WrapReject(requestImmersiveSession(), "Request Immersive", + "Immersive should be rejected once device is disconnected", "NotSupportedError")); + promises.push(WrapReject(navigator.xr.supportsSession('immersive-vr'), "Supports Immersive", + "Immersive should not be supported once device is disconnected", "NotSupportedError")); + + // Force the device disconnect, which should cause the promises to resolve. + XRTest.getService().closeDevice(); + + // Call this after we close the device, because we don't expect this to rely + // on (or request) the presence of a device. + promises.push(WrapResolve(navigator.xr.supportsSession('inline'), "Supports Inline", + "Inline support should be available without calling to a device")); + + return Promise.all(promises).then((results) => { + let error_messages = []; + for (let i = 0; i < results.length; i++) { + if (results[i] !== successMessage) { + error_messages.push(results[i]); + } + } + + if (error_messages.length !== 0) { + assert_unreached(error_messages); + } + }) + }); +} + +let testFunction = function(t) { + return validateDeviceDisconnectPromise().then(() => { + + // Validate that even after disconnecting and resolving the promises, + // we can still request a new device, and that it will resolve any promises + // on it's disconnect. + return validateDeviceDisconnectPromise(); + }) +} + +promise_test(testFunction, testName); + +</script>
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 3a06d79..705a620 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -839,8 +839,29 @@ </action> <action name="Accel_Restore_Tab"> - <owner>Please list the metric's owners. Add more owner tags as needed.</owner> - <description>Please enter the description of this user action.</description> + <owner>mpearson@chromium.org</owner> + <owner>chrisha@chromium.org</owner> + <description> + Emitted when the Ash window manager hotkey handler handles the + "Ctrl-Shift-T" shortcut that causes the most recently closed tab + to be restored. Because it's related to Ash, it's ChromeOS only. This is + only emitted when the Ash hotkey handler handles the shortcut, which only + happens when a non-Chrome window is focussed on ChromeOS. (The launcher is + an example of a non-Chrome window.) If a Chrome window was focussed on + ChromeOS as the user presses the keyboard shortcut, it's handled by Chrome's + keyboard shortcut handler system. In that case, the user action RestoreTab + is emitted, not Accel_Restore_Tab. + + It's never the case that both Accel_Restore_Tab and RestoreTab are emitted + for the same keyboard shortcut press. + + Note: if the last user action was to close an entire window with multiple + tabs, this keyboard shortcut will cause the entire window to be restored, + containing multiple tabs. This user action is only emitted once however, + regardless of the number of tabs. + + This is not emitted during session restore that occurs as part of startup. + </description> </action> <action name="Accel_Rotate_Active_Window"> @@ -1323,6 +1344,13 @@ </description> </action> +<action name="AltClickMappedToRightClick"> + <owner>zentaro@chromium.org</owner> + <description> + User pressed alt click on a touchpad device to generate right click. + </description> +</action> + <action name="Android.BookmarkPage.RemoveItem"> <owner>huayinz@chromium.org</owner> <owner>twellington@chromium.org</owner> @@ -16632,8 +16660,27 @@ </action> <action name="RestoreTab"> - <owner>Please list the metric's owners. Add more owner tags as needed.</owner> - <description>Please enter the description of this user action.</description> + <owner>mpearson@chromium.org</owner> + <owner>chrisha@chromium.org</owner> + <description> + Emitted anytime the most recently closed tab is restored via + browser/ui/browser_tab_restorer.cc. This occurs either via the + (Ctrl-Shift-T) hotkey or the tab context menu. These are cases where the + user hasn't explicitly selected a recently closed tab; the user is asking + that the most recently closed tab be restored. Thus, it's not recorded, for + example, if the user uses three-dots menu > History > Recently Closed + Tabs and selects a tab, as in this case the user has selected a recently + closed tab explicitly. That case and cases like it go directly to + TabRestoreService::RestoreEntryById and bypass the browser_tab_restorer code + path. + + Note: if the last user action was to close an entire window with multiple + tabs, this RestoreTab action will cause the entire window to be restored, + containing multiple tabs. This user action is only emitted once however, + regardless of the number of tabs. + + This is not emitted during session restore that occurs as part of startup. + </description> </action> <action name="Save"> @@ -20393,8 +20440,18 @@ </action> <action name="TabContextMenu_RestoreTab"> - <owner>Please list the metric's owners. Add more owner tags as needed.</owner> - <description>Please enter the description of this user action.</description> + <owner>mpearson@chromium.org</owner> + <owner>chrisha@chromium.org</owner> + <description> + Emitted when the user uses the tab strip context menu and selects + "Reopen Closed Tab". This interaction also causes the user action + RestoreTab to be emitted. + + Note: if the last user action was to close an entire window with multiple + tabs, this "Reopen Closed Tab" action will cause the entire window + to be restored, containing multiple tabs. This user action is only emitted + once however, regardless of the number of tabs. + </description> </action> <action name="TabContextMenu_SendTabToSelf_Clicked">
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index fa16979..7c038c93 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -12337,6 +12337,11 @@ <int value="33" label="Network panel film strip started recording"/> </enum> +<enum name="DevToolsBackgroundService"> + <int value="2" label="Background Fetch"/> + <int value="3" label="Background Sync"/> +</enum> + <enum name="DevToolsPanel"> <int value="1" label="Elements"/> <int value="2" label="Resources"/> @@ -34763,6 +34768,7 @@ label="SyncPseudoUSSHistoryDeleteDirectives:disabled"/> <int value="1260186484" label="spurious-power-button-screen-accel"/> <int value="1261713150" label="ChromeHomeOptOutSnackbar:disabled"/> + <int value="1266156008" label="IdentityDisc:disabled"/> <int value="1266525177" label="AutofillUpstreamUseGooglePayOnAndroidBranding:disabled"/> <int value="1266886673" label="delay-reload-stop-button-change"/> @@ -35117,6 +35123,7 @@ <int value="1814671708" label="disable-password-manager-reauthentication"/> <int value="1816843861" label="ServiceWorkerServicification:enabled"/> <int value="1817312143" label="num-raster-threads"/> + <int value="1818829958" label="IdentityDisc:enabled"/> <int value="1819256299" label="disable-webrtc-hw-decoding"/> <int value="1819536169" label="disable-cast-streaming-hw-encoding"/> <int value="1820317896" label="NTPShowGoogleGInOmnibox:disabled"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 4db5b4a..390b4e59 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -24509,6 +24509,17 @@ </summary> </histogram> +<histogram name="DevTools.BackgroundService.StartRecording" + enum="DevToolsBackgroundService" expires_after="M78"> + <owner>dgozman@chromium.org</owner> + <owner>rayankans@chromium.org</owner> + <summary> + Records the Background Service for which `Recording` mode was enabled. This + is called if the developer toggles the record button in the relevant + Bakground Service DevTools panel. + </summary> +</histogram> + <histogram name="DevTools.InspectElement" units="ms"> <owner>alph@chromium.org</owner> <owner>pfeldman@chromium.org</owner> @@ -97494,7 +97505,31 @@ <owner>robertogden@chromium.org</owner> <summary> Whether or not an offline preview that was committed showed an error page. - This metric is recorded every time an offline preview is commited. + This metric is recorded every time an offline preview is committed. + </summary> +</histogram> + +<histogram name="Previews.Offline.FalsePositivePrevention.Allowed" + enum="BooleanAllowed" expires_after="M80"> + <owner>robertogden@chromium.org</owner> + <owner>ryansturm@chromium.org</owner> + <summary> + Whether or not the navigated URL was allowed to trigger an offline preview. + This is done by checking an in-memory cache of all available offline + previews which is designed to prevent false positive triggering. This metric + is recorded on every preview eligible navigation when the + OfflinePreviewsFalsePositivePrevention feature is enabled. + </summary> +</histogram> + +<histogram name="Previews.Offline.FalsePositivePrevention.PrefSize" + units="count of entries" expires_after="M80"> + <owner>robertogden@chromium.org</owner> + <owner>ryansturm@chromium.org</owner> + <summary> + The number of entries in the false positive prevention pref. This is + recorded every time we update the pref from a DB query, at most once per + session. </summary> </histogram>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index 84c5a729..164a275 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -4563,13 +4563,6 @@ meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed explanation. In ms. </summary> - <aggregation> - <history> - <statistics> - <quantiles type="std-percentiles"/> - </statistics> - </history> - </aggregation> </metric> <metric name="InteractiveTiming.FirstInputDelay2"> <obsolete> @@ -4582,14 +4575,6 @@ meaningful input per navigation. See https://goo.gl/tr1oTZ for a detailed explanation. In ms. </summary> - <aggregation> - <history> - <index fields="profile.country"/> - <statistics> - <quantiles type="std-percentiles"/> - </statistics> - </history> - </aggregation> </metric> <metric name="InteractiveTiming.FirstInputDelay3"> <summary> @@ -4665,14 +4650,6 @@ timestamp and the start of event processing on the main thread for the meaningful input per navigation. In ms. </summary> - <aggregation> - <history> - <index fields="profile.country"/> - <statistics> - <quantiles type="std-percentiles"/> - </statistics> - </history> - </aggregation> </metric> <metric name="InteractiveTiming.LongestInputDelay3"> <summary>
diff --git a/ui/accessibility/platform/ax_platform_node_delegate.h b/ui/accessibility/platform/ax_platform_node_delegate.h index abae4ffd..158eea2 100644 --- a/ui/accessibility/platform/ax_platform_node_delegate.h +++ b/ui/accessibility/platform/ax_platform_node_delegate.h
@@ -177,6 +177,13 @@ virtual std::set<AXPlatformNode*> GetReverseRelations( ax::mojom::IntListAttribute attr) = 0; + // Return the string representation of the unique ID assigned by the author, + // otherwise return an empty string. The author ID must be persistent across + // any instance of the application, regardless of locale. The author ID should + // be unique among sibling accessibility nodes and is best if unique across + // the application, however, not meeting this requirement is non-fatal. + virtual base::string16 GetAuthorUniqueId() const = 0; + virtual const AXUniqueId& GetUniqueId() const = 0; // This method finds text boundaries in the text used for platform text APIs.
diff --git a/ui/accessibility/platform/ax_platform_node_delegate_base.cc b/ui/accessibility/platform/ax_platform_node_delegate_base.cc index 209aecc..323bbc25 100644 --- a/ui/accessibility/platform/ax_platform_node_delegate_base.cc +++ b/ui/accessibility/platform/ax_platform_node_delegate_base.cc
@@ -329,6 +329,10 @@ return std::set<AXPlatformNode*>(); } +base::string16 AXPlatformNodeDelegateBase::GetAuthorUniqueId() const { + return base::string16(); +} + const AXUniqueId& AXPlatformNodeDelegateBase::GetUniqueId() const { static base::NoDestructor<AXUniqueId> dummy_unique_id; return *dummy_unique_id;
diff --git a/ui/accessibility/platform/ax_platform_node_delegate_base.h b/ui/accessibility/platform/ax_platform_node_delegate_base.h index 0c6d9ec..4301cda 100644 --- a/ui/accessibility/platform/ax_platform_node_delegate_base.h +++ b/ui/accessibility/platform/ax_platform_node_delegate_base.h
@@ -130,6 +130,8 @@ std::set<AXPlatformNode*> GetReverseRelations( ax::mojom::IntListAttribute attr) override; + base::string16 GetAuthorUniqueId() const override; + const AXUniqueId& GetUniqueId() const override; base::Optional<int> FindTextBoundary(
diff --git a/ui/accessibility/platform/ax_platform_node_win.cc b/ui/accessibility/platform/ax_platform_node_win.cc index b75b3127b..15bf6ae1 100644 --- a/ui/accessibility/platform/ax_platform_node_win.cc +++ b/ui/accessibility/platform/ax_platform_node_win.cc
@@ -3654,9 +3654,9 @@ break; case UIA_AutomationIdPropertyId: - result->vt = VT_BSTR; - result->bstrVal = - SysAllocString(base::NumberToString16(GetUniqueId()).c_str()); + V_VT(result) = VT_BSTR; + V_BSTR(result) = + SysAllocString(GetDelegate()->GetAuthorUniqueId().c_str()); break; case UIA_ClassNamePropertyId:
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn index 317ac69..d1e145f 100644 --- a/ui/base/BUILD.gn +++ b/ui/base/BUILD.gn
@@ -666,6 +666,8 @@ "test/cocoa_helper.mm", "test/menu_test_observer.h", "test/menu_test_observer.mm", + "test/ns_ax_tree_validator.h", + "test/ns_ax_tree_validator.mm", "test/nswindow_fullscreen_notification_waiter.h", "test/nswindow_fullscreen_notification_waiter.mm", "test/scoped_fake_full_keyboard_access.h",
diff --git a/ui/base/test/ns_ax_tree_validator.h b/ui/base/test/ns_ax_tree_validator.h new file mode 100644 index 0000000..6cecee0 --- /dev/null +++ b/ui/base/test/ns_ax_tree_validator.h
@@ -0,0 +1,57 @@ +// Copyright 2019 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 UI_BASE_TEST_NS_AX_TREE_VALIDATOR_H_ +#define UI_BASE_TEST_NS_AX_TREE_VALIDATOR_H_ + +#include "base/optional.h" + +@protocol NSAccessibility; + +namespace ui { + +struct NSAXTreeProblemDetails { + enum ProblemType { + // |node_a| (the child node) is not a child of |node_b| (its parent). + NSAX_NOT_CHILD_OF_PARENT, + + // |node_a| (the child node) is a child of |node_b|, but |node_a|'s parent + // is |node_c| instead. + NSAX_CHILD_PARENT_NOT_THIS, + + // |node_a| (a supplied root node) is non-nil but does not conform to + // NSAccessibility. + NSAX_NOT_NSACCESSIBILITY, + + // |node_a| (the child node)'s parent |node_b| is non-nil but does not + // conform to NSAccessibility. + NSAX_PARENT_NOT_NSACCESSIBILITY, + }; + + NSAXTreeProblemDetails(ProblemType type, id node_a, id node_b, id node_c); + + ProblemType type; + // These aren't id<NSAccessibility> because some kinds of problem are caused + // by them not conforming to NSAccessibility. + id node_a; + id node_b; + id node_c; + + std::string ToString(); +}; + +// Validates the accessibility tree rooted at |root|. If at least one problem is +// found, returns an |AXTreeProblemDetails| as described above; if not, returns +// base::nullopt. +base::Optional<NSAXTreeProblemDetails> ValidateNSAXTree( + id<NSAccessibility> root, + size_t* nodes_visited); + +// Prints the accessibility tree rooted at |root|. This function is useful for +// debugging failures of ValidateNSAXTree tests. +void PrintNSAXTree(id<NSAccessibility> root); + +} // ui + +#endif // UI_BASE_TEST_NS_AX_TREE_VALIDATOR_H_
diff --git a/ui/base/test/ns_ax_tree_validator.mm b/ui/base/test/ns_ax_tree_validator.mm new file mode 100644 index 0000000..f9312c2 --- /dev/null +++ b/ui/base/test/ns_ax_tree_validator.mm
@@ -0,0 +1,103 @@ +// Copyright 2019 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 "ui/base/test/ns_ax_tree_validator.h" + +#include <Cocoa/Cocoa.h> + +#include "base/strings/sys_string_conversions.h" + +namespace { + +id<NSAccessibility> ToNSAccessibility(id obj) { + return [obj conformsToProtocol:@protocol(NSAccessibility)] ? obj : nil; +} + +void PrintNSAXTreeHelper(id<NSAccessibility> root, int depth) { + std::string desc; + for (int i = 0; i < depth; i++) + desc += " "; + desc += base::SysNSStringToUTF8([NSString stringWithFormat:@"%@", root]); + LOG(INFO) << desc; + for (id child in root.accessibilityChildren) + PrintNSAXTreeHelper(child, depth + 1); +} + +} + +namespace ui { + +NSAXTreeProblemDetails::NSAXTreeProblemDetails(ProblemType type, + id node_a, + id node_b, + id node_c) + : type(type), node_a(node_a), node_b(node_b), node_c(node_c) {} + +std::string NSAXTreeProblemDetails::ToString() { + NSString* s; + switch (type) { + case NSAX_NOT_CHILD_OF_PARENT: + s = [NSString + stringWithFormat:@"Node %@ isn't a child of %@", node_a, node_b]; + break; + case NSAX_CHILD_PARENT_NOT_THIS: + s = [NSString stringWithFormat:@"Node %@'s child %@'s parent is %@", + node_a, node_b, node_c]; + break; + case NSAX_NOT_NSACCESSIBILITY: + s = [NSString stringWithFormat:@"Node %@ does not conform to" + " to NSAccessibility", + node_a]; + break; + case NSAX_PARENT_NOT_NSACCESSIBILITY: + s = [NSString stringWithFormat:@"Node %@'s parent %@ does not conform" + " to NSAccessibility", + node_a, node_b]; + break; + } + return base::SysNSStringToUTF8(s); +} + +base::Optional<NSAXTreeProblemDetails> ValidateNSAXTree( + id<NSAccessibility> root, + size_t* nodes_visited) { + if (!ToNSAccessibility(root)) { + return base::make_optional<NSAXTreeProblemDetails>( + NSAXTreeProblemDetails::NSAX_NOT_NSACCESSIBILITY, root, nil, nil); + } + (*nodes_visited)++; + + if (root.accessibilityParent) { + id<NSAccessibility> parent = ToNSAccessibility(root.accessibilityParent); + if (!parent) { + return base::make_optional<NSAXTreeProblemDetails>( + NSAXTreeProblemDetails::NSAX_PARENT_NOT_NSACCESSIBILITY, root, parent, + nil); + } + + NSArray<id<NSAccessibility>>* parent_children = + parent.accessibilityChildren; + + if ([parent_children indexOfObjectIdenticalTo:root] == NSNotFound) { + return base::make_optional<NSAXTreeProblemDetails>( + NSAXTreeProblemDetails::NSAX_NOT_CHILD_OF_PARENT, root, parent, nil); + } + } + + NSArray<id<NSAccessibility>>* children = root.accessibilityChildren; + for (id<NSAccessibility> child in children) { + base::Optional<NSAXTreeProblemDetails> details = + ValidateNSAXTree(child, nodes_visited); + if (details.has_value()) + return details; + } + + return base::nullopt; +} + +void PrintNSAXTree(id<NSAccessibility> root) { + PrintNSAXTreeHelper(root, 0); +} + +} // namespace ui
diff --git a/ui/chromeos/events/event_rewriter_chromeos.cc b/ui/chromeos/events/event_rewriter_chromeos.cc index 8d6740f26..9ec01ec 100644 --- a/ui/chromeos/events/event_rewriter_chromeos.cc +++ b/ui/chromeos/events/event_rewriter_chromeos.cc
@@ -12,6 +12,7 @@ #include "base/command_line.h" #include "base/files/scoped_file.h" #include "base/logging.h" +#include "base/metrics/user_metrics.h" #include "base/stl_util.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" @@ -1261,10 +1262,12 @@ IsFromTouchpadDevice(mouse_event)) { *flags &= ~kAltLeftButton; *flags |= ui::EF_RIGHT_MOUSE_BUTTON; - if (mouse_event.type() == ui::ET_MOUSE_PRESSED) + if (mouse_event.type() == ui::ET_MOUSE_PRESSED) { pressed_device_ids_.insert(mouse_event.source_device_id()); - else + base::RecordAction(base::UserMetricsAction("AltClickMappedToRightClick")); + } else { pressed_device_ids_.erase(mouse_event.source_device_id()); + } return ui::EF_RIGHT_MOUSE_BUTTON; } return ui::EF_NONE;
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn index 61b732ba..91fdb5f0 100644 --- a/ui/views/BUILD.gn +++ b/ui/views/BUILD.gn
@@ -620,7 +620,6 @@ "accessibility/accessibility_alert_window.h", "accessibility/ax_aura_obj_cache.h", "accessibility/ax_aura_obj_wrapper.h", - "accessibility/ax_aura_window_utils.h", "accessibility/ax_root_obj_wrapper.h", "accessibility/ax_tree_source_views.h", "accessibility/ax_view_obj_wrapper.h", @@ -657,7 +656,6 @@ "accessibility/accessibility_alert_window.cc", "accessibility/ax_aura_obj_cache.cc", "accessibility/ax_aura_obj_wrapper.cc", - "accessibility/ax_aura_window_utils.cc", "accessibility/ax_root_obj_wrapper.cc", "accessibility/ax_tree_source_views.cc", "accessibility/ax_view_obj_wrapper.cc", @@ -1202,7 +1200,6 @@ if (use_aura) { sources += [ "accessibility/ax_aura_obj_cache_unittest.cc", - "accessibility/ax_aura_window_utils_unittest.cc", "accessibility/ax_tree_source_views_unittest.cc", "controls/native/native_view_host_aura_unittest.cc", "corewm/tooltip_controller_unittest.cc",
diff --git a/ui/views/accessibility/ax_aura_obj_cache.cc b/ui/views/accessibility/ax_aura_obj_cache.cc index 9a9131b..fe2916a 100644 --- a/ui/views/accessibility/ax_aura_obj_cache.cc +++ b/ui/views/accessibility/ax_aura_obj_cache.cc
@@ -10,7 +10,6 @@ #include "ui/aura/client/focus_client.h" #include "ui/aura/window.h" #include "ui/views/accessibility/ax_aura_obj_wrapper.h" -#include "ui/views/accessibility/ax_aura_window_utils.h" #include "ui/views/accessibility/ax_view_obj_wrapper.h" #include "ui/views/accessibility/ax_widget_obj_wrapper.h" #include "ui/views/accessibility/ax_window_obj_wrapper.h" @@ -144,15 +143,13 @@ if (!focused_window) return nullptr; - // SingleProcessMash may need to jump between ash and client windows. - AXAuraWindowUtils* window_utils = AXAuraWindowUtils::Get(); - focused_widget = window_utils->GetWidgetForNativeView(focused_window); + focused_widget = Widget::GetWidgetForNativeView(focused_window); while (!focused_widget) { focused_window = focused_window->parent(); if (!focused_window) break; - focused_widget = window_utils->GetWidgetForNativeView(focused_window); + focused_widget = Widget::GetWidgetForNativeView(focused_window); } }
diff --git a/ui/views/accessibility/ax_aura_obj_cache_unittest.cc b/ui/views/accessibility/ax_aura_obj_cache_unittest.cc index a301131..54a4aff 100644 --- a/ui/views/accessibility/ax_aura_obj_cache_unittest.cc +++ b/ui/views/accessibility/ax_aura_obj_cache_unittest.cc
@@ -3,11 +3,22 @@ // found in the LICENSE file. #include "ui/views/accessibility/ax_aura_obj_cache.h" + +#include "base/strings/utf_string_conversions.h" +#include "ui/accessibility/ax_enums.mojom.h" +#include "ui/accessibility/ax_node_data.h" +#include "ui/accessibility/ax_tree.h" +#include "ui/accessibility/ax_tree_serializer.h" +#include "ui/accessibility/ax_tree_source_checker.h" +#include "ui/aura/window.h" +#include "ui/gfx/geometry/rect.h" +#include "ui/gfx/geometry/size.h" +#include "ui/views/accessibility/ax_tree_source_views.h" +#include "ui/views/controls/button/label_button.h" #include "ui/views/test/widget_test.h" namespace views { namespace test { - namespace { // This class can be used as a deleter for std::unique_ptr<Widget> @@ -17,6 +28,19 @@ }; using WidgetAutoclosePtr = std::unique_ptr<Widget, WidgetCloser>; + +bool HasNodeWithName(ui::AXNode* node, const std::string& name) { + if (node->GetStringAttribute(ax::mojom::StringAttribute::kName) == name) + return true; + for (auto* child : node->children()) { + if (HasNodeWithName(child, name)) + return true; + } + return false; +} + +bool HasNodeWithName(const ui::AXTree& tree, const std::string& name) { + return HasNodeWithName(tree.root(), name); } class AXAuraObjCacheTest : public WidgetTest { @@ -57,5 +81,53 @@ delete parent; } +TEST_F(AXAuraObjCacheTest, ValidTree) { + // Create a parent window. + auto parent_widget = std::make_unique<Widget>(); + Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); + params.bounds = gfx::Rect(0, 0, 200, 200); + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + parent_widget->Init(params); + parent_widget->GetNativeWindow()->SetTitle( + base::ASCIIToUTF16("ParentWindow")); + parent_widget->Show(); + + // Create a child window. + Widget* child_widget = new Widget(); // Owned by parent_widget. + params = CreateParams(Widget::InitParams::TYPE_BUBBLE); + params.parent = parent_widget->GetNativeWindow(); + params.child = true; + params.bounds = gfx::Rect(100, 100, 200, 200); + params.ownership = views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET; + child_widget->Init(params); + child_widget->GetNativeWindow()->SetTitle(base::ASCIIToUTF16("ChildWindow")); + child_widget->Show(); + + // Create a child view. + auto* button = new LabelButton(nullptr, base::ASCIIToUTF16("ChildButton")); + button->SetSize(gfx::Size(20, 20)); + child_widget->GetContentsView()->AddChildView(button); + + // Use AXAuraObjCache to serialize the node tree. + AXAuraObjCache cache; + ui::AXTreeID tree_id = ui::AXTreeID::CreateNewAXTreeID(); + AXTreeSourceViews tree_source( + cache.GetOrCreate(parent_widget->GetNativeWindow()), tree_id, &cache); + ui::AXTreeSerializer<AXAuraObjWrapper*, ui::AXNodeData, ui::AXTreeData> + serializer(&tree_source); + ui::AXTreeUpdate serialized_tree; + serializer.SerializeChanges(tree_source.GetRoot(), &serialized_tree); + + // Verify tree is valid. + ui::AXTreeSourceChecker<AXAuraObjWrapper*, ui::AXNodeData, ui::AXTreeData> + checker(&tree_source); + EXPECT_TRUE(checker.Check()); + ui::AXTree ax_tree(serialized_tree); + EXPECT_TRUE(HasNodeWithName(ax_tree, "ParentWindow")); + EXPECT_TRUE(HasNodeWithName(ax_tree, "ChildWindow")); + EXPECT_TRUE(HasNodeWithName(ax_tree, "ChildButton")); +} + +} // namespace } // namespace test } // namespace views
diff --git a/ui/views/accessibility/ax_aura_window_utils.cc b/ui/views/accessibility/ax_aura_window_utils.cc deleted file mode 100644 index 9460788..0000000 --- a/ui/views/accessibility/ax_aura_window_utils.cc +++ /dev/null
@@ -1,49 +0,0 @@ -// Copyright 2018 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 "ui/views/accessibility/ax_aura_window_utils.h" - -#include "ui/views/widget/widget.h" - -namespace views { - -namespace { -AXAuraWindowUtils* g_instance = nullptr; -} - -AXAuraWindowUtils::~AXAuraWindowUtils() = default; - -// static -AXAuraWindowUtils* AXAuraWindowUtils::Get() { - if (!g_instance) - g_instance = new AXAuraWindowUtils(); - return g_instance; -} - -// static -void AXAuraWindowUtils::Set(std::unique_ptr<AXAuraWindowUtils> new_instance) { - if (g_instance) - delete g_instance; - g_instance = new_instance.release(); -} - -aura::Window* AXAuraWindowUtils::GetParent(aura::Window* window) { - return window->parent(); -} - -aura::Window::Windows AXAuraWindowUtils::GetChildren(aura::Window* window) { - return window->children(); -} - -bool AXAuraWindowUtils::IsRootWindow(aura::Window* window) const { - return window->IsRootWindow(); -} - -views::Widget* AXAuraWindowUtils::GetWidgetForNativeView(aura::Window* window) { - return Widget::GetWidgetForNativeView(window); -} - -AXAuraWindowUtils::AXAuraWindowUtils() = default; - -} // namespace views
diff --git a/ui/views/accessibility/ax_aura_window_utils.h b/ui/views/accessibility/ax_aura_window_utils.h deleted file mode 100644 index cd160f1..0000000 --- a/ui/views/accessibility/ax_aura_window_utils.h +++ /dev/null
@@ -1,44 +0,0 @@ -// Copyright 2018 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 UI_VIEWS_ACCESSIBILITY_AX_AURA_WINDOW_UTILS_H_ -#define UI_VIEWS_ACCESSIBILITY_AX_AURA_WINDOW_UTILS_H_ - -#include "ui/aura/window.h" -#include "ui/views/views_export.h" - -namespace views { -class Widget; - -// Singleton class that provides functions for walking a tree of aura::Windows -// for accessibility. in particular, for --single-process-mash we want the -// accessibility tree to jump from a proxy aura Window on the ash side direclty -// to its corresponding client window. This is just a temporary solution to -// that issue and should be removed once Mash is fully launched. -// crbug.com/911945 -// TODO(jamescook): Delete this. -class VIEWS_EXPORT AXAuraWindowUtils { - public: - virtual ~AXAuraWindowUtils(); - - static AXAuraWindowUtils* Get(); - - // Replace this global instance with a subclass. - static void Set(std::unique_ptr<AXAuraWindowUtils> new_instance); - - virtual aura::Window* GetParent(aura::Window* window); - virtual aura::Window::Windows GetChildren(aura::Window* window); - virtual bool IsRootWindow(aura::Window* window) const; - virtual views::Widget* GetWidgetForNativeView(aura::Window* window); - - protected: - AXAuraWindowUtils(); - - private: - DISALLOW_COPY_AND_ASSIGN(AXAuraWindowUtils); -}; - -} // namespace views - -#endif // UI_VIEWS_ACCESSIBILITY_AX_AURA_WINDOW_UTILS_H_
diff --git a/ui/views/accessibility/ax_aura_window_utils_unittest.cc b/ui/views/accessibility/ax_aura_window_utils_unittest.cc deleted file mode 100644 index 06970e20..0000000 --- a/ui/views/accessibility/ax_aura_window_utils_unittest.cc +++ /dev/null
@@ -1,170 +0,0 @@ -// Copyright 2018 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 "ui/views/accessibility/ax_aura_window_utils.h" - -#include "base/strings/utf_string_conversions.h" -#include "ui/accessibility/ax_enums.mojom.h" -#include "ui/accessibility/ax_node_data.h" -#include "ui/accessibility/ax_tree.h" -#include "ui/accessibility/ax_tree_id.h" -#include "ui/accessibility/ax_tree_serializer.h" -#include "ui/accessibility/ax_tree_source_checker.h" -#include "ui/gfx/geometry/rect.h" -#include "ui/gfx/geometry/size.h" -#include "ui/views/accessibility/ax_aura_obj_cache.h" -#include "ui/views/accessibility/ax_tree_source_views.h" -#include "ui/views/controls/button/label_button.h" -#include "ui/views/test/views_test_base.h" -#include "ui/views/view.h" -#include "ui/views/widget/widget.h" - -namespace views { -namespace { - -bool HasNodeWithName(ui::AXNode* node, const std::string& name) { - if (node->GetStringAttribute(ax::mojom::StringAttribute::kName) == name) - return true; - for (auto* child : node->children()) { - if (HasNodeWithName(child, name)) - return true; - } - return false; -} - -bool HasNodeWithName(ui::AXTree* tree, const std::string& name) { - return HasNodeWithName(tree->root(), name); -} - -// Subclass of AXAuraWindowUtils that skips any aura::Window named ParentWindow. -class TestAXAuraWindowUtils : public AXAuraWindowUtils { - public: - TestAXAuraWindowUtils() = default; - ~TestAXAuraWindowUtils() override = default; - - private: - aura::Window* GetParent(aura::Window* window) override { - aura::Window* parent = window->parent(); - if (parent && parent->GetTitle() == base::ASCIIToUTF16("ParentWindow")) - return parent->parent(); - return parent; - } - - aura::Window::Windows GetChildren(aura::Window* window) override { - auto children = window->children(); - if (children.size() == 1 && - children[0]->GetTitle() == base::ASCIIToUTF16("ParentWindow")) - return children[0]->children(); - return children; - } -}; - -using AuraAXTreeSerializer = ui:: - AXTreeSerializer<views::AXAuraObjWrapper*, ui::AXNodeData, ui::AXTreeData>; - -using AuraAXTreeSourceChecker = - ui::AXTreeSourceChecker<views::AXAuraObjWrapper*, - ui::AXNodeData, - ui::AXTreeData>; - -class AXAuraWindowUtilsTest : public ViewsTestBase { - public: - AXAuraWindowUtilsTest() = default; - ~AXAuraWindowUtilsTest() override = default; - - void SetUp() override { - ViewsTestBase::SetUp(); - - parent_widget_ = std::make_unique<Widget>(); - Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW); - params.bounds = gfx::Rect(0, 0, 200, 200); - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - parent_widget_->Init(params); - parent_widget_->GetNativeWindow()->SetTitle( - base::ASCIIToUTF16("ParentWindow")); - parent_widget_->Show(); - - child_widget_ = new Widget(); // Owned by parent_widget_. - params = CreateParams(Widget::InitParams::TYPE_BUBBLE); - params.parent = parent_widget_->GetNativeWindow(); - params.child = true; - params.bounds = gfx::Rect(100, 100, 200, 200); - params.ownership = views::Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET; - child_widget_->Init(params); - auto* button = new LabelButton(nullptr, base::ASCIIToUTF16("ChildButton")); - button->SetSize(gfx::Size(20, 20)); - child_widget_->GetContentsView()->AddChildView(button); - child_widget_->GetNativeWindow()->SetTitle( - base::ASCIIToUTF16("ChildWindow")); - child_widget_->Show(); - } - - void TearDown() override { - // Close and reset the parent widget. The child widget will be cleaned - // up automatically as it's owned by the parent widget. - if (!parent_widget_->IsClosed()) - parent_widget_->CloseNow(); - parent_widget_.reset(); - ViewsTestBase::TearDown(); - } - - protected: - std::unique_ptr<ui::AXTree> GetAccessibilityTreeFromWindow( - aura::Window* window) { - ui::AXTreeID tree_id = ui::AXTreeID::CreateNewAXTreeID(); - AXAuraObjCache cache; - AXTreeSourceViews tree_source(cache.GetOrCreate(window), tree_id, &cache); - AuraAXTreeSerializer serializer(&tree_source); - ui::AXTreeUpdate serialized_tree; - serializer.SerializeChanges(tree_source.GetRoot(), &serialized_tree); - - AuraAXTreeSourceChecker checker(&tree_source); - if (!checker.Check()) - return std::make_unique<ui::AXTree>(); - - // For debugging, run with --v=1. - VLOG(1) << serialized_tree.ToString(); - - return std::make_unique<ui::AXTree>(serialized_tree); - } - - std::unique_ptr<Widget> parent_widget_; - Widget* child_widget_ = nullptr; - - private: - DISALLOW_COPY_AND_ASSIGN(AXAuraWindowUtilsTest); -}; - -TEST_F(AXAuraWindowUtilsTest, GetHierarchy) { - aura::Window* window = child_widget_->GetNativeWindow(); - aura::Window* root = window->GetRootWindow(); - std::unique_ptr<ui::AXTree> ax_tree = GetAccessibilityTreeFromWindow(root); - - // For debugging, run with --v=1. - VLOG(1) << ax_tree->ToString(); - - EXPECT_TRUE(HasNodeWithName(ax_tree.get(), "ParentWindow")); - EXPECT_TRUE(HasNodeWithName(ax_tree.get(), "ChildWindow")); - EXPECT_TRUE(HasNodeWithName(ax_tree.get(), "ChildButton")); -} - -TEST_F(AXAuraWindowUtilsTest, GetHierarchyWithTestAuraWindowUtils) { - // TestAXAuraWindowUtils will skip over an aura::Window - // with a title of "ParentWindow". - AXAuraWindowUtils::Set(std::make_unique<TestAXAuraWindowUtils>()); - - aura::Window* window = child_widget_->GetNativeWindow(); - aura::Window* root = window->GetRootWindow(); - std::unique_ptr<ui::AXTree> ax_tree = GetAccessibilityTreeFromWindow(root); - - // For debugging, run with --v=1. - VLOG(1) << ax_tree->ToString(); - - EXPECT_FALSE(HasNodeWithName(ax_tree.get(), "ParentWindow")); - EXPECT_TRUE(HasNodeWithName(ax_tree.get(), "ChildWindow")); - EXPECT_TRUE(HasNodeWithName(ax_tree.get(), "ChildButton")); -} - -} // namespace -} // namespace views
diff --git a/ui/views/accessibility/ax_window_obj_wrapper.cc b/ui/views/accessibility/ax_window_obj_wrapper.cc index d13591bf..2150851 100644 --- a/ui/views/accessibility/ax_window_obj_wrapper.cc +++ b/ui/views/accessibility/ax_window_obj_wrapper.cc
@@ -14,7 +14,6 @@ #include "ui/aura/client/focus_client.h" #include "ui/aura/window.h" #include "ui/views/accessibility/ax_aura_obj_cache.h" -#include "ui/views/accessibility/ax_aura_window_utils.h" #include "ui/views/widget/widget.h" namespace views { @@ -44,7 +43,7 @@ aura::Window* window) : AXAuraObjWrapper(aura_obj_cache), window_(window), - is_root_window_(AXAuraWindowUtils::Get()->IsRootWindow(window)) { + is_root_window_(window->IsRootWindow()) { window->AddObserver(this); if (is_root_window_) @@ -60,7 +59,7 @@ } AXAuraObjWrapper* AXWindowObjWrapper::GetParent() { - aura::Window* parent = AXAuraWindowUtils::Get()->GetParent(window_); + aura::Window* parent = window_->parent(); if (!parent) return nullptr; @@ -69,8 +68,7 @@ void AXWindowObjWrapper::GetChildren( std::vector<AXAuraObjWrapper*>* out_children) { - aura::Window::Windows children = - AXAuraWindowUtils::Get()->GetChildren(window_); + aura::Window::Windows children = window_->children(); for (size_t i = 0; i < children.size(); ++i) { out_children->push_back(aura_obj_cache_->GetOrCreate(children[i])); } @@ -193,8 +191,7 @@ root_view->NotifyAccessibilityEvent(event_type, true); } - aura::Window::Windows children = - AXAuraWindowUtils::Get()->GetChildren(window); + aura::Window::Windows children = window->children(); for (size_t i = 0; i < children.size(); ++i) FireEvent(children[i], ax::mojom::Event::kLocationChanged); }
diff --git a/ui/views/accessibility/view_ax_platform_node_delegate.cc b/ui/views/accessibility/view_ax_platform_node_delegate.cc index bd98c05..9bef298 100644 --- a/ui/views/accessibility/view_ax_platform_node_delegate.cc +++ b/ui/views/accessibility/view_ax_platform_node_delegate.cc
@@ -388,6 +388,17 @@ return false; } +base::string16 ViewAXPlatformNodeDelegate::GetAuthorUniqueId() const { + const View* v = view(); + if (v) { + const int view_id = v->GetID(); + if (view_id) + return base::WideToUTF16(L"view_") + base::NumberToString16(view_id); + } + + return base::string16(); +} + const ui::AXUniqueId& ViewAXPlatformNodeDelegate::GetUniqueId() const { return ViewAccessibility::GetUniqueId(); }
diff --git a/ui/views/accessibility/view_ax_platform_node_delegate.h b/ui/views/accessibility/view_ax_platform_node_delegate.h index 455052d..bc16cfef 100644 --- a/ui/views/accessibility/view_ax_platform_node_delegate.h +++ b/ui/views/accessibility/view_ax_platform_node_delegate.h
@@ -61,6 +61,7 @@ bool AccessibilityPerformAction(const ui::AXActionData& data) override; bool ShouldIgnoreHoveredStateForTesting() override; bool IsOffscreen() const override; + base::string16 GetAuthorUniqueId() const override; // Also in |ViewAccessibility|. const ui::AXUniqueId& GetUniqueId() const override;
diff --git a/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc b/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc index 2ee0c91..7f57a11 100644 --- a/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc +++ b/ui/views/accessibility/view_ax_platform_node_delegate_unittest.cc
@@ -51,9 +51,11 @@ widget_->Init(params); button_ = new TestButton(); + button_->SetID(NON_DEFAULT_VIEW_ID); button_->SetSize(gfx::Size(20, 20)); label_ = new Label(); + label_->SetID(DEFAULT_VIEW_ID); button_->AddChildView(label_); widget_->GetContentsView()->AddChildView(button_); @@ -84,6 +86,9 @@ } protected: + const int DEFAULT_VIEW_ID = 0; + const int NON_DEFAULT_VIEW_ID = 1; + Widget* widget_ = nullptr; Button* button_ = nullptr; Label* label_ = nullptr; @@ -171,6 +176,15 @@ EXPECT_FALSE(SetFocused(button_accessibility(), true)); } +TEST_F(ViewAXPlatformNodeDelegateTest, GetAuthorUniqueIdDefault) { + ASSERT_EQ(base::WideToUTF16(L""), label_accessibility()->GetAuthorUniqueId()); +} + +TEST_F(ViewAXPlatformNodeDelegateTest, GetAuthorUniqueIdNonDefault) { + ASSERT_EQ(base::WideToUTF16(L"view_1"), + button_accessibility()->GetAuthorUniqueId()); +} + #if defined(USE_AURA) class DerivedTestView : public View { public:
diff --git a/ui/views/animation/ink_drop_host_view.cc b/ui/views/animation/ink_drop_host_view.cc index 8d2afbb..64a1451 100644 --- a/ui/views/animation/ink_drop_host_view.cc +++ b/ui/views/animation/ink_drop_host_view.cc
@@ -49,14 +49,8 @@ } void InkDropHostView::AddInkDropLayer(ui::Layer* ink_drop_layer) { - old_paint_to_layer_ = layer() != nullptr; - if (!old_paint_to_layer_) - SetPaintToLayer(); - - layer()->SetFillsBoundsOpaquely(false); InstallInkDropMask(ink_drop_layer); - layer()->Add(ink_drop_layer); - layer()->StackAtBottom(ink_drop_layer); + AddLayerBeneathView(ink_drop_layer); } void InkDropHostView::RemoveInkDropLayer(ui::Layer* ink_drop_layer) { @@ -65,11 +59,9 @@ // would be wrong. if (destroying_) return; - layer()->Remove(ink_drop_layer); + RemoveLayerBeneathView(ink_drop_layer); // Layers safely handle destroying a mask layer before the masked layer. ink_drop_mask_.reset(); - if (!old_paint_to_layer_) - DestroyLayer(); } std::unique_ptr<InkDrop> InkDropHostView::CreateInkDrop() {
diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h index cb9ef74..3087973 100644 --- a/ui/views/animation/ink_drop_host_view.h +++ b/ui/views/animation/ink_drop_host_view.h
@@ -225,10 +225,6 @@ int ink_drop_small_corner_radius_ = 2; int ink_drop_large_corner_radius_ = 4; - // Determines whether the view was already painting to layer before adding ink - // drop layer. - bool old_paint_to_layer_ = false; - bool destroying_ = false; std::unique_ptr<views::InkDropMask> ink_drop_mask_;
diff --git a/ui/views/animation/ink_drop_impl.cc b/ui/views/animation/ink_drop_impl.cc index 2c8b6c5..4830ecc 100644 --- a/ui/views/animation/ink_drop_impl.cc +++ b/ui/views/animation/ink_drop_impl.cc
@@ -630,7 +630,8 @@ // |root_layer_| should fill the entire host because it affects the clipping // when a mask layer is applied to it. This will not affect clipping if no // mask layer is set. - root_layer_->SetBounds(gfx::Rect(new_size)); + root_layer_->SetBounds(gfx::Rect(new_size) + + root_layer_->bounds().OffsetFromOrigin()); const bool create_ink_drop_ripple = !!ink_drop_ripple_; InkDropState state = GetTargetInkDropState();
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc index 4144b0c..25427f9 100644 --- a/ui/views/controls/button/label_button.cc +++ b/ui/views/controls/button/label_button.cc
@@ -6,6 +6,7 @@ #include <stddef.h> +#include <algorithm> #include <utility> #include "base/lazy_instance.h" @@ -60,8 +61,6 @@ SetTextInternal(text); AddChildView(ink_drop_container_); - ink_drop_container_->SetPaintToLayer(); - ink_drop_container_->layer()->SetFillsBoundsOpaquely(false); ink_drop_container_->SetVisible(false); AddChildView(image_); @@ -360,25 +359,25 @@ SchedulePaint(); } -void LabelButton::AddInkDropLayer(ui::Layer* ink_drop_layer) { - image()->SetPaintToLayer(); - image()->layer()->SetFillsBoundsOpaquely(false); - ink_drop_container_->AddInkDropLayer(ink_drop_layer); - InstallInkDropMask(ink_drop_layer); -} - -void LabelButton::RemoveInkDropLayer(ui::Layer* ink_drop_layer) { - image()->DestroyLayer(); - ResetInkDropMask(); - ink_drop_container_->RemoveInkDropLayer(ink_drop_layer); -} - void LabelButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { if (is_default()) node_data->AddState(ax::mojom::State::kDefault); Button::GetAccessibleNodeData(node_data); } +void LabelButton::AddLayerBeneathView(ui::Layer* new_layer) { + image()->SetPaintToLayer(); + image()->layer()->SetFillsBoundsOpaquely(false); + ink_drop_container()->SetVisible(true); + ink_drop_container()->AddLayerBeneathView(new_layer); +} + +void LabelButton::RemoveLayerBeneathView(ui::Layer* old_layer) { + ink_drop_container()->RemoveLayerBeneathView(old_layer); + ink_drop_container()->SetVisible(false); + image()->DestroyLayer(); +} + void LabelButton::StateChanged(ButtonState old_state) { const gfx::Size previous_image_size(image_->GetPreferredSize()); UpdateImage();
diff --git a/ui/views/controls/button/label_button.h b/ui/views/controls/button/label_button.h index 137b65a..4dc555db 100644 --- a/ui/views/controls/button/label_button.h +++ b/ui/views/controls/button/label_button.h
@@ -96,9 +96,9 @@ void Layout() override; const char* GetClassName() const override; void EnableCanvasFlippingForRTLUI(bool flip) override; - void AddInkDropLayer(ui::Layer* ink_drop_layer) override; - void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override; + void AddLayerBeneathView(ui::Layer* new_layer) override; + void RemoveLayerBeneathView(ui::Layer* old_layer) override; protected: ImageView* image() const { return image_; }
diff --git a/ui/views/metadata/metadata_types.h b/ui/views/metadata/metadata_types.h index a534b10..87427de 100644 --- a/ui/views/metadata/metadata_types.h +++ b/ui/views/metadata/metadata_types.h
@@ -176,10 +176,7 @@ // (so it will trigger things like property changed notifications). template <typename TClass, typename TValue, - void (TClass::*Set)( - typename std::conditional<std::is_fundamental<TValue>::value, - TValue, - const TValue&>::type), + void (TClass::*Set)(ArgType<TValue>), TValue (TClass::*Get)() const> class ClassPropertyMetaData : public ClassPropertyReadOnlyMetaData<TClass, TValue, Get> {
diff --git a/ui/views/metadata/type_conversion.cc b/ui/views/metadata/type_conversion.cc index 8e7de6b..e992d145 100644 --- a/ui/views/metadata/type_conversion.cc +++ b/ui/views/metadata/type_conversion.cc
@@ -23,59 +23,58 @@ } template <> -base::string16 ConvertToString<int8_t>(const int8_t& source_value) { +base::string16 ConvertToString<int8_t>(int8_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<int16_t>(const int16_t& source_value) { +base::string16 ConvertToString<int16_t>(int16_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<int32_t>(const int32_t& source_value) { +base::string16 ConvertToString<int32_t>(int32_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<int64_t>(const int64_t& source_value) { +base::string16 ConvertToString<int64_t>(int64_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<uint8_t>(const uint8_t& source_value) { +base::string16 ConvertToString<uint8_t>(uint8_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<uint16_t>(const uint16_t& source_value) { +base::string16 ConvertToString<uint16_t>(uint16_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<uint32_t>(const uint32_t& source_value) { +base::string16 ConvertToString<uint32_t>(uint32_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<uint64_t>(const uint64_t& source_value) { +base::string16 ConvertToString<uint64_t>(uint64_t source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<float>(const float& source_value) { +base::string16 ConvertToString<float>(float source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<double>(const double& source_value) { +base::string16 ConvertToString<double>(double source_value) { return base::NumberToString16(source_value); } template <> -base::string16 ConvertToString<bool>(const bool& source_value) { - return source_value ? base::ASCIIToUTF16("true") - : base::ASCIIToUTF16("false"); +base::string16 ConvertToString<bool>(bool source_value) { + return base::ASCIIToUTF16(source_value ? "true" : "false"); } template <>
diff --git a/ui/views/metadata/type_conversion.h b/ui/views/metadata/type_conversion.h index cc9068c..72700e3 100644 --- a/ui/views/metadata/type_conversion.h +++ b/ui/views/metadata/type_conversion.h
@@ -18,11 +18,21 @@ namespace views { namespace metadata { +// Various metadata methods pass types either by value or const ref depending on +// whether the types are "small" (defined as "fundamental, enum, or pointer"). +// ArgType<T> gives the appropriate type to use as an argument in such cases. +template <typename T> +using ArgType = typename std::conditional<std::is_fundamental<T>::value || + std::is_enum<T>::value || + std::is_pointer<T>::value, + T, + const T&>::type; + // TypeConverter Class -------------------------------------------------------- template <typename TSource, typename TTarget> class TypeConverter { public: - static TTarget Convert(const TSource& source_val) = delete; + static TTarget Convert(ArgType<TSource>) = delete; private: TypeConverter(); @@ -30,58 +40,51 @@ // Master Type Conversion Function -------------------------------------------- template <typename TSource, typename TTarget> -TTarget Convert(const TSource& source_value) { +TTarget Convert(ArgType<TSource> source_value) { return TypeConverter<TSource, TTarget>::Convert(source_value); } // String Conversions --------------------------------------------------------- template <typename TSource> -base::string16 ConvertToString(const TSource& source_value) = delete; +base::string16 ConvertToString(ArgType<TSource>) = delete; template <> VIEWS_EXPORT base::string16 ConvertToString<base::string16>( const base::string16& source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<int8_t>(const int8_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<int8_t>(int8_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<int16_t>( - const int16_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<int16_t>(int16_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<int32_t>( - const int32_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<int32_t>(int32_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<int64_t>( - const int64_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<int64_t>(int64_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<uint8_t>( - const uint8_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<uint8_t>(uint8_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<uint16_t>( - const uint16_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<uint16_t>(uint16_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<uint32_t>( - const uint32_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<uint32_t>(uint32_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<uint64_t>( - const uint64_t& source_value); +VIEWS_EXPORT base::string16 ConvertToString<uint64_t>(uint64_t source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<float>(const float& source_value); +VIEWS_EXPORT base::string16 ConvertToString<float>(float source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<double>(const double& source_value); +VIEWS_EXPORT base::string16 ConvertToString<double>(double source_value); template <> -VIEWS_EXPORT base::string16 ConvertToString<bool>(const bool& source_value); +VIEWS_EXPORT base::string16 ConvertToString<bool>(bool source_value); template <> VIEWS_EXPORT base::string16 ConvertToString<gfx::Size>( @@ -90,8 +93,8 @@ template <typename TSource> class TypeConverter<TSource, base::string16> { public: - static base::string16 Convert(const TSource& source_val) { - return ConvertToString<TSource>(source_val); + static base::string16 Convert(ArgType<TSource> source_value) { + return ConvertToString<TSource>(source_value); } };
diff --git a/ui/views/test/platform_test_helper_mus.cc b/ui/views/test/platform_test_helper_mus.cc index 5ce4676..ceb400ee 100644 --- a/ui/views/test/platform_test_helper_mus.cc +++ b/ui/views/test/platform_test_helper_mus.cc
@@ -147,14 +147,14 @@ .RequireCapability("*", "test") .Build()}); - service_manager::mojom::ServicePtr service; + service_manager::mojom::ServicePtrInfo service; default_service_binding_.Bind(mojo::MakeRequest(&service)); // The service name matches the name field in unittests_manifest.json. background_service_manager_->RegisterService( service_manager::Identity(kServiceName, service_manager::kSystemInstanceGroup, base::Token{}, base::Token::CreateRandom()), - std::move(service), nullptr); + std::move(service), mojo::NullReceiver()); service_manager_connector_ = default_service_binding_.GetConnector()->Clone(); service_manager_identity_ = default_service_binding_.identity();
diff --git a/ui/views/view.cc b/ui/views/view.cc index dbd2360..5e6b31e 100644 --- a/ui/views/view.cc +++ b/ui/views/view.cc
@@ -141,6 +141,9 @@ for (ViewObserver& observer : observers_) observer.OnViewIsDeleting(this); + + for (ui::Layer* layer_beneath : layers_beneath_) + layer_beneath->RemoveObserver(this); } // Tree operations ------------------------------------------------------------- @@ -504,6 +507,9 @@ layer()->SetTransform(transform); layer()->ScheduleDraw(); } + + for (ui::Layer* layer_beneath : layers_beneath_) + layer_beneath->SetTransform(transform); } void View::SetPaintToLayer(ui::LayerType layer_type) { @@ -530,6 +536,53 @@ CreateOrDestroyLayer(); } +void View::AddLayerBeneathView(ui::Layer* new_layer) { + DCHECK(new_layer); + DCHECK(!base::ContainsValue(layers_beneath_, new_layer)) + << "Layer already added."; + + new_layer->AddObserver(this); + new_layer->SetVisible(visible()); + layers_beneath_.push_back(new_layer); + + // If painting to a layer already, ensure |new_layer| gets added and stacked + // correctly. If not, this will happen on layer creation. + if (layer()) { + ui::Layer* parent_layer = layer()->parent(); + if (parent_layer) + parent_layer->Add(new_layer); + new_layer->SetBounds(gfx::Rect(new_layer->size()) + + layer()->bounds().OffsetFromOrigin()); + if (parent()) + parent()->ReorderLayers(); + } + + CreateOrDestroyLayer(); + + layer()->SetFillsBoundsOpaquely(false); +} + +void View::RemoveLayerBeneathView(ui::Layer* old_layer) { + auto layer_pos = + std::find(layers_beneath_.begin(), layers_beneath_.end(), old_layer); + DCHECK(layer_pos != layers_beneath_.end()) + << "Attempted to remove a layer that was never added."; + layers_beneath_.erase(layer_pos); + old_layer->RemoveObserver(this); + + ui::Layer* parent_layer = layer()->parent(); + if (parent_layer) + parent_layer->Remove(old_layer); + + CreateOrDestroyLayer(); +} + +void View::LayerDestroyed(ui::Layer* layer) { + // Only layers added with |AddLayerBeneathView()| are observed so |layer| can + // safely be removed. + RemoveLayerBeneathView(layer); +} + std::unique_ptr<ui::Layer> View::RecreateLayer() { std::unique_ptr<ui::Layer> old_layer = LayerOwner::RecreateLayer(); Widget* widget = GetWidget(); @@ -1625,6 +1678,9 @@ if (layer() && parent_layer != layer()) { parent_layer->Add(layer()); + for (ui::Layer* layer_beneath : layers_beneath_) + parent_layer->Add(layer_beneath); + SetLayerBounds(size(), local_offset_data); } else { internal::ScopedChildrenLock lock(this); @@ -1642,16 +1698,24 @@ } void View::UpdateChildLayerVisibility(bool ancestor_visible) { + const bool layers_visible = ancestor_visible && visible_; if (layer()) { - layer()->SetVisible(ancestor_visible && visible_); + layer()->SetVisible(layers_visible); + for (ui::Layer* layer_beneath : layers_beneath_) + layer_beneath->SetVisible(layers_visible); } else { internal::ScopedChildrenLock lock(this); for (auto* child : children_) - child->UpdateChildLayerVisibility(ancestor_visible && visible_); + child->UpdateChildLayerVisibility(layers_visible); } } void View::DestroyLayerImpl(LayerChangeNotifyBehavior notify_parents) { + // Normally, adding layers beneath will trigger painting to a layer. It would + // leave this view in an inconsistent state if its layer were destroyed while + // layers beneath were still present. So, assume this doesn't happen. + DCHECK(layers_beneath_.empty()); + if (!layer()) return; @@ -1730,7 +1794,8 @@ } void View::CreateOrDestroyLayer() { - if (paint_to_layer_explicitly_set_ || paint_to_layer_for_transform_) { + if (paint_to_layer_explicitly_set_ || paint_to_layer_for_transform_ || + !layers_beneath_.empty()) { // If we need to paint to a layer, make sure we have one. if (!layer()) CreateLayer(ui::LAYER_TEXTURED); @@ -1770,6 +1835,8 @@ if (layer() && layer() != parent_layer) { DCHECK_EQ(parent_layer, layer()->parent()); parent_layer->StackAtBottom(layer()); + for (ui::Layer* layer_beneath : layers_beneath_) + parent_layer->StackAtBottom(layer_beneath); } else { // Iterate backwards through the children so that a child with a layer // which is further to the back is stacked above one which is further to @@ -2258,12 +2325,19 @@ layer()->GetCompositor()) { if (layer()->GetCompositor()->is_pixel_canvas()) { layer()->SetSubpixelPositionOffset(offset_data.GetSubpixelOffset()); + for (ui::Layer* layer_beneath : layers_beneath_) + layer_beneath->SetSubpixelPositionOffset( + offset_data.GetSubpixelOffset()); } else { ui::SnapLayerToPhysicalPixelBoundary(layer()->parent(), layer()); + for (ui::Layer* layer_beneath : layers_beneath_) + ui::SnapLayerToPhysicalPixelBoundary(layer()->parent(), layer_beneath); } } else { // Reset the offset. layer()->SetSubpixelPositionOffset(gfx::Vector2dF()); + for (ui::Layer* layer_beneath : layers_beneath_) + layer_beneath->SetSubpixelPositionOffset(gfx::Vector2dF()); } } @@ -2332,7 +2406,12 @@ void View::SetLayerBounds(const gfx::Size& size, const LayerOffsetData& offset_data) { - layer()->SetBounds(gfx::Rect(size) + offset_data.offset()); + const gfx::Rect bounds = gfx::Rect(size) + offset_data.offset(); + layer()->SetBounds(bounds); + for (ui::Layer* layer_beneath : layers_beneath_) { + layer_beneath->SetBounds(gfx::Rect(layer_beneath->size()) + + bounds.OffsetFromOrigin()); + } SnapLayerToPixelBoundary(offset_data); } @@ -2452,8 +2531,12 @@ void View::OrphanLayers() { if (layer()) { - if (layer()->parent()) - layer()->parent()->Remove(layer()); + ui::Layer* parent = layer()->parent(); + if (parent) { + parent->Remove(layer()); + for (ui::Layer* layer_beneath : layers_beneath_) + parent->Remove(layer_beneath); + } // The layer belonging to this View has already been orphaned. It is not // necessary to orphan the child layers. @@ -2466,9 +2549,15 @@ void View::ReparentLayer(const gfx::Vector2d& offset, ui::Layer* parent_layer) { layer()->SetBounds(GetLocalBounds() + offset); + for (ui::Layer* layer_beneath : layers_beneath_) + layer_beneath->SetBounds(gfx::Rect(layer_beneath->size()) + offset); + DCHECK_NE(layer(), parent_layer); - if (parent_layer) + if (parent_layer) { parent_layer->Add(layer()); + for (ui::Layer* layer_beneath : layers_beneath_) + parent_layer->Add(layer_beneath); + } layer()->SchedulePaint(GetLocalBounds()); MoveLayerToParent(layer(), LayerOffsetData(layer()->device_scale_factor())); }
diff --git a/ui/views/view.h b/ui/views/view.h index 41aff91..b6e25b5c 100644 --- a/ui/views/view.h +++ b/ui/views/view.h
@@ -33,6 +33,7 @@ #include "ui/base/dragdrop/os_exchange_data.h" #include "ui/base/ui_base_types.h" #include "ui/compositor/layer_delegate.h" +#include "ui/compositor/layer_observer.h" #include "ui/compositor/layer_owner.h" #include "ui/compositor/paint_cache.h" #include "ui/events/event.h" @@ -268,6 +269,7 @@ // END_METADATA() ///////////////////////////////////////////////////////////////////////////// class VIEWS_EXPORT View : public ui::LayerDelegate, + public ui::LayerObserver, public ui::LayerOwner, public ui::AcceleratorTarget, public ui::EventTarget, @@ -604,6 +606,8 @@ // Sets the transform to the supplied transform. void SetTransform(const gfx::Transform& transform); + // Accelerated painting ------------------------------------------------------ + // Sets whether this view paints to a layer. A view paints to a layer if // either of the following are true: // . the view has a non-identity transform. @@ -621,6 +625,23 @@ // for another reason. void DestroyLayer(); + // Add or remove layers below this view. This view does not take ownership of + // the layers. It is the caller's responsibility to keep track of this View's + // size and update their layer accordingly. + // + // In very rare cases, it may be necessary to override these. If any of this + // view's contents must be painted to the same layer as its parent, or can't + // handle being painted with transparency, overriding might be appropriate. + // One example is LabelButton, where the label must paint below any added + // layers for subpixel rendering reasons. Overrides should be made + // judiciously, and generally they should just forward the calls to a child + // view. They must be overridden together for correctness. + virtual void AddLayerBeneathView(ui::Layer* new_layer); + virtual void RemoveLayerBeneathView(ui::Layer* old_layer); + + // ui::LayerObserver: + void LayerDestroyed(ui::Layer* layer) override; + // Overridden from ui::LayerOwner: std::unique_ptr<ui::Layer> RecreateLayer() override; @@ -1962,6 +1983,11 @@ // Whether we are painting to a layer because of a non-identity transform. bool paint_to_layer_for_transform_ = false; + // Set of layers that should be painted beneath this View's layer. These + // layers are maintained as siblings of this View's layer and are stacked + // beneath. + std::vector<ui::Layer*> layers_beneath_; + // Accelerators -------------------------------------------------------------- // Focus manager accelerators registered on.
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc index 0d86fda3..139df2a7 100644 --- a/ui/views/view_unittest.cc +++ b/ui/views/view_unittest.cc
@@ -34,6 +34,7 @@ #include "ui/compositor/layer_animator.h" #include "ui/compositor/paint_context.h" #include "ui/compositor/test/draw_waiter_for_test.h" +#include "ui/compositor/test/test_layers.h" #include "ui/events/event.h" #include "ui/events/event_utils.h" #include "ui/events/keycodes/keyboard_codes.h" @@ -4558,6 +4559,233 @@ EXPECT_EQ("0.00 0.00", ToString(v11->layer()->subpixel_position_offset())); } +TEST_F(ViewLayerTest, LayerBeneathTriggersPaintToLayer) { + View root; + root.SetPaintToLayer(); + + View* view = root.AddChildView(std::make_unique<View>()); + EXPECT_EQ(nullptr, view->layer()); + + ui::Layer layer1; + ui::Layer layer2; + view->AddLayerBeneathView(&layer1); + EXPECT_NE(nullptr, view->layer()); + view->AddLayerBeneathView(&layer2); + EXPECT_NE(nullptr, view->layer()); + + view->RemoveLayerBeneathView(&layer1); + EXPECT_NE(nullptr, view->layer()); + view->RemoveLayerBeneathView(&layer2); + EXPECT_EQ(nullptr, view->layer()); +} + +TEST_F(ViewLayerTest, LayerBeneathAddedToTree) { + View root; + root.SetPaintToLayer(); + + ui::Layer layer; + View* view = root.AddChildView(std::make_unique<View>()); + + view->AddLayerBeneathView(&layer); + ASSERT_NE(nullptr, view->layer()); + EXPECT_TRUE(view->layer()->parent()->Contains(&layer)); + + view->RemoveLayerBeneathView(&layer); + EXPECT_EQ(nullptr, layer.parent()); +} + +TEST_F(ViewLayerTest, LayerBeneathRemovedOnDestruction) { + View root; + root.SetPaintToLayer(); + + auto layer = std::make_unique<ui::Layer>(); + View* view = root.AddChildView(std::make_unique<View>()); + + // No assertions, just get coverage of deleting the layer while it is added. + view->AddLayerBeneathView(layer.get()); + layer.reset(); + root.RemoveChildView(view); + delete view; +} + +TEST_F(ViewLayerTest, LayerBeneathVisibilityUpdated) { + View root; + root.SetPaintToLayer(); + + ui::Layer layer; + + // Make a parent view that has no layer, and a child view that has a layer. + View* parent = root.AddChildView(std::make_unique<View>()); + View* child = parent->AddChildView(std::make_unique<View>()); + child->AddLayerBeneathView(&layer); + + EXPECT_EQ(nullptr, parent->layer()); + EXPECT_NE(nullptr, child->layer()); + + // Test setting the views' visbilities in various orders. + EXPECT_TRUE(layer.visible()); + child->SetVisible(false); + EXPECT_FALSE(layer.visible()); + child->SetVisible(true); + EXPECT_TRUE(layer.visible()); + + parent->SetVisible(false); + EXPECT_FALSE(layer.visible()); + parent->SetVisible(true); + EXPECT_TRUE(layer.visible()); + + parent->SetVisible(false); + EXPECT_FALSE(layer.visible()); + child->SetVisible(false); + EXPECT_FALSE(layer.visible()); + parent->SetVisible(true); + EXPECT_FALSE(layer.visible()); + child->SetVisible(true); + EXPECT_TRUE(layer.visible()); + + child->RemoveLayerBeneathView(&layer); + + // Now check the visibility upon adding. + child->SetVisible(false); + child->AddLayerBeneathView(&layer); + EXPECT_FALSE(layer.visible()); + child->SetVisible(true); + EXPECT_TRUE(layer.visible()); + + child->RemoveLayerBeneathView(&layer); +} + +TEST_F(ViewLayerTest, LayerBeneathHasCorrectBounds) { + View root; + root.SetBoundsRect(gfx::Rect(100, 100)); + root.SetPaintToLayer(); + + View* view = root.AddChildView(std::make_unique<View>()); + view->SetBoundsRect(gfx::Rect(25, 25, 50, 50)); + + // The layer's position will be changed, but its size should be respected. + ui::Layer layer; + layer.SetBounds(gfx::Rect(25, 25)); + + // First check when |view| is already painting to a layer. + view->SetPaintToLayer(); + view->AddLayerBeneathView(&layer); + EXPECT_NE(nullptr, layer.parent()); + EXPECT_EQ(gfx::Rect(25, 25, 25, 25), layer.bounds()); + + view->RemoveLayerBeneathView(&layer); + EXPECT_EQ(nullptr, layer.parent()); + layer.SetBounds(gfx::Rect(25, 25)); + + // Next check when |view| wasn't painting to a layer. + view->DestroyLayer(); + EXPECT_EQ(nullptr, view->layer()); + view->AddLayerBeneathView(&layer); + EXPECT_NE(nullptr, view->layer()); + EXPECT_NE(nullptr, layer.parent()); + EXPECT_EQ(gfx::Rect(25, 25, 25, 25), layer.bounds()); + + // Finally check that moving |view| also moves the layer. + view->SetBoundsRect(gfx::Rect(50, 50, 50, 50)); + EXPECT_EQ(gfx::Rect(50, 50, 25, 25), layer.bounds()); + + view->RemoveLayerBeneathView(&layer); +} + +TEST_F(ViewLayerTest, LayerBeneathTransformed) { + View root; + root.SetPaintToLayer(); + + ui::Layer layer; + View* view = root.AddChildView(std::make_unique<View>()); + view->SetPaintToLayer(); + view->AddLayerBeneathView(&layer); + EXPECT_TRUE(layer.transform().IsIdentity()); + + gfx::Transform transform; + transform.Rotate(90); + view->SetTransform(transform); + EXPECT_EQ(transform, layer.transform()); + view->SetTransform(gfx::Transform()); + EXPECT_TRUE(layer.transform().IsIdentity()); +} + +TEST_F(ViewLayerTest, LayerBeneathStackedCorrectly) { + using ui::test::ChildLayerNamesAsString; + + View root; + root.SetPaintToLayer(); + + ui::Layer layer; + layer.set_name("layer"); + + View* v1 = root.AddChildView(std::make_unique<View>()); + View* v2 = root.AddChildView(std::make_unique<View>()); + View* v3 = root.AddChildView(std::make_unique<View>()); + + // Check that |layer| is stacked correctly as we add more layers to the tree. + v2->AddLayerBeneathView(&layer); + v2->layer()->set_name("v2"); + EXPECT_EQ(ChildLayerNamesAsString(*root.layer()), "layer v2"); + v3->SetPaintToLayer(); + v3->layer()->set_name("v3"); + EXPECT_EQ(ChildLayerNamesAsString(*root.layer()), "layer v2 v3"); + v1->SetPaintToLayer(); + v1->layer()->set_name("v1"); + EXPECT_EQ(ChildLayerNamesAsString(*root.layer()), "v1 layer v2 v3"); + + v2->RemoveLayerBeneathView(&layer); +} + +TEST_F(ViewLayerTest, LayerBeneathOrphanedOnRemoval) { + View root; + root.SetPaintToLayer(); + + ui::Layer layer; + View* view = root.AddChildView(std::make_unique<View>()); + view->AddLayerBeneathView(&layer); + EXPECT_EQ(layer.parent(), root.layer()); + + // Ensure that the layer beneath is orphaned and re-parented appropriately. + root.RemoveChildView(view); + EXPECT_EQ(layer.parent(), nullptr); + root.AddChildView(view); + EXPECT_EQ(layer.parent(), root.layer()); + + view->RemoveLayerBeneathView(&layer); +} + +TEST_F(ViewLayerTest, LayerBeneathMovedWithView) { + using ui::test::ChildLayerNamesAsString; + + View root; + root.SetPaintToLayer(); + root.layer()->set_name("root"); + + ui::Layer layer; + layer.set_name("layer"); + + View* v1 = root.AddChildView(std::make_unique<View>()); + View* v2 = root.AddChildView(std::make_unique<View>()); + View* v3 = v1->AddChildView(std::make_unique<View>()); + + v1->SetPaintToLayer(); + v1->layer()->set_name("v1"); + v2->SetPaintToLayer(); + v2->layer()->set_name("v2"); + v3->SetPaintToLayer(); + v3->layer()->set_name("v3"); + + // Verify that |layer| is stacked correctly. + v3->AddLayerBeneathView(&layer); + EXPECT_EQ(ChildLayerNamesAsString(*v1->layer()), "layer v3"); + + // Move |v3| to under |v2| and check |layer|'s stacking. + v1->RemoveChildView(v3); + v2->AddChildView(std::unique_ptr<View>(v3)); + EXPECT_EQ(ChildLayerNamesAsString(*v2->layer()), "layer v3"); +} + namespace { class PaintLayerView : public View {
diff --git a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.html b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.html index 9504afa..8187937 100644 --- a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.html +++ b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.html
@@ -4,6 +4,7 @@ <link rel="import" href="../cr_icons_css.html"> <link rel="import" href="../cr_toolbar/cr_toolbar_search_field.html"> <link rel="import" href="../hidden_style_css.html"> +<link rel="import" href="../icons.html"> <link rel="import" href="../shared_vars_css.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-media-query/iron-media-query.html"> @@ -54,9 +55,8 @@ } cr-icon-button { - --cr-icon-button-size: 32px; + --cr-icon-button-size: 32px; min-width: 32px; - padding: 6px 0; } :host-context(html:not([dark])) cr-icon-button { @@ -144,24 +144,14 @@ padding: 0; width: 20px; } - - #menuButton { - -webkit-mask-image: url(../../images/icon_toolbar_menu.svg); - -webkit-mask-position: center; - -webkit-mask-repeat: no-repeat; - background: currentColor; - } - - :host-context([dark]) #menuButton { - -webkit-mask-image: url(../../images/dark/icon_toolbar_menu.svg); - } </style> <div id="leftContent"> <div id="leftSpacer"> <!-- Note: showing #menuPromo relies on this dom-if being [restamp]. --> <template is="dom-if" if="[[showMenu]]" restamp> - <cr-icon-button id="menuButton" class="icon-toolbar-menu no-overlap" - on-click="onMenuTap_" aria-label$="[[menuLabel]]" + <cr-icon-button id="menuButton" class="no-overlap" + iron-icon="cr20:menu" on-click="onMenuTap_" + aria-label$="[[menuLabel]]" title="[[titleIfNotShowMenuPromo_(menuLabel, showMenuPromo)]]"> </cr-icon-button> <template is="dom-if" if="[[showMenuPromo]]">
diff --git a/ui/webui/resources/cr_elements/icons.html b/ui/webui/resources/cr_elements/icons.html index b42ef7c..e072289 100644 --- a/ui/webui/resources/cr_elements/icons.html +++ b/ui/webui/resources/cr_elements/icons.html
@@ -19,6 +19,7 @@ --> <g id="domain"><path d="M2,3 L2,17 L11.8267655,17 L13.7904799,17 L18,17 L18,7 L12,7 L12,3 L2,3 Z M8,13 L10,13 L10,15 L8,15 L8,13 Z M4,13 L6,13 L6,15 L4,15 L4,13 Z M8,9 L10,9 L10,11 L8,11 L8,9 Z M4,9 L6,9 L6,11 L4,11 L4,9 Z M12,9 L16,9 L16,15 L12,15 L12,9 Z M12,11 L14,11 L14,13 L12,13 L12,11 Z M8,5 L10,5 L10,7 L8,7 L8,5 Z M4,5 L6,5 L6,7 L4,7 L4,5 Z"></path></g> <g id="kite"><path d="M 10.32 2 L 4.63 8 l 4.92 7.5 l -0.4 0.6 c -0.04 0.07 -0.09 0.12 -0.14 0.18 c -0.24 0.25 -0.56 0.39 -0.9 0.39 c -0.34 0 -0.65 -0.13 -0.9 -0.39 a 1.35 1.35 0 0 1 -0.37 -0.94 a 2.72 2.72 0 0 0 -0.74 -1.88 a 2.44 2.44 0 0 0 -1.78 -0.78 H 4 v 1.38 h 0.33 c 0.34 0 0.65 0.14 0.9 0.39 c 0.24 0.26 0.37 0.59 0.37 0.95 c 0 0.71 0.26 1.38 0.74 1.88 c 0.48 0.5 1.11 0.78 1.78 0.78 c 0.67 0 1.31 -0.28 1.78 -0.78 c 0.11 -0.11 0.2 -0.23 0.28 -0.35 l 1.27 -1.94 L 16 8 L 10.32 2 z"></path></g> + <g id="menu"><path d="M2 4h16v2H2zM2 9h16v2H2zM2 14h16v2H2z"></path></g> </svg> </iron-iconset-svg> <iron-iconset-svg name="cr" size="24">
diff --git a/ui/webui/resources/cr_elements_images.grdp b/ui/webui/resources/cr_elements_images.grdp index c80227d4..397b634 100644 --- a/ui/webui/resources/cr_elements_images.grdp +++ b/ui/webui/resources/cr_elements_images.grdp
@@ -46,9 +46,6 @@ <include name="IDR_WEBUI_IMAGES_DARK_ICON_TOOLBAR_CANCEL" file="images/dark/icon_toolbar_cancel.svg" type="BINDATA" compress="gzip" /> - <include name="IDR_WEBUI_IMAGES_DARK_ICON_TOOLBAR_MENU" - file="images/dark/icon_toolbar_menu.svg" type="BINDATA" - compress="gzip" /> <include name="IDR_WEBUI_IMAGES_DARK_ICON_VISIBILITY" file="images/dark/icon_visibility.svg" type="BINDATA" compress="gzip" /> @@ -86,8 +83,6 @@ <include name="IDR_WEBUI_IMAGES_ICON_TOOLBAR_CANCEL" file="images/icon_toolbar_cancel.svg" type="BINDATA" compress="gzip" /> - <include name="IDR_WEBUI_IMAGES_ICON_TOOLBAR_MENU" - file="images/icon_toolbar_menu.svg" type="BINDATA" compress="gzip" /> <include name="IDR_WEBUI_IMAGES_ICON_VISIBILITY" file="images/icon_visibility.svg" type="BINDATA" compress="gzip" /> <include name="IDR_WEBUI_IMAGES_ICON_VISIBILITY_OFF"
diff --git a/ui/webui/resources/images/dark/icon_toolbar_menu.svg b/ui/webui/resources/images/dark/icon_toolbar_menu.svg deleted file mode 100644 index a6b5887..0000000 --- a/ui/webui/resources/images/dark/icon_toolbar_menu.svg +++ /dev/null
@@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#e8eaed"><path d="M2 4h16v2H2zM2 9h16v2H2zM2 14h16v2H2z"/></svg> \ No newline at end of file
diff --git a/ui/webui/resources/images/icon_toolbar_menu.svg b/ui/webui/resources/images/icon_toolbar_menu.svg deleted file mode 100644 index bfbb9f96..0000000 --- a/ui/webui/resources/images/icon_toolbar_menu.svg +++ /dev/null
@@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="#fff"><path d="M2 4h16v2H2zM2 9h16v2H2zM2 14h16v2H2z"/></svg> \ No newline at end of file