Age | Commit message (Collapse) | Author |
|
Change-Id: I2e49ab149b2bbdad623f8694221b6169cdfd2d9a
Reviewed-on: https://gerrit.libreoffice.org/7706
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I270bc9c8e0507f44d2c27639e86002c60f4e2e6d
|
|
Change-Id: I3351acf18d334447336ee98761190fdff32d5b85
Reviewed-on: https://gerrit.libreoffice.org/7690
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
interface methods do not check for NULL pointer access, nor do they trap
exceptions
Fixed by Michael Curran
(cherry picked from commit 113171f2a5d726af6c5266e98e8e790ac6729d2d)
Conflicts:
winaccessibility/source/UAccCOM/MAccessible.cxx
Change-Id: I28d4b885a6c2db487c2754c2ca11290b3844570b
Reviewed-on: https://gerrit.libreoffice.org/7689
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
... and see what happens. Hopefully nothing bad since everything should
be thread-safe now.
Change-Id: I333b29bc2066578ccabadb022936a28dafdf7104
(cherry picked from commit a8804dfc502454b562f1e0f5947c2f5264cd9b92)
|
|
Change-Id: I8046ae37cba87f0e5df550de831229345df1c6f8
(cherry picked from commit fdd76463b4dfd05880effdd2afc0001eea3d850a)
|
|
Change-Id: I7e9a94898c6bc8142b46a05ffba56fc41eb125c2
(cherry picked from commit 57acb3d068ef1e47532ae100d78aa0bd8d061683)
|
|
... in DeleteAccObj(). Otherwise pointers to deleted documents will be
used.
Change-Id: Ia807dc3a2c782019cf7fc874d264058219956d74
(cherry picked from commit 975e1d293d6f702c81647449fd28560b6d00e4a0)
|
|
Change-Id: I950072d22cd315d1898b76a2c345121d31d432c4
(cherry picked from commit 506bab8f62c585380e607b91ab80c939dc99851c)
|
|
The AccObject is stored by value in XIdAccList, so don't call GetResID()
after it has been erased.
Change-Id: I391aad1e3ab71d443cc6e6b92381f74918e0bcfb
(cherry picked from commit b22e987113374399c7455f7979bc34519eac69da)
|
|
RemoveMeFromBroadcaster() may catch a DisposedException and then not
call NotifyDestroy.
Change-Id: I2b766541c3e6800c88a83aa482de0093714d39c2
(cherry picked from commit 9e351edccf3b9a71bb310bcaefe07821479ff5e5)
|
|
Change-Id: I201fc14a02c47a6c735c65f649c6b9f068d92c71
(cherry picked from commit b6664d0649d9be6208b39d6dd276e40347af44c3)
|
|
The COM components will (usually? always?) be called on the main thread
via COM, and may also be called on any thread from the UNO event
listeners. Both ways may access the global AccWinObjectManager.
So the easiest way to lock all that without introducing new deadlocks
seems to be to just use the SolarMutex.
The fact that the main thread is in a COM STA is rather irrelevant here
since we don't currently do the required manual marshalling of the COM
pointers so they can be accessed from UNO event listeners running in
threads other than the main thread anyway.
To get that to build:
- use prewin.h and postwin.h around ATL headers
- link UAccCOM against vcl
- define both UNICODE and _UNICODE to not break on mis-matching TCHAR
nonsense
Change-Id: I1ccdf7a4a5c2b5f0b9c29ef39d126c4b8a16898a
(cherry picked from commit d28687d5171784e1ec23d4cf13d7b3c56cc52782)
|
|
Change-Id: Ife0960b235e24f17640b197f952a9a094b7d654d
(cherry picked from commit 57f88bb76b069e0776574e93d3009785572b8193)
|
|
(cherry picked from commit dd7df93417c8169d7f2ee935841fa72ad02dbcc9)
Conflicts:
winaccessibility/source/UAccCOM/CheckEnableAccessible.h
Change-Id: I45e1d72b1abf64a965397c50ac3b95b5bbee3206
|
|
Change-Id: Ia469076ec6f815133e77a14940e8afa05e177231
(cherry picked from commit cbda6da004f1de8cdbf2b1298a835afa850be078)
|
|
Change-Id: I479117e0794375f1ec0c96b78db22b3569b456ec
(cherry picked from commit a5c7ed21584b024d52d32917d1b07462a00e7405)
|
|
Replace it with a map for the new direct C++ instantiation and move this
implementation detail to the cxx file.
Change-Id: Ia961da03f8eb899481cf02f430c921aa8abd7c5c
(cherry picked from commit 9d71c9a442b2be027900f7b20342e2a0f43ed2ab)
|
|
... which should result in faster startup if it's disabled.
Change-Id: I39774b0a56f186d08270c2f17b2b20a823f21dc2
(cherry picked from commit b44ed4c408d92f7a1a3f2390c056d518c137ddd0)
|
|
It is possible to retrieve it via the AccTopWindowListener.
Change-Id: I6cc5ab25bc937d0d9f4de54a1bed09a76ce27491
(cherry picked from commit fabca7370e22f96ae041dc179475b35c87ac53ec)
|
|
This only works partially: the ClassObjects are only registered on the
main thread; CoCreateInstance on other threads still fails.
This reverts commit 29c6216af8c502f220bb84857d3dda901ddfd234.
(cherry picked from commit b54d441ad728ffce8e543de10bd897f0900422b5)
|
|
Change-Id: I7701021befcf1dbad85557c2095fe4bf0b4e0ff1
(cherry picked from commit d0e8e6e3cd51736583603e37f0ba2ff7bdf29f5c)
|
|
This is an alternative (to 732ec36edfd09d2091d70c4d71b5f182fe279c45)
solution to the "CoCreateInstance does not work" problem:
replace all CoCreateInstance calls with equivalent calls to create
the components directly.
Since the only reason why this COM stuff needs to be registered
at all is that AccObject uses CoCreateInstance() to create its
COM objects, another possible solution appears to be to simply link
the libraries and instantiate the COM objects directly, without COM.
The only difference appears to be that CoCreateInstance would
automatically add proxy objects in case the COM objects reside in a
single-threaded appartment; not sure if that is relevant here.
Reviewed-on: https://gerrit.libreoffice.org/6792
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
(cherry picked from commit 3b86569fcba210eb6570fabef7ff8abf6aff91f0)
Conflicts:
winaccessibility/source/UAccCOM/AccHypertext.cxx
winaccessibility/source/UAccCOM/AccTable.cxx
winaccessibility/source/UAccCOM/EnumVariant.cxx
winaccessibility/source/UAccCOM/MAccessible.cxx
winaccessibility/source/service/AccObject.cxx
Change-Id: I8ffb8af501f6084f3145fa4d4f53366a070e1691
|
|
Change-Id: I81f98ca83b97bc2e3e419c7a37ad2a011932553b
(cherry picked from commit 0fb33f60ac08c853f14d19e6158994d092a82670)
|
|
It is pointlessly slow and the AccObject has a method for that.
(cherry picked from commit e094d6fab61de95adb53759d69aad2447560581c)
Conflicts:
winaccessibility/source/service/AccObjectWinManager.cxx
Change-Id: I7ba1cc853255ac3b3b5008657d1cc79efc3a3f4b
|
|
It's disposed iff m_xAccessible is 0.
Change-Id: I3f8bc104784adf82be43bcaf43b7573a9897f82a
(cherry picked from commit a2afe344c6badf432983ce341d4154441837baf3)
|
|
... and clear it in disposing().
Change-Id: I69cfe3cdcf6549a0471453960d1f935d9c3b7a0d
(cherry picked from commit 83ccdb028529e85fe4c06a47ca57a4a5eeeed159)
|
|
The manual acquire() call was apparently not coupled with a release()?
Change-Id: I069c969619e9afce2a4b836642cc1675025b11d0
(cherry picked from commit ef3f28d0ce641e9d51d91412b176a1ecbdc69773)
|
|
Change-Id: I68e5c1785b73520cb59ca54a602ea176f8146f6f
(cherry picked from commit 576ba8ce8238f6a092c74750a895e2e77297fc7e)
|
|
Seems safer to store a Reference
Change-Id: I86ef9d18c03b2a58058d38e2ae43553ecd2c7be6
(cherry picked from commit 887cf7ccc6c2cfc8652d646e15678c1c10155987)
|
|
Perhaps delayloading the URE dlls makes it easier to register the
UAccCOM.dll during installation or something? Well we don't do that any
more.
Change-Id: Ic7c356f5954f869c8752aab2563f059a27ef731f
(cherry picked from commit 95759ff2c0c895442d4d41b0edec1583caaf8abd)
|
|
Change-Id: Id0defc7e4fbe5b700362548559e08163a327399b
(cherry picked from commit 2e243de2887f75fa1bd4146bc67d01ae08500d0d)
|
|
There is no need to register UAccCOM.
(cherry picked from commit 455c39645e3fe1642679aa478c5b1b5a1d3ab0ae)
Conflicts:
winaccessibility/source/UAccCOM/UAccCOM.cxx
Change-Id: I37f5c4030abefbd18b6686652a348bc20a05a9db
|
|
... obsoleted by 732ec36edfd09d2091d70c4d71b5f182fe279c45
Change-Id: I7f7a9becac2430a7ed4d096be741b610462a8a00
(cherry picked from commit 5e7b29e642dadf99ad954dbf4e3730e0eeef9de8)
|
|
Obsolete since 732ec36edfd09d2091d70c4d71b5f182fe279c45
Change-Id: I32e880f6a35ffd628b5873a4a7e05def73b939ca
|
|
The COM services are not found because they are not registered in the
registry via regsvr32 (doing that is unnecessary since the components
are only instantiated by winaccessibility code and undesirable since
that would likely register the IAccessible2 types too, breaking A11y
tools) and the special manifest resource #97 that ActivateActContext()
tries to load does not exist in UAccCOM.dll; this would need to be a
XML manifest, the *.rgs and *.tlb that are already included as
individual resources won't work.
After reading ATL headers for hours it is immediately obvious that the
COM components can simply be registered by a call to
CComModule::RegisterClassObjects() from DllMain; this just requires
actually loading the UAccCOM library from somewhere so the DllMain runs.
Change-Id: Id58b754835cd2f1bcada37e5639a6b6042a42fd5
(cherry picked from commit 732ec36edfd09d2091d70c4d71b5f182fe279c45)
|
|
Change-Id: I3c8bc6a476a6254a4ddc3a7cb0585544f3f78431
(cherry picked from commit d04c970e8f33109a1ef5c52f922a48a0ff62adb0)
|
|
Sadly can't use rtl::Static because it needs a ctor parameter...
Change-Id: I98bbfbb4d2ef54f40a5f110527b260c0b5b01eed
(cherry picked from commit ccb1e06bdb3c37c82ddc7b61135eda09fcdecae4)
|
|
Maybe it would be kept alive by AccObject::m_AccActionRef but why not
play it safe.
Change-Id: I03c2be04e97dcde8a177ef8dfd0d75595ab13a53
(cherry picked from commit a5e281ff0468416e5bb20b16ccac16550a83a9fd)
|
|
Merge aliases pRContextInterface (unused) and pRContext; this is
exacerbated by countless local variables pRContext that shadow the
member...
Change-Id: I6bc71911fb41a2ce2590d614020ecea36d6ab4f8
(cherry picked from commit 58ab5239868039bc9e4dff391fc0c420a2eb3d8d)
|
|
Merge aliases pUNOInterface and pRef; also pAchorUNOInterface is never
used.
Change-Id: I1b3841a9aca9d2438b25c66c7f67d09ce13b41f9
(cherry picked from commit fd2877ee09fd4cd738769cda5de5b641f73adee2)
|
|
Change-Id: Ic4313d9d1caea6448749c5c010ea9a034a75a907
(cherry picked from commit 36223cbe8b9a80827a8ec49c031540ea62c23c6d)
|
|
Change-Id: Ia03e2797d80429284964987d07ebc033346a7ac0
(cherry picked from commit 1917dacaf2f3e29caadcac09162fe9b2158a45d1)
|
|
Change-Id: If09b4c0452d2e436be146a789edf85b1087d74e2
(cherry picked from commit d7791c933d8f7545b2535fe1a6d706008d2f9605)
|
|
Change-Id: I96c69e871aa7b20cdac9751a64faa5e436f31a1f
(cherry picked from commit f3f4d9ec0f0eaa1aebdfebe831021a9d96e63f58)
|
|
Change-Id: I5c51652932537cfb200183c30c5c1d954586f8fa
|
|
Change-Id: I16a39a0dde27b17f1467a9605a4566b05f53a485
|
|
Change-Id: I083589fd57540e3b4ec488aeb84bc92dddc02d36
|
|
Also use bool instead of random integer types.
Change-Id: If4da5f6b7986231312438142c9ea953d761c6745
|
|
Apparently the life-cycle of this global variable is tied to the
MSAAService anyway, so just make it a member of that.
Also it appears that the FreeTopListener function would call release()
but at the place where the global variable is assigned acquire() was
missing. Using a rtl::Reference should fix this up too.
Change-Id: I6dd305dfd990d7fd4c54b16d971700b88470dc43
|