author Masayuki Nakano <>
Wed, 03 Oct 2018 09:21:47 +0000
changeset 497850 fea8e039767a88ebfb73b1f0d43d1f87ee7394e1
parent 476782 79a77332a9e515bfae5e1807b5c57be7cec7c83a
child 499785 b705d158c204ff95d5266579de576eaa190988a0
permissions -rw-r--r--
Bug 1343955 - part 2: Implement _guessCodeFromKeyName() in EventUtils.js with C++ and make it accessible with nsITextInputProcessor for EventUtils.js r=smaug We need to port synthesizeKey() of EventUtils.js to FuzzingFunctions. So, its helper function, _guessCodeFromKeyName() in EventUtils.js needs to be accessible from FuzzingFunctions. Therefore, we need to reimplement it with C++ and make it accessible via nsITextInputProcessor for EventUtils.js for making easier to maintain. This patch moves _guessCodeFromKeyName() into TextInputProcessor and WidgetKeyboardEvent. Non-printable key part of _guessCodeFromKeyName() is moved to WidgetKeyboardEvent::ComputeCodeNameIndexFromKeyNameIndex() because of not depending on active keyboard layout. On the other hand, printable key part needs to assume that active keyboard layout is en-US keyboard layout. Therefore, it's moved to TextInputProcessor::GuessCodeValueOfPrintableKeyInUSEnglishKeyboardLayout() because any Core code shouldn't refer it as utility method for keeping that we're i18n-aware. Differential Revision:

/* List of defines generated by configure. Included with preprocessor flag,
 * -include, to avoid long list of -D defines on the compile command-line.
 * Do not edit.


#if defined(__clang__)
#pragma clang diagnostic push
#if __has_warning("-Wreserved-id-macro")
#pragma clang diagnostic ignored "-Wreserved-id-macro"

/* Expands to all the defines from configure. */

 * The c99 defining the limit macros (UINT32_MAX for example), says:
 *   C++ implementations should define these macros only when
 *   __STDC_LIMIT_MACROS is defined before <stdint.h> is included.
 * The same also occurs with __STDC_CONSTANT_MACROS for the constant macros
 * (INT8_C for example) used to specify a literal constant of the proper type,
 * and with __STDC_FORMAT_MACROS for the format macros (PRId32 for example) used
 * with the fprintf function family.
#if !defined(__STDC_FORMAT_MACROS)

#if defined(__clang__)
#pragma clang diagnostic pop

 * Force-include sdkdecls.h for building the chromium sandbox code.
 * CHROMIUM_SANDBOX_BUILD is defined in security/sandbox/
 * Note that this include path relies on the LOCAL_INCLUDES in that file.
#if defined(CHROMIUM_SANDBOX_BUILD) && defined(XP_WIN)
#include "base/win/sdkdecls.h"

#ifdef __MINGW32__
 * MinGW doesn't support __try / __except. There are a few mechanisms available
 * to hack around it and pseudo-support it, but these are untested in Firefox.
 * What is tested (and works) is replacing them with if(true) and else.
#define __try if(true)
#define __except(x) else

#endif /* __MINGW32__ */
#endif /* defined(CHROMIUM_SANDBOX_BUILD) && defined(XP_WIN) */

#endif /* MOZILLA_CONFIG_H */