2017-02-22 22:05:50 +03:00
|
|
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
#ifndef mozilla_dom_FuzzingFunctions
|
|
|
|
#define mozilla_dom_FuzzingFunctions
|
|
|
|
|
2018-10-02 15:16:45 +03:00
|
|
|
#include "mozilla/EventForwards.h"
|
|
|
|
|
|
|
|
class nsIWidget;
|
|
|
|
|
2017-02-22 22:05:50 +03:00
|
|
|
namespace mozilla {
|
2017-12-21 02:54:13 +03:00
|
|
|
|
|
|
|
class ErrorResult;
|
2018-10-02 15:16:45 +03:00
|
|
|
class TextInputProcessor;
|
2017-12-21 02:54:13 +03:00
|
|
|
|
2017-02-22 22:05:50 +03:00
|
|
|
namespace dom {
|
|
|
|
|
|
|
|
class GlobalObject;
|
2018-10-02 15:16:45 +03:00
|
|
|
struct KeyboardEventInit;
|
2017-02-22 22:05:50 +03:00
|
|
|
|
|
|
|
class FuzzingFunctions final {
|
|
|
|
public:
|
|
|
|
static void GarbageCollect(const GlobalObject&);
|
|
|
|
|
2020-11-30 05:15:38 +03:00
|
|
|
static void GarbageCollectCompacting(const GlobalObject&);
|
|
|
|
|
2021-09-15 21:24:04 +03:00
|
|
|
static void Crash(const GlobalObject& aGlobalObject,
|
|
|
|
const nsAString& aKeyValue);
|
|
|
|
|
2017-02-22 22:05:50 +03:00
|
|
|
static void CycleCollect(const GlobalObject&);
|
2020-11-30 05:15:38 +03:00
|
|
|
|
|
|
|
static void MemoryPressure(const GlobalObject&);
|
2017-11-17 00:42:39 +03:00
|
|
|
|
2022-05-05 18:39:24 +03:00
|
|
|
static void SignalIPCReady(const GlobalObject&);
|
|
|
|
|
2017-11-17 00:42:39 +03:00
|
|
|
static void EnableAccessibility(const GlobalObject&, ErrorResult& aRv);
|
2018-10-02 15:16:45 +03:00
|
|
|
|
Bug 1685491 - part 5: Move the code remapping arrow keys in vertical content to `NativeKeyBindings` r=smaug,jfkthame
Currently, this feature is implemented only on Linux and macOS (see also
bug 1077515 and bug 1301497), and the code is really similar each other.
Additionally, it always tries to query selection to check whether the caret is
in vertical content or not if arrow keys are pressed. For avoiding a lot of
query, this patch makes `TextEventDispatcher` cache writing mode at every
selection change notification. However, unfortunately, it's not available when
non-editable content has focus, but it should be out of scope of this bug since
it requires a lot of changes.
Anyway, with this patch, we can write a mochitest only on Linux and macOS.
The following patch adds a test for this as a fix of bug 1103374.
Differential Revision: https://phabricator.services.mozilla.com/D102881
2021-02-02 06:29:31 +03:00
|
|
|
MOZ_CAN_RUN_SCRIPT_BOUNDARY static void SynthesizeKeyboardEvents(
|
|
|
|
const GlobalObject& aGlobalObject, const nsAString& aKeyValue,
|
|
|
|
const KeyboardEventInit& aKeyboardEvent, ErrorResult& aRv);
|
2018-10-02 15:16:45 +03:00
|
|
|
|
|
|
|
private:
|
|
|
|
/**
|
|
|
|
* ActivateModifiers() activates aModifiers in the TextInputProcessor.
|
|
|
|
*
|
|
|
|
* @param aTextInputProcessor The TIP whose modifier state you want to change.
|
|
|
|
* @param aModifiers Modifiers which you want to activate.
|
|
|
|
* @param aWidget The widget which should be set to
|
|
|
|
* WidgetKeyboardEvent.
|
|
|
|
* @param aRv Returns error if TextInputProcessor fails to
|
|
|
|
* dispatch a modifier key event.
|
|
|
|
* @return Modifiers which are activated by the call.
|
|
|
|
*/
|
Bug 1685491 - part 5: Move the code remapping arrow keys in vertical content to `NativeKeyBindings` r=smaug,jfkthame
Currently, this feature is implemented only on Linux and macOS (see also
bug 1077515 and bug 1301497), and the code is really similar each other.
Additionally, it always tries to query selection to check whether the caret is
in vertical content or not if arrow keys are pressed. For avoiding a lot of
query, this patch makes `TextEventDispatcher` cache writing mode at every
selection change notification. However, unfortunately, it's not available when
non-editable content has focus, but it should be out of scope of this bug since
it requires a lot of changes.
Anyway, with this patch, we can write a mochitest only on Linux and macOS.
The following patch adds a test for this as a fix of bug 1103374.
Differential Revision: https://phabricator.services.mozilla.com/D102881
2021-02-02 06:29:31 +03:00
|
|
|
MOZ_CAN_RUN_SCRIPT static Modifiers ActivateModifiers(
|
|
|
|
TextInputProcessor* aTextInputProcessor, Modifiers aModifiers,
|
|
|
|
nsIWidget* aWidget, ErrorResult& aRv);
|
2018-10-02 15:16:45 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* InactivateModifiers() inactivates aModifiers in the TextInputProcessor.
|
|
|
|
*
|
|
|
|
* @param aTextInputProcessor The TIP whose modifier state you want to change.
|
|
|
|
* @param aModifiers Modifiers which you want to inactivate.
|
|
|
|
* @param aWidget The widget which should be set to
|
|
|
|
* WidgetKeyboardEvent.
|
|
|
|
* @param aRv Returns error if TextInputProcessor fails to
|
|
|
|
* dispatch a modifier key event.
|
|
|
|
* @return Modifiers which are inactivated by the call.
|
|
|
|
*/
|
Bug 1685491 - part 5: Move the code remapping arrow keys in vertical content to `NativeKeyBindings` r=smaug,jfkthame
Currently, this feature is implemented only on Linux and macOS (see also
bug 1077515 and bug 1301497), and the code is really similar each other.
Additionally, it always tries to query selection to check whether the caret is
in vertical content or not if arrow keys are pressed. For avoiding a lot of
query, this patch makes `TextEventDispatcher` cache writing mode at every
selection change notification. However, unfortunately, it's not available when
non-editable content has focus, but it should be out of scope of this bug since
it requires a lot of changes.
Anyway, with this patch, we can write a mochitest only on Linux and macOS.
The following patch adds a test for this as a fix of bug 1103374.
Differential Revision: https://phabricator.services.mozilla.com/D102881
2021-02-02 06:29:31 +03:00
|
|
|
MOZ_CAN_RUN_SCRIPT static Modifiers InactivateModifiers(
|
|
|
|
TextInputProcessor* aTextInputProcessor, Modifiers aModifiers,
|
|
|
|
nsIWidget* aWidget, ErrorResult& aRv);
|
2017-02-22 22:05:50 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace dom
|
|
|
|
} // namespace mozilla
|
|
|
|
|
|
|
|
#endif // mozilla_dom_FuzzingFunctions
|