Commit Graph
100 Commits
Author SHA1 Message Date
Sylvestre Ledru 5bd4bc54a3 Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,media-playback-reviewers,padenot
clang-format version 17.0.6 (taskcluster-QueHFUviQeyM8Y7r_d7MQQ)

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D195397
2023-12-04 10:09:36 +00:00
Masatoshi Kimura a3e419385e Bug 1844908 - Remove pre-Win10-specific codepath from widget/. r=handyman
Differential Revision: https://phabricator.services.mozilla.com/D184307
2023-07-26 08:52:54 +00:00
Natalia Csoregi 42e803a2dd Backed out 19 changesets (bug 1844908) for causing win bustage on AvailableMemoryTracker.cpp. CLOSED TREE
Backed out changeset 44c66f2233cf (bug 1844908)
Backed out changeset a8010ff534bf (bug 1844908)
Backed out changeset 225dc3aeb220 (bug 1844908)
Backed out changeset a1414db64e33 (bug 1844908)
Backed out changeset 7f1e0a527839 (bug 1844908)
Backed out changeset 6dc7646d1ffa (bug 1844908)
Backed out changeset 8d715131510f (bug 1844908)
Backed out changeset 4b6fe8a4e7db (bug 1844908)
Backed out changeset 2b419fabf1e8 (bug 1844908)
Backed out changeset af84e701d616 (bug 1844908)
Backed out changeset 2fa203969ec5 (bug 1844908)
Backed out changeset 2b3d2df94db3 (bug 1844908)
Backed out changeset 7eca452f5fd7 (bug 1844908)
Backed out changeset 3d961cf25afe (bug 1844908)
Backed out changeset 3c59143f8dd7 (bug 1844908)
Backed out changeset ab50c6c5425a (bug 1844908)
Backed out changeset b2c5636df673 (bug 1844908)
Backed out changeset e9a0f1c6760c (bug 1844908)
Backed out changeset 945ccbedde0b (bug 1844908)
2023-07-25 19:55:35 +03:00
Masatoshi Kimura 4182954d50 Bug 1844908 - Remove pre-Win10-specific codepath from widget/. r=handyman
Differential Revision: https://phabricator.services.mozilla.com/D184307
2023-07-25 14:41:05 +00:00
Razvan Cojocaru 363946e17f Bug 1060421 - Change the type of [Int]PointTyped::[x|y] back to [Int]CoordTyped. r=botond
[Int]CoordTyped no longer inherits Units because otherwise
instances of [Int]IntPointTyped may get one Base subobject because
it inherits Units, and others because of BasePoint's Coord members,
which end up increasing the [Int]CoordTyped's objects size (since
according to the ISO C++ standard, different Base subobject are
required to have different addresses).

Differential Revision: https://phabricator.services.mozilla.com/D160713
2022-11-04 18:29:35 +00:00
Nika Layzell 63a28ee824 Bug 1772006 - Part 5: Simplify and move the string searching APIs from ns[T]StringObsolete, r=xpcom-reviewers,necko-reviewers,eeejay,dragana,barret
The biggest set of APIs from ns[T]StringObsolete which are still heavily used
are the string searching APIs. It appears the intention was for these to be
replaced by the `FindInReadable` APIs, however that doesn't appear to have
happened.

In addition, the APIs have some quirks around their handling of mixed character
widths. These APIs generally supported both narrow strings and the native
string type, probably because char16_t string literals weren't available until
c++11. Finally they also used easy-to-confuse unlabeled boolean and integer
optional arguments to control behaviour.

These patches do the following major changes to the searching APIs:

1. The ASCII case-insensitive search method was split out as
   LowerCaseFindASCII, rather than using a boolean. This should be less
   error-prone and more explicit, and allows the method to continue to use
   narrow string literals for all string types (as only ASCII is supported).
2. The other [R]Find methods were restricted to only support arguments with
   matching character types. I considered adding a FindASCII method which would
   use narrow string literals for both wide and narrow strings but it would've
   been the same amount of work as changing all of the literals to unicode
   literals.
   This ends up being the bulk of the changes in the patch.
3. All find methods were re-implemented using std::basic_string_view's find
   algorithm or stl algorithms to reduce code complexity, and avoid the need to
   carry around the logic from nsStringObsolete.cpp.
4. The implementations were moved to nsTStringRepr.cpp.
5. An overload of Find was added to try to catch callers which previously
   called `Find(..., false)` or `Find(..., true)` to set case-sensitivity, due
   to booleans normally implicitly coercing to `index_type`. This should
   probably be removed at some point, but may be useful during the transition.

Differential Revision: https://phabricator.services.mozilla.com/D148300
2022-07-30 00:12:48 +00:00
criss c1b045ddda Backed out 9 changesets (bug 1772006) causing build bustages on nsTString.cpp. CLOSED TREE
Backed out changeset f17c7565707b (bug 1772006)
Backed out changeset c725fe1f5882 (bug 1772006)
Backed out changeset d19663161261 (bug 1772006)
Backed out changeset b6611ab002d9 (bug 1772006)
Backed out changeset 790f42b64af9 (bug 1772006)
Backed out changeset 79a734b4e4d9 (bug 1772006)
Backed out changeset 42730aae16ea (bug 1772006)
Backed out changeset b2542aef3054 (bug 1772006)
Backed out changeset 962bfea4a309 (bug 1772006)
2022-06-11 01:13:42 +03:00
Nika Layzell c1e4a1e52c Bug 1772006 - Part 6: Simplify and move the string searching APIs from ns[T]StringObsolete, r=xpcom-reviewers,necko-reviewers,eeejay,dragana,barret
The biggest set of APIs from ns[T]StringObsolete which are still heavily used
are the string searching APIs. It appears the intention was for these to be
replaced by the `FindInReadable` APIs, however that doesn't appear to have
happened.

In addition, the APIs have some quirks around their handling of mixed character
widths. These APIs generally supported both narrow strings and the native
string type, probably because char16_t string literals weren't available until
c++11. Finally they also used easy-to-confuse unlabeled boolean and integer
optional arguments to control behaviour.

These patches do the following major changes to the searching APIs:

1. The ASCII case-insensitive search method was split out as
   LowerCaseFindASCII, rather than using a boolean. This should be less
   error-prone and more explicit, and allows the method to continue to use
   narrow string literals for all string types (as only ASCII is supported).
2. The other [R]Find methods were restricted to only support arguments with
   matching character types. I considered adding a FindASCII method which would
   use narrow string literals for both wide and narrow strings but it would've
   been the same amount of work as changing all of the literals to unicode
   literals.
   This ends up being the bulk of the changes in the patch.
3. All find methods were re-implemented using std::basic_string_view's find
   algorithm or stl algorithms to reduce code complexity, and avoid the need to
   carry around the logic from nsStringObsolete.cpp.
4. The implementations were moved to nsTStringRepr.cpp.
5. An overload of Find was added to try to catch callers which previously
   called `Find(..., false)` or `Find(..., true)` to set case-sensitivity, due
   to booleans normally implicitly coercing to `index_type`. This should
   probably be removed at some point, but may be useful during the transition.

Differential Revision: https://phabricator.services.mozilla.com/D148300
2022-06-10 21:12:08 +00:00
Mike Hommey 4e33cd6454 Bug 1766561 - Fix various formatting errors. r=media-playback-reviewers,gfx-reviewers,nika,necko-reviewers,rkraesig,alwu,padenot,kershaw
- Missing/Extra formatting directives
- Typos in formatting directives
- Non-literal strings used as formatting strings
- Wrong types passed as argument
- Swapped/Wrong arguments
- Commas between parts of unique formatting strings

Differential Revision: https://phabricator.services.mozilla.com/D144921
2022-05-03 20:49:10 +00:00
Mike Hommey aa2063e939 Bug 1766561 - Use proper formatting directives in various places. r=gfx-reviewers,nika,necko-reviewers,mhowell,rkraesig,bytesized,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D144920
2022-05-03 20:49:09 +00:00
Mike Hommey 23680a25fd Bug 1766561 - Add missing l modifier for long formatting. r=Jamie,media-playback-reviewers,gfx-reviewers,nika,necko-reviewers,mhowell,rkraesig,gerald,application-update-reviewers,bytesized,alwu,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D144917
2022-05-03 20:49:08 +00:00
Mike Hommey 8399c6e406 Bug 1766561 - Use proper formatting directives for LPARAM and WPARAM. r=Jamie,rkraesig
Unfortunately, while with MSVC one would use the `I` modifier to format
LPARAM/LONG_PTR, it doesn't work with clang-cl on 32-bits, because
LONG_PTR there is long, but `I` expects an int.

Differential Revision: https://phabricator.services.mozilla.com/D144916
2022-05-03 20:49:08 +00:00
Mike Hommey 817a4b34bd Bug 1766561 - Use %p for pointer types. r=gfx-reviewers,rkraesig,nika,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D144913
2022-05-03 20:49:06 +00:00
Chris Martin e6a461db94 Bug 1756621 - Remove nsWindowBase r=handyman
It looks like it was added to abstract commonalities between Win32 and
WinRT. But we dropped support for WinRT a long time ago, and there hasn't been
any work on this area of code in 8 years. In the meantime, it just adds an
extra layer of indirection that doesn't need to exist.

Differential Revision: https://phabricator.services.mozilla.com/D139771
2022-02-28 15:08:03 +00:00
Masayuki Nakano 7dbdab8a47 Bug 1746104 - part 4: Make IMContextWrapper and IMMHandler use same class to store content selection r=m_kato
Now, `IMContextWrapper::Selection` and `IMMHandler::Selection` have same
structure.  Therefore, we can merge them into one place.  This will help to
fix bug 1259690 in the future.

Differential Revision: https://phabricator.services.mozilla.com/D137421
2022-02-07 22:33:37 +00:00
Masayuki Nakano 17f799d719 Bug 1746104 - part 2-5: Make IMMHandler handle the no selection case r=m_kato
With wrapping `IMMHandler::mSelection` with `Maybe`, we can represent there is
no unexpected cases, but there is no selection.

Differential Revision: https://phabricator.services.mozilla.com/D137413
2022-02-07 22:33:34 +00:00
Masayuki Nakano 7a5f62aabc Bug 1746104 - part 2-4: Make IMMHandler::Selection manage offset and data with Maybe<OffsetAndData<uint32_t>> r=m_kato
For making it simpler and have "no selection" state, this patch rewrites it
with `OffsetAndData<uint32_t>` wrapped with `Maybe`.  Although `IMMHandler`
does nothing if there is no selection.

Differential Revision: https://phabricator.services.mozilla.com/D137412
2022-02-07 22:33:34 +00:00
Masayuki Nakano 334b582035 Bug 1746104 - part 2-2: Get rid of GetWritingModeName in IMMHandler.cpp r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D137410
2022-02-07 22:33:33 +00:00
Masayuki Nakano 4c10e2cefc Bug 1746104 - part 2-1: Make IMMHandler::Selection capsule its members r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D137409
2022-02-07 22:33:32 +00:00
Hiroyuki Ikezoe b235d4a8e4 Bug 1348786 - Move nsChildView::DispatchWindowEvent(WidgetGUIEvent&) into nsBaseWidget. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D134359
2022-01-05 09:08:04 +00:00
Masayuki Nakano 3330d4853b Bug 1744907 - Rename all IME log module name to IMEHandler and all keyboard log module name to KeyboardHandler on desktop environment r=m_kato
Currently, log names of IME handlers and keyboard event handlers are considered
from the class names.  However, some of them are older name, and some of them
are for multiple classes.  This is hard to remember when I tell bug reporters
to log the behavior in their environment.  Therefore, I'd like to name all
IME handlers' log module name is `IMEHandler`, and all keyboard handlers'
log module name is `KeyboardHandler`.

Without dumping each key mapping on Windows, the log level `4` (`LogLevel::Debug`)
is enough.  `KeyboardHandler:5` is really noisy on Windows.  So, new logging
preparation becomes:

`MOZ_LOG=IMEHandler:4,sync`
`MOZ_LOG=KeyboardHandler:4,sync`
or
`MOZ_LOG=IMEHandler:4,KeyboardHandler:4,sync`

Differential Revision: https://phabricator.services.mozilla.com/D133183
2021-12-09 02:31:26 +00:00
Kartikaya Gupta 69a5c0d8f5 Bug 1714884 - Replace custom IME Rect struct with LayoutDeviceIntRect. r=masayuki
Depends on D116946

Differential Revision: https://phabricator.services.mozilla.com/D116947
2021-06-07 01:01:09 +00:00
Kartikaya Gupta 929777d45c Bug 1714884 - Replace custom IME Point struct with LayoutDeviceIntPoint. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D116946
2021-06-07 01:01:08 +00:00
Masayuki Nakano 8b248bbed5 Bug 1683226 - part 9: Get rid of nsIWidget::PluginHasFocus() r=m_kato
It's used only by IMM and keyboard handlers on Windows.

Differential Revision: https://phabricator.services.mozilla.com/D100121
2020-12-21 06:30:07 +00:00
Masayuki Nakano d0a3744356 Bug 1683226 - part 7: Get rid of remaining all IMM message handlers for plugin r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D100119
2020-12-21 06:17:36 +00:00
Masayuki Nakano d00764e995 Bug 1683226 - part 6: Get rid of the path of DefaultProcOfPluginEvent r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D100118
2020-12-21 06:13:09 +00:00
Masayuki Nakano b57847452f Bug 1683226 - part 5: Get rid of the path setting candidate window position from plugin on Windows r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D100117
2020-12-21 06:03:33 +00:00
Masayuki Nakano 7e741e472e Bug 1678553 - part 13: Make WidgetQueryContentEvent use Maybe to store some data r=m_kato,geckoview-reviewers
Sorry for this big patch.

This makes `WidgetQueryContentEvent::Reply` is stored with `Maybe` to get
rid of `WidgetQueryContentEvent`.  And `Reply` stores offset and string
with `Maybe` and ``OffsetAndData<uint32_t>`, and also tentative caret offset
with `Maybe`.  Then, we can get rid of `WidgetQueryContentEvent::NOT_FOUND`.

Note that I tried to make `OffsetAndData` have a method to create `NSRange`
for cocoa widget.  However, it causes the column limit`to 100 or longer
and that causes unrelated changes in `TextEvents.h` and `IMEData.h`.
Therefore, I create an inline function in `TextInputHandler.mm` instead.

Differential Revision: https://phabricator.services.mozilla.com/D98264
2020-12-02 05:32:19 +00:00
Kagami Sascha Rosylight 413c249077 Bug 1643464 - Part 1: Rename eLeft/eRight to ePrimary/eSecondary r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D80331
2020-06-19 18:02:41 +00:00
Srujana Peddinti abf70d4412 Bug 1259660 - Moved mozilla::WidgetMosueEventBase::buttonType in MouseEvents.h to mozilla::MouseButton in EventForwards.h, and mozilla::WidgetMouseEventBase::buttonsFlag to mozilla::MouseButtonsFlag r=masayuki
Moved mozilla::WidgetMosueEventBase::buttonType in MouseEvents.h to mozilla::MouseButton in EventForwards.h, and mozilla::WidgetMouseEventBase::buttonsFlag to mozilla::MouseButtonsFlag so that any referer in header files do not need to include MouseEvents.h only for referring them. Instead, they just need to include EventForwards.h. Now when MouseEvents.h is changed, the rebuild speed becomes faster.

Differential Revision: https://phabricator.services.mozilla.com/D25325
2019-04-21 20:13:34 +00:00
Ehsan Akhgari 498e2df734 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset
2019-01-18 10:16:18 +01:00
Masayuki Nakano 2cdbae9b77 Bug 1504963 - part 2: Make IMEHandler manage whether native caret is created by it r=m_kato
IMEHandler needs to create native caret later (when there is no composition).
Therefore, IMEHandler should manage whether it creates native caret or not
and IMMHandler and TSFTextStore should create/destroy native caret via
IMEHandler.

Note that this patch makes IMMHandler stops managing whether native caret
is created for plugin or not because native caret is created only one instance
and anyway IME handlers should stop managing native caret when they loses
focus.

Differential Revision: https://phabricator.services.mozilla.com/D13960
2018-12-18 08:38:22 +00:00
Masayuki Nakano 98fcb013fa Bug 1504963 - part 1: Make IME modules not touch native caret if a11y module handles native caret r=Jamie,m_kato
If a11y module is active, it observers caret position and size, and when caret
position or size is changed, it creates/moves native caret to overlap with
our caret.

On the other hand, IME module also creates native caret if active IME requires
it.  Therefore, both of them conflicts each other.

This patch makes IME module stop touching native caret if a11y module is active.

Although, a11y module with Flush Player does not work well for IME.  Therefore,
this patch keeps the conflict between them as-is for now.

Differential Revision: https://phabricator.services.mozilla.com/D13959
2018-12-18 10:40:50 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Chris Peterson 5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Milan Sreckovic 1a108fed6c Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange
MozReview-Commit-ID: AqnztoUbsmk
2018-01-10 11:14:16 -05:00
Masayuki Nakano 9236ebac46 Bug 1409155 - IMEHandler should not associate IMC with any window if active IME is ATOK 2010 or earlier with x64 build on Win8 or later r=m_kato
ATOK started to be TIP of TSF since 2011.  Older than it, i.e., ATOK 2010 and
earlier have a lot of problems even for daily use.  Perhaps, the reason is
Win 8 has a lot of changes around IMM-IME support and TSF, and ATOK 2010 is
released earlier than Win 8.

ATOK 2006 crashes while converting a word with candidate window.
ATOK 2007 doesn't paint and resize suggest window and candidate window
correctly (showing white window or too big window).
ATOK 2008 and ATOK 2009 crash when user just opens their open state.
ATOK 2010 isn't installable newly on Win 7 or later, but we have a lot of
crash reports.

Note that ATOK 2006 is the first version supporting Win XP x64.  So, ATOK 2005
must not support x64 apps.

Unfortunately, we cannot block loading DLLs of them.  Therefore, IMEHandler
should disassociate IMC from active window when user changes active keyboard
layout to the legacy ATOK and not associate IME with any window when
SetInputContext() is called even with "enabled".  Additionally, when user
changes active keyboard layout from the legacy ATOK to one of the other
keyboard layouts, IMEHandler should associate IMC with current window for
new active IME.

MozReview-Commit-ID: RVYwmYxzO7
2017-10-25 23:51:27 +09:00
Chris Peterson 4e9c1d3429 Bug 870698 - Part 1: Replace Assign("") with AssignLiteral(""). r=erahm
MozReview-Commit-ID: A0u9PP49OW3
2017-09-03 22:12:56 -07:00
Eric Rahm 1e281805ca Bug 1393230 - Part 2: Fix more improper string usages. r=njn
This fixes improper usages of Find where an offset was actually being use for
the boolean ignore case flag. It also fixes a few instances of passing in a
literal wchar_t to our functions where a NS_LITERAL_STRING or char16_t should
be used instead.
2017-08-31 15:52:30 -07:00
Nicholas Nethercote a222153d9c Bug 1384835 (part 2, attempt 2) - Remove the Preferences::Get*String() variants that return nsAdoptingString. r=froydnj. 2017-07-31 14:23:50 +10:00
Nicholas Nethercote 4cbdad69e6 Bug 1374580 (part 2) - Remove nsAFlat{,C}String typedefs. r=froydnj.
All the instances are converted as follows.

- nsAFlatString  --> nsString
- nsAFlatCString --> nsCString
2017-06-20 19:19:05 +10:00
Eric Rahm b732a14f8c Bug 1353593 - Part 2: Remove wwc functions. r=froydnj
This removes the use of |wwc| functions in favor of char16ptr_t's implicit
conversion operators.

MozReview-Commit-ID: GHONYieMPla
2017-06-12 16:20:49 -07:00
Masayuki Nakano 51c2cd00a6 Bug 1367692 - Make IMEHandler not restore default IMC unless legacy IMM-IME is active. r=m_kato
TIPs (and normal keyboard layouts) don't need IMC on focused window.  So, in most environment, it's not necessary to restore default IMC of focused window.

Therefore, this patch makes IMEHandler not restore default IMC unless legacy IMM-IME is active and disassociate IMC from focused window when IMM-IME isn't active.

However, this is risky change.  Therefore, the new behavior is disabled in default settings.  On the other hand, we need the new behavior only when MS-IME for Japanese is active on Win10.  Therefore, this patch adds a pref to enable/disable the hack and make it true in the default settings.

MozReview-Commit-ID: KAVxVT9CrsW
2017-06-07 11:42:27 +09:00
Masayuki Nakano 6d6b3d0a27 Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato
MozReview-Commit-ID: 2rIXTlwA6my
2017-04-11 21:24:55 +09:00
Ting-Yu Chou e9fdb7b400 Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan
MozReview-Commit-ID: JOrzksTzwVT
2016-12-16 16:00:43 +08:00
Makoto Kato f0d7e4a7be Bug 1300140 - Return error when IME attribute array doesn't have valid. r=masayuki
MozReview-Commit-ID: 2paKhQNSR11
2016-09-14 11:09:00 +09:00
Makoto Kato ce186f7b50 Bug 1300143 - Set length before accessing array even if array capacity has enougth size. r=masayuki
MozReview-Commit-ID: F5IoXBOnouc
2016-09-14 11:07:19 +09:00
Ryan VanderMeulen 576edfd1fd Merge inbound to m-c. a=merge 2016-08-19 09:52:53 -04:00
Nicholas Nethercote 8b8bd02a31 Bug 1293596 (part 2) - Rework nsIWidget bounds getters. r=mstange.
This patch makes GetBounds(), GetScreenBounds() and GetClientBounds() more
obviously infallible, like existing functions such as GetNaturalBounds() and
GetClientSize(). This results in clearer behaviour in nsCocoaWindow.mm if
Objective C exceptions occur. Along the way, the patch removes some useless
failure checks for these functions.

The patch also removes the NS_IMETHOD from GetRestoredBounds and makes that
function MOZ_MUST_USE.
2016-08-19 09:03:04 +10:00
Masayuki Nakano 9bbd84538c Bug 1273510 part.2 Modify comment in IMMHandler::SetCandidateWindow() r=m_kato
MozReview-Commit-ID: KX1frgDFsPi
2016-08-09 17:46:44 +09:00