Граф коммитов

29 Коммитов

Автор SHA1 Сообщение Дата
Aaron Klotz 9db0de2b03 Bug 1354077: Add manifests for IAccessible variants: 32-bit and 64-bit; r=jimm
MozReview-Commit-ID: CoHASAsg5tf
2017-06-06 12:19:12 -06:00
Wes Kocher 3ee39c3f47 Backed out 3 changesets (bug 1354077) for assertions in AccessibleWrap.cpp a=backout CLOSED TREE
Backed out changeset 1380fe0f701b (bug 1354077)
Backed out changeset 2b5602bd352a (bug 1354077)
Backed out changeset a0fc3a1a9122 (bug 1354077)

MozReview-Commit-ID: ABHV3evXKrG
2017-06-12 16:54:10 -07:00
Aaron Klotz 05e5a2e310 Bug 1354077: Add manifests for IAccessible variants: 32-bit and 64-bit; r=jimm
MozReview-Commit-ID: CoHASAsg5tf

--HG--
extra : rebase_source : 84e30f4601c5f628cc731e1796601381cc012b6c
2017-06-06 12:19:12 -06:00
Ryan VanderMeulen cae23d0f9a Bug 1354293 - Don't try to build a11y IPC code that depends on accessibility being enabled. r=aklotz 2017-04-06 18:51:02 -04:00
Aaron Klotz b836337e81 Bug 1303060: Changes to a11y to enable the serving of a COM handler; r=tbsaunde
MozReview-Commit-ID: GTQF3x1pBtX

A general outline of the COM handler (a.k.a. the "smart proxy"):

COM handlers are pieces of code that are loaded by the COM runtime along with
a proxy and are layered above that proxy. This enables the COM handler to
interpose itself between the caller and the proxy, thus providing the
opportunity for the handler to manipulate an interface's method calls before
those calls reach the proxy.

Handlers are regular COM components that live in DLLs and are declared in the
Windows registry. In order to allow for the specifying of a handler (and an
optional payload to be sent with the proxy), the mscom library allows its
clients to specify an implementation of the IHandlerProvider interface.

IHandlerProvider consists of 5 functions:

* GetHandler returns the CLSID of the component that should be loaded into
  the COM client's process. If GetHandler returns a failure code, then no
  handler is loaded.
* GetHandlerPayloadSize and WriteHandlerPayload are for obtaining the payload
  data. These calls are made on a background thread but need to do their work
  on the main thread. We declare the payload struct in IDL. MIDL generates two
  functions, IA2Payload_Encode and IA2Payload_Decode, which are used by
  mscom::StructToStream to read and write that struct to and from buffers.
* The a11y payload struct also includes an interface, IGeckoBackChannel, that
  allows the handler to communicate directly with Gecko. IGeckoBackChannel
  currently provides two methods: one to allow the handler to request fresh
  cache information, and the other to provide Gecko with its IHandlerControl
  interface.
* MarshalAs accepts an IID that specifies the interface that is about to be
  proxied. We may want to send a more sophisticated proxy than the one that
  is requested. The desired IID is returned by this function. In the case of
  a11y interfaces, we should always return IAccessible2_3 if we are asked for
  one of its parent interfaces. This allows us to eliminate round trips to
  resolve more sophisticated interfaces later on.
* NewInstance, which is needed to ensure that all descendent proxies are also
  imbued with the same handler code.

The main focus of this patch is as follows:

1. Provide an implementation of the IHandlerProvider interface;
2. Populate the handler payload (ie, the cache) with data;
3. Modify CreateHolderFromAccessible to specify the HandlerPayload object;
4. Receive the IHandlerControl interface from the handler DLL and move it
   into the chrome process.

Some more information about IHandlerControl:

There is one IHandlerControl per handler DLL instance. It is the interface that
we call in Gecko when we need to dispatch an event to the handler. In order to
ensure that events are dispatched in the correct order, we need to dispatch
those events from the chrome main thread so that they occur in sequential order
with calls to NotifyWinEvent.

--HG--
extra : rebase_source : acb44dead7cc5488424720e1bf58862b7b30374f
2017-04-04 15:23:55 -06:00
Chris Manchester 61aedfd2ef Bug 1303533 - Don't traverse accessible/ipc/win/typelib during Artifact builds. r=mshal
MozReview-Commit-ID: Clxfj8h8ZRT

--HG--
extra : rebase_source : 4d197e629b942d749e9d47fc0bf186d666140f9e
2016-11-01 22:45:35 -07:00
Ryan VanderMeulen 30d948fc12 Bug 1297171 - Unconditionally export COMPtrTypes.h rather than depending on accessibility enabled/disabled status. r=aklotz
--HG--
extra : rebase_source : 7d55dba2cdf73defe9ed199f8734e227bac3a67c
2016-08-22 14:33:00 -04:00
Aaron Klotz 05bd3da901 Bug 1288841: Add a typelib containing info for IServiceProvider and IEnumVARIANT; r=tbsaunde, mshal
MozReview-Commit-ID: 4xe2T8pQ44f
2016-07-22 13:27:10 -06:00
Aaron Klotz 7debf7c239 Bug 1268544: Integrate remote COM objects into a11y code; r=tbsaunde
MozReview-Commit-ID: ctPgegQ83a
2016-08-18 09:49:13 -06:00
Aaron Klotz 6691c8cfa8 Bug 1268544: Refactor ProxyAccessible and dependencies; r=tbsaunde
MozReview-Commit-ID: EHV0JR6NmKf

--HG--
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/ProxyAccessibleBase.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/ProxyAccessibleBase.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/other/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/other/ProxyAccessible.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/win/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/win/ProxyAccessible.h
2016-08-19 13:16:42 -06:00
Aaron Klotz 1ee837c40c Bug 1268544: Refactor PDocAccessible and its dependencies, and add code to integrate remote COM objects; r=tbsaunde
MozReview-Commit-ID: Fr4q3dq1ZQU

--HG--
rename : accessible/ipc/DocAccessibleChild.cpp => accessible/ipc/other/DocAccessibleChild.cpp
rename : accessible/ipc/DocAccessibleChild.h => accessible/ipc/other/DocAccessibleChild.h
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/other/PDocAccessible.ipdl
rename : accessible/ipc/moz.build => accessible/ipc/other/moz.build
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/win/PDocAccessible.ipdl
2016-08-15 17:14:53 -06:00
Sebastian Hengst 87b8b23d92 Backed out changeset a2b189275d7a (bug 1268544) for asserting in Windows M(oth) jobs. r=backout on a CLOSED TREE
--HG--
rename : accessible/ipc/other/DocAccessibleChild.cpp => accessible/ipc/DocAccessibleChild.cpp
rename : accessible/ipc/other/DocAccessibleChild.h => accessible/ipc/DocAccessibleChild.h
rename : accessible/ipc/win/PDocAccessible.ipdl => accessible/ipc/PDocAccessible.ipdl
2016-08-19 10:04:23 +02:00
Sebastian Hengst 8e027d975c Backed out changeset 2b4c3a792b14 (bug 1268544)
--HG--
rename : accessible/ipc/win/ProxyAccessible.cpp => accessible/ipc/ProxyAccessible.cpp
rename : accessible/ipc/win/ProxyAccessible.h => accessible/ipc/ProxyAccessible.h
2016-08-19 10:02:32 +02:00
Sebastian Hengst 5842832f4e Backed out changeset ff58e1a5f483 (bug 1268544) 2016-08-19 10:02:19 +02:00
Sebastian Hengst 2f058326f7 Backed out changeset ce6e2c41d939 (bug 1288841) 2016-08-19 10:02:15 +02:00
Aaron Klotz 8224d60f6f Bug 1288841: Add a typelib containing info for IServiceProvider and IEnumVARIANT; r=tbsaunde, mshal
MozReview-Commit-ID: 4xe2T8pQ44f
2016-07-22 13:27:10 -06:00
Aaron Klotz 92899f5101 Bug 1268544: Integrate remote COM objects into a11y code; r=tbsaunde
MozReview-Commit-ID: ctPgegQ83a
2016-08-18 09:49:13 -06:00
Aaron Klotz 1597663492 Bug 1268544: Refactor ProxyAccessible and dependencies; r=tbsaunde
MozReview-Commit-ID: EHV0JR6NmKf

--HG--
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/ProxyAccessibleBase.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/ProxyAccessibleBase.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/other/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/other/ProxyAccessible.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/win/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/win/ProxyAccessible.h
2016-08-18 10:45:55 -06:00
Aaron Klotz 1d9ba42f65 Bug 1268544: Refactor PDocAccessible and its dependencies, and add code to integrate remote COM objects; r=tbsaunde
MozReview-Commit-ID: Fr4q3dq1ZQU

--HG--
rename : accessible/ipc/DocAccessibleChild.cpp => accessible/ipc/other/DocAccessibleChild.cpp
rename : accessible/ipc/DocAccessibleChild.h => accessible/ipc/other/DocAccessibleChild.h
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/other/PDocAccessible.ipdl
rename : accessible/ipc/moz.build => accessible/ipc/other/moz.build
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/win/PDocAccessible.ipdl
2016-08-15 17:14:53 -06:00
Phil Ringnalda 0d69896d44 Backed out 6 changesets (bug 1288841, bug 1268544) for causing Win7 e10s Marionette to fail in test_import_script.py TestImportScriptContent.test_imports_apply_globally
Backed out changeset c9f49a119255 (bug 1288841)
Backed out changeset a9d43e83e070 (bug 1268544)
Backed out changeset d898178a0809 (bug 1268544)
Backed out changeset 4887b4164dd9 (bug 1268544)
Backed out changeset 7c3a5a770cae (bug 1268544)
Backed out changeset 12aa15cf5879 (bug 1268544)

--HG--
rename : accessible/ipc/other/DocAccessibleChild.cpp => accessible/ipc/DocAccessibleChild.cpp
rename : accessible/ipc/other/DocAccessibleChild.h => accessible/ipc/DocAccessibleChild.h
rename : accessible/ipc/win/PDocAccessible.ipdl => accessible/ipc/PDocAccessible.ipdl
rename : accessible/ipc/win/ProxyAccessible.cpp => accessible/ipc/ProxyAccessible.cpp
rename : accessible/ipc/win/ProxyAccessible.h => accessible/ipc/ProxyAccessible.h
2016-08-18 00:30:21 -07:00
Aaron Klotz d53414c75a Bug 1288841: Add a typelib containing info for IServiceProvider and IEnumVARIANT; r=tbsaunde, mshal
MozReview-Commit-ID: 4xe2T8pQ44f
2016-07-22 13:27:10 -06:00
Aaron Klotz 01e4a55f10 Bug 1268544: Integrate remote COM objects into a11y code; r=tbsaunde
MozReview-Commit-ID: ctPgegQ83a
2016-08-15 14:24:12 -06:00
Aaron Klotz 494a0e9e53 Bug 1268544: Refactor ProxyAccessible and dependencies; r=tbsaunde
MozReview-Commit-ID: EHV0JR6NmKf

--HG--
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/ProxyAccessibleBase.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/ProxyAccessibleBase.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/other/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/other/ProxyAccessible.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/win/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/win/ProxyAccessible.h
2016-08-16 12:21:41 -06:00
Aaron Klotz c3a25c1ddc Bug 1268544: Refactor PDocAccessible and its dependencies, and add code to integrate remote COM objects; r=tbsaunde
MozReview-Commit-ID: Fr4q3dq1ZQU

--HG--
rename : accessible/ipc/DocAccessibleChild.cpp => accessible/ipc/other/DocAccessibleChild.cpp
rename : accessible/ipc/DocAccessibleChild.h => accessible/ipc/other/DocAccessibleChild.h
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/other/PDocAccessible.ipdl
rename : accessible/ipc/moz.build => accessible/ipc/other/moz.build
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/win/PDocAccessible.ipdl
2016-08-15 17:14:53 -06:00
Wes Kocher 021a12c86f Backed out changesets e4a39e456f89 (bug 1268544) for mass build bustage a=backout CLOSED TREE
***
Backed out changeset 119a4b187938 (bug 1268544)
***
Backed out changeset d83cba382cfe (bug 1268544)
***
Backed out changeset a0085eb5ffe7 (bug 1268544)
***
Backed out changeset eefa457c3680 (bug 1288843)
***
Backed out changeset 17dc46beb1a5 (bug 1288841)
***
Backed out changeset e76f58f328d4 (bug 1268544)
***
Backed out changeset ffc8ee715fdb (bug 1268544)
***
Backed out changeset 99f0ea19b8f5 (bug 1268544)
***
Backed out changeset 2bdfb9514317 (bug 1268544)
***
Backed out changeset e4b3a5e1756d (bug 1268544)

--HG--
rename : accessible/ipc/other/DocAccessibleChild.cpp => accessible/ipc/DocAccessibleChild.cpp
rename : accessible/ipc/other/DocAccessibleChild.h => accessible/ipc/DocAccessibleChild.h
rename : accessible/ipc/win/PDocAccessible.ipdl => accessible/ipc/PDocAccessible.ipdl
rename : accessible/ipc/win/ProxyAccessible.cpp => accessible/ipc/ProxyAccessible.cpp
rename : accessible/ipc/win/ProxyAccessible.h => accessible/ipc/ProxyAccessible.h
extra : amend_source : dc73ec117c7279539cab36af821637bb1b0236bd
extra : histedit_source : 438ce81f07a53af61b1cabf7620f30b090e7d5e2%2Ccb6472913fe0d7d2ec66bf0cedc18f2e4d00678e
2016-08-15 15:58:45 -07:00
Aaron Klotz 5dc67fdd18 Bug 1288841: Add a typelib containing info for IServiceProvider and IEnumVARIANT; r=tbsaunde, mshal
MozReview-Commit-ID: 4xe2T8pQ44f
2016-07-22 13:27:10 -06:00
Aaron Klotz 9c133fb86d Bug 1268544: Integrate remote COM objects into a11y code; r=tbsaunde
MozReview-Commit-ID: ctPgegQ83a
2016-08-15 14:24:12 -06:00
Aaron Klotz 53a0a1af6b Bug 1268544: Refactor ProxyAccessible and dependencies; r=tbsaunde
MozReview-Commit-ID: EHV0JR6NmKf

--HG--
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/ProxyAccessibleBase.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/ProxyAccessibleBase.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/other/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/other/ProxyAccessible.h
rename : accessible/ipc/ProxyAccessible.cpp => accessible/ipc/win/ProxyAccessible.cpp
rename : accessible/ipc/ProxyAccessible.h => accessible/ipc/win/ProxyAccessible.h
2016-08-04 18:28:08 -06:00
Aaron Klotz 55b28e20c7 Bug 1268544: Refactor PDocAccessible and its dependencies, and add code to integrate remote COM objects; r=tbsaunde
MozReview-Commit-ID: Fr4q3dq1ZQU

--HG--
rename : accessible/ipc/DocAccessibleChild.cpp => accessible/ipc/other/DocAccessibleChild.cpp
rename : accessible/ipc/DocAccessibleChild.h => accessible/ipc/other/DocAccessibleChild.h
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/other/PDocAccessible.ipdl
rename : accessible/ipc/moz.build => accessible/ipc/other/moz.build
rename : accessible/ipc/PDocAccessible.ipdl => accessible/ipc/win/PDocAccessible.ipdl
2016-08-15 14:24:04 -06:00