summaryrefslogtreecommitdiff
path: root/winaccessibility
AgeCommit message (Collapse)Author
2014-01-30Typo decendant => descendant in winaccessibility/MAccessibleJulien Nabet
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>
2014-01-27fdo#73464 - get relation BSTR allocation right.Michael Meeks
Change-Id: I270bc9c8e0507f44d2c27639e86002c60f4e2e6d
2014-01-27fdo#73464 - guard against NULL / unset m_xAccessible.Michael Meeks
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>
2014-01-27Resolves: #i124095# Multiple IAccessible and IAccessible2...Steve Yin
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>
2013-12-13winaccessibility: let's try to remove that IsInMainThread()Michael Stahl
... and see what happens. Hopefully nothing bad since everything should be thread-safe now. Change-Id: I333b29bc2066578ccabadb022936a28dafdf7104 (cherry picked from commit a8804dfc502454b562f1e0f5947c2f5264cd9b92)
2013-12-13winaccessibility: remove some noise from not-implemented methodsMichael Stahl
Change-Id: I8046ae37cba87f0e5df550de831229345df1c6f8 (cherry picked from commit fdd76463b4dfd05880effdd2afc0001eea3d850a)
2013-12-13winaccessibility: out-line those COM methodsMichael Stahl
Change-Id: I7e9a94898c6bc8142b46a05ffba56fc41eb125c2 (cherry picked from commit 57acb3d068ef1e47532ae100d78aa0bd8d061683)
2013-12-13winaccessibility: clear entires from XHWNDDocList tooMichael Stahl
... in DeleteAccObj(). Otherwise pointers to deleted documents will be used. Change-Id: Ia807dc3a2c782019cf7fc874d264058219956d74 (cherry picked from commit 975e1d293d6f702c81647449fd28560b6d00e4a0)
2013-12-13winaccessibility: GetChildInterface may return 0Michael Stahl
Change-Id: I950072d22cd315d1898b76a2c345121d31d432c4 (cherry picked from commit 506bab8f62c585380e607b91ab80c939dc99851c)
2013-12-13winaccessibility: do not access freed AccObjectMichael Stahl
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)
2013-12-13winaccessibility: fix exception handling in AccEventListenerMichael Stahl
RemoveMeFromBroadcaster() may catch a DisposedException and then not call NotifyDestroy. Change-Id: I2b766541c3e6800c88a83aa482de0093714d39c2 (cherry picked from commit 9e351edccf3b9a71bb310bcaefe07821479ff5e5)
2013-12-13winaccessibility: nobody calls get_XInterfaceMichael Stahl
Change-Id: I201fc14a02c47a6c735c65f649c6b9f068d92c71 (cherry picked from commit b6664d0649d9be6208b39d6dd276e40347af44c3)
2013-12-13winaccessibility: fix locking in UAccCOMMichael Stahl
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)
2013-12-13winaccessibility: drop icu externals, probably some copypastaMichael Stahl
Change-Id: Ife0960b235e24f17640b197f952a9a094b7d654d (cherry picked from commit 57f88bb76b069e0776574e93d3009785572b8193)
2013-12-13winaccessibility: remove CheckEnableAccessible.h and assorted noiseMichael Stahl
(cherry picked from commit dd7df93417c8169d7f2ee935841fa72ad02dbcc9) Conflicts: winaccessibility/source/UAccCOM/CheckEnableAccessible.h Change-Id: I45e1d72b1abf64a965397c50ac3b95b5bbee3206
2013-12-13winaccessibility: InlineIsEqualGUID is defined by guiddef.hMichael Stahl
Change-Id: Ia469076ec6f815133e77a14940e8afa05e177231 (cherry picked from commit cbda6da004f1de8cdbf2b1298a835afa850be078)
2013-12-13winaccessibility: use SAL_N_ELEMENTSMichael Stahl
Change-Id: I479117e0794375f1ec0c96b78db22b3569b456ec (cherry picked from commit a5c7ed21584b024d52d32917d1b07462a00e7405)
2013-12-13winaccessibility: clean up the AGGMAP in CMAccessibleMichael Stahl
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)
2013-12-03vcl: check if AT is running before loading the libraryMichael Stahl
... which should result in faster startup if it's disabled. Change-Id: I39774b0a56f186d08270c2f17b2b20a823f21dc2 (cherry picked from commit b44ed4c408d92f7a1a3f2390c056d518c137ddd0)
2013-12-03winaccessibility: remove global g_acc_managerMichael Stahl
It is possible to retrieve it via the AccTopWindowListener. Change-Id: I6cc5ab25bc937d0d9f4de54a1bed09a76ce27491 (cherry picked from commit fabca7370e22f96ae041dc179475b35c87ac53ec)
2013-12-03Revert "winaccessibility: let CoCreateInstance calls find the components"Michael Stahl
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)
2013-12-03winaccessibility: fix my stupid mistake in createAggInstanceMichael Stahl
Change-Id: I7701021befcf1dbad85557c2095fe4bf0b4e0ff1 (cherry picked from commit d0e8e6e3cd51736583603e37f0ba2ff7bdf29f5c)
2013-12-03winaccessibility: replace CoCreateInstance with direct instantiationMichael Stahl
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
2013-11-28winaccessibility: improve GenerateNewResId()Michael Stahl
Change-Id: I81f98ca83b97bc2e3e419c7a37ad2a011932553b (cherry picked from commit 0fb33f60ac08c853f14d19e6158994d092a82670)
2013-11-28winaccessibility: remove GetXAccByAccObj()Michael Stahl
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
2013-11-28winaccessibility: remove AccEventListener::m_isDisposedMichael Stahl
It's disposed iff m_xAccessible is 0. Change-Id: I3f8bc104784adf82be43bcaf43b7573a9897f82a (cherry picked from commit a2afe344c6badf432983ce341d4154441837baf3)
2013-11-28winaccessibility: use uno::Reference in AccEventListenerMichael Stahl
... and clear it in disposing(). Change-Id: I69cfe3cdcf6549a0471453960d1f935d9c3b7a0d (cherry picked from commit 83ccdb028529e85fe4c06a47ca57a4a5eeeed159)
2013-11-28winaccessibility: use rtl::Reference for listener lifecycleMichael Stahl
The manual acquire() call was apparently not coupled with a release()? Change-Id: I069c969619e9afce2a4b836642cc1675025b11d0 (cherry picked from commit ef3f28d0ce641e9d51d91412b176a1ecbdc69773)
2013-11-28winaccessibility: actually the member is unused, remove itMichael Stahl
Change-Id: I68e5c1785b73520cb59ca54a602ea176f8146f6f (cherry picked from commit 576ba8ce8238f6a092c74750a895e2e77297fc7e)
2013-11-28winaccessibility: don't store XAccessible* in AccDescendant...ListenerMichael Stahl
Seems safer to store a Reference Change-Id: I86ef9d18c03b2a58058d38e2ae43553ecd2c7be6 (cherry picked from commit 887cf7ccc6c2cfc8652d646e15678c1c10155987)
2013-11-28winaccessibility: why delayload the dlls?Michael Stahl
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)
2013-11-28winaccessibility: README already outdatedMichael Stahl
Change-Id: Id0defc7e4fbe5b700362548559e08163a327399b (cherry picked from commit 2e243de2887f75fa1bd4146bc67d01ae08500d0d)
2013-11-28winaccessibility: remove all Registry content/registration codeMichael Stahl
There is no need to register UAccCOM. (cherry picked from commit 455c39645e3fe1642679aa478c5b1b5a1d3ab0ae) Conflicts: winaccessibility/source/UAccCOM/UAccCOM.cxx Change-Id: I37f5c4030abefbd18b6686652a348bc20a05a9db
2013-11-28winaccessibility: remove obsolete act.hxxMichael Stahl
... obsoleted by 732ec36edfd09d2091d70c4d71b5f182fe279c45 Change-Id: I7f7a9becac2430a7ed4d096be741b610462a8a00 (cherry picked from commit 5e7b29e642dadf99ad954dbf4e3730e0eeef9de8)
2013-11-28winaccessibility: remove ActivateActContext callsMichael Stahl
Obsolete since 732ec36edfd09d2091d70c4d71b5f182fe279c45 Change-Id: I32e880f6a35ffd628b5873a4a7e05def73b939ca
2013-11-25winaccessibility: let CoCreateInstance calls find the componentsMichael Stahl
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)
2013-11-25winaccessibility: fix some error handling in CAccTableMichael Stahl
Change-Id: I3c8bc6a476a6254a4ddc3a7cb0585544f3f78431 (cherry picked from commit d04c970e8f33109a1ef5c52f922a48a0ff62adb0)
2013-11-25winaccessibility: don't need 2 global pointers for AccObjectWinManagerMichael Stahl
Sadly can't use rtl::Static because it needs a ctor parameter... Change-Id: I98bbfbb4d2ef54f40a5f110527b260c0b5b01eed (cherry picked from commit ccb1e06bdb3c37c82ddc7b61135eda09fcdecae4)
2013-11-25winaccessibility: make XAccessibleAction member ReferenceMichael Stahl
Maybe it would be kept alive by AccObject::m_AccActionRef but why not play it safe. Change-Id: I03c2be04e97dcde8a177ef8dfd0d75595ab13a53 (cherry picked from commit a5e281ff0468416e5bb20b16ccac16550a83a9fd)
2013-11-25winaccessibility: CMAccessible needs only one XAccessibleContextMichael Stahl
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)
2013-11-25winaccessibility: CMAccessible needs only one member for XAccessibleMichael Stahl
Merge aliases pUNOInterface and pRef; also pAchorUNOInterface is never used. Change-Id: I1b3841a9aca9d2438b25c66c7f67d09ce13b41f9 (cherry picked from commit fd2877ee09fd4cd738769cda5de5b641f73adee2)
2013-11-21Remove unused exports.dxp fileStephan Bergmann
Change-Id: Ic4313d9d1caea6448749c5c010ea9a034a75a907 (cherry picked from commit 36223cbe8b9a80827a8ec49c031540ea62c23c6d)
2013-11-21No need for default component_getImplementationEnvironment function any moreStephan Bergmann
Change-Id: Ia03e2797d80429284964987d07ebc033346a7ac0 (cherry picked from commit 1917dacaf2f3e29caadcac09162fe9b2158a45d1)
2013-11-21Improve debug outputStephan Bergmann
Change-Id: If09b4c0452d2e436be146a789edf85b1087d74e2 (cherry picked from commit d7791c933d8f7545b2535fe1a6d706008d2f9605)
2013-11-21Simplify css.accessibility.MSAAService and corresponding XMSAAServiceStephan Bergmann
Change-Id: I96c69e871aa7b20cdac9751a64faa5e436f31a1f (cherry picked from commit f3f4d9ec0f0eaa1aebdfebe831021a9d96e63f58)
2013-11-21winaccessibility: "typedef sal_Int32 HWND;" - sigh...Michael Stahl
Change-Id: I5c51652932537cfb200183c30c5c1d954586f8fa
2013-11-21winaccessibility: fix even more pointless HWND to long castingMichael Stahl
Change-Id: I16a39a0dde27b17f1467a9605a4566b05f53a485
2013-11-21winaccessibility: pass pointers as "hyper" in the COM IDLMichael Stahl
Change-Id: I083589fd57540e3b4ec488aeb84bc92dddc02d36
2013-11-21winaccessibility: use sal_Int64 for pointers in AccObjectManagerAgentMichael Stahl
Also use bool instead of random integer types. Change-Id: If4da5f6b7986231312438142c9ea953d761c6745
2013-11-21winaccessibility: clean up global TopLevelWindowListenerMichael Stahl
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