Commit graph

112 commits

Author SHA1 Message Date
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Carl Corcoran
5ae1f207a6 Bug 1435827 part 4/9: Adding GetModuleFullPath to WinUtils.cpp;r=aklotz
A wrapper for ::GetModuleFileNameW() is needed in multiple places for the
purpose of evaluating and processing untrusted DLLs. This adds the appropriate
wrapper to WinUtils.cpp

Depends on D6240

Differential Revision: https://phabricator.services.mozilla.com/D9163

--HG--
extra : moz-landing-system : lando
2018-11-02 07:59:15 +00:00
Carl Corcoran
d0a2ed0652 Bug 1435827 part 3/9: Add WinUtils::PreparePathForTelemetry r=aklotz
Bug 1435827 part 3/9: Add WinUtils::PreparePathForTelemetry;r=aklotz

PreparePathForTelemetry encapsulates our method of removing sensitive
information from file paths for use in telemetry payloads.

SanitizePath() has been essentially renamed to PreparePathForTelemetry()
which is a bit more precise now that it's being used externally.

Untrusted modules evaluation requires a few path transformations to happen at
various places during processing. This is largely because APIs like
GetLongPathNameW can be rather slow, so performance becomes an issue.

That is the justification for breaking out path transformations into separate
wrapper functions and also the need for PathFlags.

Differential Revision: https://phabricator.services.mozilla.com/D6240

--HG--
extra : moz-landing-system : lando
2018-11-02 07:59:17 +00:00
Makoto Kato
c973b2e0b9 Bug 1155505 - Part 1. Move WriteBitmap to WinUtils. r=jmathies
WriteBitmap will be used for Toast implementation, so it should be moved to
WinUtils.

Differential Revision: https://phabricator.services.mozilla.com/D3002

--HG--
extra : rebase_source : b418288b52e14f62122f56dbc40e771c73fd6414
2018-03-23 16:41:58 -04:00
Ciure Andrei
7cf074453d Backed out 4 changesets (bug 1155505) for win2012 build bustages CLOSED TREE
Backed out changeset af0781ab02a6 (bug 1155505)
Backed out changeset f5e706d5a143 (bug 1155505)
Backed out changeset 5400ec20792c (bug 1155505)
Backed out changeset 82e129f7545e (bug 1155505)
2018-10-03 09:16:27 +03:00
Makoto Kato
0ecfa8ba3d Bug 1155505 - Part 1. Move WriteBitmap to WinUtils. r=jmathies
WriteBitmap will be used for Toast implementation, so it should be moved to
WinUtils.

Differential Revision: https://phabricator.services.mozilla.com/D3002

--HG--
extra : rebase_source : 7ec7593fd0294dcaa6aab5e8f503b5aa752cb9d1
2018-03-23 16:41:58 -04:00
Adam Gashlin
c4b29e1ba9 Bug 1302168: Fix maximized caption height with per-monitor DPI r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D4957

--HG--
extra : moz-landing-system : lando
2018-09-26 15:40:48 +00:00
Thomas Wisniewski
fa9d7563e5 Bug 1035774 - Introduce functions to get the capabilities for the primary pointer and for all available pointers on Windows. r=masayuki
Note that the logic of IsTabletDevice() and relevant stuff are mostly a mimic of
IsTabletDevice [1] and IsDeviceUsedAsATablet [2] in chromium.

As for the primary pointer's capabilities, there seems no API to tell which
device is the primary, so here we determine it as following priorities;

1) if the machine is in tablet mode, the tablet (touch screen) is the primary
2) if the machine has a mouse, the mouse is the primary
3) if the machine has a digitizer, it's the primary

This priority is also the same as what chromium does in
GetPrimaryPointerType [2] and GetAvailablePointerTypes [3].

[1] d4c8983688/base/win/win_util.cc (450)
[2] d4c8983688/base/win/win_util.cc (468)
[3] d4c8983688/ui/base/touch/touch_device_win.cc (37)
[4] d4c8983688/ui/base/touch/touch_device_win.cc (82)

Differential Revision: https://phabricator.services.mozilla.com/D3300
2018-08-14 16:38:03 +09:00
Thomas Wisniewski
d82fa0f0c9 Bug 1035774 - Factor out a function getting the windows power platform role. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D3299
2018-08-14 16:38:03 +09:00
Doug Thayer
56f41b91a9 Bug 1425144 - Init Jump list on lazy idle thread r=aklotz
We're already committing jump lists on mIOThread, and I see
no errors or problems with initting on mIOThread either, so
I think this is okay. Had to restructure some things to
make using a Promise simple, and to avoid dispatching to
mIOThread from within mIOThread (since we can only dispatch
to a LazyIdleThread from the owner thread).

MozReview-Commit-ID: 1imBF8Jzmn6

--HG--
extra : rebase_source : 4f912e819cec898910e72d95311e3924714a3090
2018-06-27 08:59:07 -07:00
Jeff Gilbert
5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Masayuki Nakano
8fc19f6752 Bug 900750 - part 2: Make ModifierKeyState and VirtualKey treat AltGraph as new modifier and won't set Control and Alt state while AltGraph is active r=m_kato,smaug
By the proposal from Google, <https://github.com/w3c/uievents/issues/147>,
Chromium treat AltRight key as "AltGraph" modifier if the keyboard layout
has AltGr key.

When AltRight key is pressed with a keyboard layout which has AltGr key,
modifiers should as following:

1. "keydown" for ControlLeft:
  ctrlKey:  true, altKey: false, getModifierState("AltGraph"): false
2. "keydown" for AltRight:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
3. Some "keydown", "keypress" and "keyup" events:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
4. "keyup" for ControlLeft:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): true
5. "keyup" for AltRight:
  ctrlKey: false, altKey: false, getModifierState("AltGraph"): false

So, only when the preceding "keydown" event for ControlLeft, ctrlKey should
be set to true as usual.  However, after AltRight key is pressed actually,
we should treat "AltGraph" modifier is true and both ctrlKey and altKey
should be set to false for web apps can handle text input normally.

So, MODIFIER_ALTGRAPH and MODIFIER_CONTROL/MODIFIER_ALT should not be set
at the same time.

This patch makes ModifierKeyState have only MODIFIER_ALTGRAPH or
MODIFIER_CONTROL/MODIFIER_ALT.

Additionally, this patch makes VirtualKey::ShiftState treat "AltGraph" as a
modifier.  So, now, VirtualKey needs to convert ShiftState to index value when
it accesses its mShiftStates array.  Therefore, this patch adds
VirtualKey::ToIndex() and make each VirtualKey method use it before
accessing mShiftStates.

Note that this patch also fixes bug of WinUtils::SetupKeyModifiersSequence().
The constructor of KeyPair takes 2 keycode values, but the second virtual
keycode can have scancode to distinguish if the key is left or right.
However, WinUtils::SetupKeyModifiersSequence() never sets scancode to
KeyPair.  Therefore, it fails to dispatch AltRight key event.

MozReview-Commit-ID: 7ealxJH9KlZ

--HG--
extra : rebase_source : 761bc4416222def020a0731d6ae7940ef074ebe0
2018-05-30 17:27:31 +09:00
Xidorn Quan
4ddb42237d Bug 1460116 - Remove ShouldHideScrollbars. r=jimm
MozReview-Commit-ID: 7v6Eylefk4t

--HG--
extra : rebase_source : f37e94e205e7e589c3a47f282c57b725d65914d9
2018-05-09 11:40:58 +10:00
Bob Owen
41ce6696f9 Bug 1447019 Part 2: Move running from a network drive check into WinUtils. r=jimm 2018-03-27 14:09:32 +01:00
Boris Zbarsky
89ea512161 Bug 1446711 part 7. Switch the nsIDOMMouseEvent::MOZ_SOURCE_* constants over to MouseEventBinding. r=qdot
We can't include MouseEventBinding.h in MouseEvents.h because that produces
this include loop:

MouseEventBinding.h -> UIEventBinding.h ->
nsGlobalWindow.h -> nsGlobalWindowInner.h -> nsRefreshDriver.h ->
AnimationEventDispatcher.h -> AnimationComparator.h -> Animation.h ->
EffectCompositor.h -> PseudoElementHashEntry.h -> Element.h ->
PointerEventHandler.h -> MouseEvents.h -> MouseEventBinding.h

MozReview-Commit-ID: 6FNksGil7uD
2018-03-20 00:16:06 -04:00
Xidorn Quan
492ca3e3e2 Bug 1443397 - Modernize several rect and region related functions in Windows widget to use typed types. r=jimm
Mostly just convert nsInt{Rect,Region} to LayoutDeviceInt{Rect,Region}.

One exception is to change the parameter of nsWindow::OnResize from
nsIntRect to LayoutDeviceIntSize, because it really only needs that.

MozReview-Commit-ID: 963Mzd5Wed6

--HG--
extra : rebase_source : efae039d26feb98a3591a7cd46c30ce4f052d70b
2018-03-06 17:20:41 +11:00
Makoto Kato
5251e6a945 Bug 1390097 - Revert a part of bug 1354020 changes. r=masayuki
Bug 1354020 causes that IMM-IME on Windows 7 doesn't work with --no-remote.  Although I think that this issue is OS or IME bug, when default window proceduce by RegisterClass is DefaultWindowProcW, Google Japanese IME doesn't work.

I am not sure why this issue occurs when lpfnWndProc is DefWidnowProcW and DDE isn't started.  But for workaround, we should revert a part of bug 1354020 changes.

MozReview-Commit-ID: BkxlZnm8mIh

--HG--
extra : rebase_source : 21c1d86fb5628dbd726a15e5057a536271cfb26d
2017-08-23 12:59:40 +09:00
Bill McCloskey
81720f1abb Bug 1384336 - Fix to MainThreadInvoker to avoid deadlocks (r=aklotz)
When removing our Windows message loop pumping code in the content
process, a11y code on the MTA thread must have some way to wake up the
main thread. The main thread could be blocked either on a conditional
variable waiting for a Gecko event, or it could be blocked waiting on
a Windows HANDLE in IPC code (doing a sync message send). In the
former case, we wake it up by posting an event to the main thread. In
the latter case, we continue to use the asynchronous procedure call
mechanism.

MozReview-Commit-ID: FN6KWaGo9Zl
2017-08-09 21:24:20 -07:00
Samael Wang
b75d05055a Bug 1350643 - Part 6.1: Extract getting DPI logic from LogToPhysFactor & SystemScaleFactor to provide new functions MonitorDPI & SystemDPI. r=jimm
MozReview-Commit-ID: E9mXvFMM3pA

--HG--
extra : rebase_source : 1cc0f80c41054d6400d03b663f5b0037fbdb4cad
2017-06-16 01:11:41 +08:00
Bob Owen
56c4f0a7dd Bug 1369670 Part 2: On Windows resolve junction points and symlinks in any paths that are used for sandbox policy rules. r=jimm 2017-06-23 16:29:15 +01:00
Wes Kocher
4fe21d372c Backed out 2 changesets (bug 1369670) for Mn failures in test_capabilities.py on Windows 8 a=backout
Backed out changeset 46db8ae423f2 (bug 1369670)
Backed out changeset e9b7d6dbc698 (bug 1369670)

MozReview-Commit-ID: GL05REhJM2k
2017-06-23 11:48:12 -07:00
Bob Owen
0179001ce3 Bug 1369670 Part 2: On Windows resolve junction points and symlinks in any paths that are used for sandbox policy rules. r=jimm 2017-06-23 16:29:15 +01:00
Aaron Klotz
1b7f27530d Bug 1323069: Widget changes to facilitate returning a11y::LazyInstantiator in response to WM_GETOBJECT; r=jimm
MozReview-Commit-ID: JXbxr4tWEST
2017-06-15 17:29:07 -06:00
Wei-Cheng Pan
fafefc69a1 Bug 1354143 - Commit jump list on lazy idle thread. r=florian,jimm
Since committing will do IO on the main thread, it would be better to do it on
an idle thread instead. We have to change JavaScript code too because now the
API is asynchrous.

This patch also updates its xpcshell test.

Now mozilla::widget::AsyncDeleteAllFaviconsFromDisk will get profile directory
on the main thread to prevent it happens on off-main-threads, thus prevents
off-main-thread assertion.

MozReview-Commit-ID: CWcR0B2BC3n

--HG--
extra : rebase_source : 3685a07f9f4476bc94bdf92937734b78fb3fe309
2017-05-24 16:38:57 +08:00
Chris Pearce
f6c7ea61dd Bug 1346620 - Resolve symlinks and junction points in path to GMP dir when loading GMP process. r=bobowen
The sandbox blocks loading of GMPs when the GMP resides in a directory stored
in a path which contains a symlink or junction point. So resolve GMP paths
fully before instantiating the GMP process.

MozReview-Commit-ID: EvPCpNIDNwg

--HG--
extra : rebase_source : 7df8236c9988a674ae128faf63b949fd711ab4e0
2017-06-09 15:29:46 +12:00
Masayuki Nakano
94170bb269 Bug 1370198 Back out the patch for bug 1369419 because the patch couldn't fix bug 1361132 and causes new crash bugs r=jimm
MozReview-Commit-ID: Eq7Dkk6Ghwc

--HG--
extra : rebase_source : edc2d10f4e0359152927830a269f74b75daf5883
2017-06-05 21:52:16 +09:00
Masayuki Nakano
d3789d2d6b Bug 1369419 GetMessage() and PeekMessage() shouldn't be used directly as far as possible r=jimm
In TSF mode, application should retrieve messages with ITfMessagePump::GetMessage() or ITfMessagePump::PeekMessage() since TSF/TIP may handle the message before or after the host application handles it.

This patch rewrites the API users with WinUtils::(Get|Peek)Message() which use ITfMessagePump if it's available.

MozReview-Commit-ID: LwHIgp7SxLH

--HG--
extra : rebase_source : aa5750af9812f9b107c29546cbee6f9eede6ebfa
2017-06-02 12:02:35 +09:00
Masatoshi Kimura
ea4c0cc826 Bug 1354020 - Use per-monitor v2 on Creators Update. r=jfkthame
MozReview-Commit-ID: FiO3DupULFu

--HG--
extra : rebase_source : f2d2018cb549a07f89e18a42f842886a7ef9c063
2017-04-07 07:14:14 +09:00
Makoto Kato
1b1e8ccc2f Bug 1337299 - Remove old version compatibility into WinUtils. r=jimm
MozReview-Commit-ID: IBnnslpinzq
2017-02-10 12:06:23 +09:00
Benjamin Smedberg
d478e7c99f Bug 1332631 part B - file moves from xpcom/glue to xpcom/base, r=froydnj
MozReview-Commit-ID: ARS1aTugYjl

--HG--
rename : xpcom/glue/AutoRestore.h => xpcom/base/AutoRestore.h
rename : xpcom/glue/EnumeratedArrayCycleCollection.h => xpcom/base/EnumeratedArrayCycleCollection.h
rename : xpcom/glue/IntentionalCrash.h => xpcom/base/IntentionalCrash.h
rename : xpcom/glue/nsCOMPtr.cpp => xpcom/base/nsCOMPtr.cpp
rename : xpcom/glue/nsCOMPtr.h => xpcom/base/nsCOMPtr.h
rename : xpcom/glue/nsCRTGlue.cpp => xpcom/base/nsCRTGlue.cpp
rename : xpcom/glue/nsCRTGlue.h => xpcom/base/nsCRTGlue.h
rename : xpcom/glue/nsClassInfoImpl.cpp => xpcom/base/nsClassInfoImpl.cpp
rename : xpcom/glue/nsCycleCollectionNoteChild.h => xpcom/base/nsCycleCollectionNoteChild.h
rename : xpcom/glue/nsCycleCollectionNoteRootCallback.h => xpcom/base/nsCycleCollectionNoteRootCallback.h
rename : xpcom/glue/nsCycleCollectionParticipant.cpp => xpcom/base/nsCycleCollectionParticipant.cpp
rename : xpcom/glue/nsCycleCollectionParticipant.h => xpcom/base/nsCycleCollectionParticipant.h
rename : xpcom/glue/nsCycleCollectionTraversalCallback.h => xpcom/base/nsCycleCollectionTraversalCallback.h
rename : xpcom/glue/nsDebug.h => xpcom/base/nsDebug.h
rename : xpcom/glue/nsIClassInfoImpl.h => xpcom/base/nsIClassInfoImpl.h
rename : xpcom/glue/nsID.cpp => xpcom/base/nsID.cpp
rename : xpcom/glue/nsID.h => xpcom/base/nsID.h
rename : xpcom/glue/nsIInterfaceRequestorUtils.cpp => xpcom/base/nsIInterfaceRequestorUtils.cpp
rename : xpcom/glue/nsIInterfaceRequestorUtils.h => xpcom/base/nsIInterfaceRequestorUtils.h
rename : xpcom/glue/nsINIParser.cpp => xpcom/base/nsINIParser.cpp
rename : xpcom/glue/nsINIParser.h => xpcom/base/nsINIParser.h
rename : xpcom/glue/nsISupportsImpl.cpp => xpcom/base/nsISupportsImpl.cpp
rename : xpcom/glue/nsISupportsImpl.h => xpcom/base/nsISupportsImpl.h
rename : xpcom/glue/nsISupportsUtils.h => xpcom/base/nsISupportsUtils.h
rename : xpcom/glue/nsIWeakReferenceUtils.h => xpcom/base/nsIWeakReferenceUtils.h
rename : xpcom/glue/nsMemory.cpp => xpcom/base/nsMemory.cpp
rename : xpcom/glue/nsMemory.h => xpcom/base/nsMemory.h
rename : xpcom/glue/nsTWeakRef.h => xpcom/base/nsTWeakRef.h
rename : xpcom/glue/nsVersionComparator.cpp => xpcom/base/nsVersionComparator.cpp
rename : xpcom/glue/nsVersionComparator.h => xpcom/base/nsVersionComparator.h
rename : xpcom/glue/nsWeakReference.cpp => xpcom/base/nsWeakReference.cpp
rename : xpcom/glue/nsWeakReference.h => xpcom/base/nsWeakReference.h
extra : rebase_source : df11b181f383b70ffe5051716d63ed11b98be53b
extra : histedit_source : 6d0743fac0562e4676e44a52f0e85375fb4a44ff
2017-01-23 09:24:01 -05:00
Ting-Yu Chou
9e66f3af06 Bug 1322465 part 14 - Use explicit/MOZ_IMPLICIT for the unary constructors in widget/. r=Ehsan
MozReview-Commit-ID: JOrzksTzwVT

--HG--
extra : rebase_source : a7e92ef309025f6243fc8dba5cf30dfda591b181
2016-12-16 16:00:43 +08:00
Aaron Klotz
96c052cf1f Bug 1304883: Modify mscom::MainThreadInvoker and Win32 widget to use atomic boolean to flag pending APCs; r=jimm
MozReview-Commit-ID: 7fXoDkBEd2V

--HG--
extra : rebase_source : 1960f9bf8294bfea15209554dd7fdc0ce1df5dcc
2016-09-22 15:07:01 -06:00
Ho-Pang Hsu
8e327f28fa Bug 1258808 - Part 2: Enhance Widget for Windows (Widget). r=smaug, f=btseng
--HG--
extra : rebase_source : d22c59ac2a0e0bb7baec976bbabc1c75ec6f5955
extra : histedit_source : 12058ce71e0268f2582044bf307f83d461966bd4
2016-09-01 16:12:15 +08:00
Makoto Kato
fce35d00ac Bug 1288595 - Guard DPI_AWARENESS_CONTEXT defines against Windows SDK beta (10.0.14383.0). r=jfkthame
MozReview-Commit-ID: 6CMZ3mVhWd5

--HG--
extra : rebase_source : 4aac1b1b9d8b06414022ce350c28e72bf3a2fdeb
2016-07-22 12:43:15 +09:00
Thomas Zimmermann
48ef99e762 Bug 1265386: Fix white-space errors in widget/, r=nfroyd
MozReview-Commit-ID: ATXI7dYFHmA
2016-07-22 10:56:13 +02:00
Carsten "Tomcat" Book
d2a1babef4 Backed out changeset 2bea1e1e403d (bug 1265386) for bustage on a CLOSED TREE 2016-07-21 13:59:02 +02:00
Thomas Zimmermann
d8818e0d94 Bug 1265386: Fix white-space errors in widget/, r=nfroyd
MozReview-Commit-ID: ATXI7dYFHmA
2016-07-21 13:29:30 +02:00
Jonathan Kew
d723568aba Bug 1270954 - When Win10 Anniversary Update APIs are available, enable automatic scaling of the non-client area when a window is on a secondary display with different DPI. r=emk, a=kwierso
--HG--
extra : amend_source : 7eabc4033b2455549c74936c373aeea07a473cef
2016-07-14 17:46:26 +01:00
Jonathan Kew
b1d6a7194b Bug 1254026 - When Win10 dpi-awareness-context APIs are available, run the Open File and Save As dialogs as system-dpi-aware windows, so that they are auto-scaled by the system appropriately for any secondary display's resolution. r=emk 2016-07-01 23:42:32 +01:00
Jonathan Watt
05a14131e5 Bug 1265953, part 2 - Convert much of the rest of the widget code from nsAutoPtr to UniquePtr. r=mstange 2016-04-19 21:51:25 +01:00
Jonathan Kew
91c9694559 Bug 1264196 - Use the DPI from the parent window, if any, for consistency between popups and their owners when straddling a monitor boundary. r=emk 2016-04-13 14:40:46 +01:00
Aaron Klotz
183fd9cb81 Bug 1240315: Add startup crash report annotation for AppInit_DLLs; r=jimm
--HG--
extra : rebase_source : e96da444713515a12520969c34731db244d844e2
2016-01-16 14:09:28 -07:00
Bob Owen
76f4652fca Bug 1236680 Part 1: Add new WinUtils function to Resolve moved Users folder. r=jimm 2016-02-09 15:22:43 +00:00
Jonathan Kew
2ce45f370f Bug 1242720 - Use (non-dynamic) resolution from GetDeviceCaps when dealing with native-theme code that does not handle dynamic changes to system DPI. r=emk 2016-01-28 15:08:33 +00:00
Jonathan Kew
925e9cfb7f Bug 890156 - patch 3 - Remove gfxWindowsPlatform::GetDPIScale and replace it with methods in WinUtils, ready for per-monitor DPI support. r=emk 2015-12-02 15:09:29 +00:00
Nicholas Nethercote
90bbac13cc Bug 1229237 (part 3) - Make nsIWidget::Invalidate() take a LayoutDeviceIntRect. r=botond.
--HG--
extra : rebase_source : 1afe44a5ab2a3d5478010fc23ba1891ab297bde6
2015-11-16 21:18:31 -08:00
Nathan Froyd
1df3aeaee4 Bug 1222149 - delete unused fields from AsyncEncodeAndWriteIcon; r=roc
clang-cl says these are unused, so let's delete them.
2015-11-05 14:19:20 -05:00
Nathan Froyd
ce836868f3 Bug 1218488 - clarify buffer ownership for nsICanvasRenderingContextInternal::GetBuffer; r=Bas,baku
This patch started life as making ImageEncoder.cpp:EncodingRunnable not
use nsAutoArrayPtr, but the API effects rippled out from there.  On the
whole, I think using UniquePtr throughout has made the code clearer.
2015-10-26 14:31:12 -04:00
Masayuki Nakano
0d22745cda Bug 895274 part.3 Make the enum of event messages a named enum IGNORE IDL r=smaug 2015-08-26 21:56:59 +09:00