The diversion mechanism never expected to be dealing with data sourced
from the content process, but that's exactly what happens with
ServiceWorker-intercepted channels with the current child-intercept
situation (which is being fixed).
In order to allow timely cancellation of diverted intercepted
channels, there needs to be a way to relay to the HttpChannelChild
that it needs to be canceled so that the synthesized pump can be
canceled and diversion can be marked as complete. This patch adds
such a mechanism to ADivertableParentChannel and PHttpChannel for the
exclusive use of InterceptedHttpChannel and then uses it.
--HG--
extra : rebase_source : db71e927bd1837c6a67f6d56df52cfbb7294df73
extra : source : d156f6b687e1cd8717bf813ab1b944e87b67ed5d
Diversion for intercepted channels with a synthesized response is a
special case. It is not appropriate to send DivertComplete when
mEventQ has been drained, because we are not dealing with the usual
mEventQ-enqueued OnDataAvailable payloads that had been received over
the network and sent down to the child. In this case, all the data
originates in the child and does not go through mEventQ. As such,
the correct place to send DivertComplete is at OnStopComplete for the
synthesized response.
--HG--
extra : rebase_source : a4e1593d38629173b829014a3c316ad156094580
extra : source : 714d3942fb10a96e60e14c475e24e640b9ddd8cc
Strings appearing as literals in the source text are atomized, so this test wasn't testing what it was supposed to be testing.
--HG--
extra : rebase_source : b52c41f50571074821de5657915b59c1a83423c7
Atoms will not be nursery-allocated, so if a cell is in the nursery and its low bit is set, we can be sure it's a string.
--HG--
extra : rebase_source : c54ca139594fe3babb41f23cb29190c65969c419
Note that this patch passes in a dummy gc::InitialHeap parameter that is required to be TenuredHeap, since strings cannot yet be nursery-allocated. This restriction will be lifted in a later patch.
--HG--
extra : rebase_source : bab68e1e875163e388824151c3037c35931b606f
Includes the build changes made by the earlier patches in this series. Also adds some #includes required by other files when these are added to the unified build.
--HG--
extra : rebase_source : 0a7ea51fe46c2c0c919a03b7dd7cccc637e7b515
extra : histedit_source : a70277a4d8d0b37f983e6d97b8b54d54fba01ba6
Adds tests for the DLL interception of the SSL APIs included in the previous patch.
--HG--
extra : rebase_source : 6bcf68b8a688d06c0851132cb791312856eef4ac
extra : histedit_source : b3fe197acb2a2b20b2bf70eff12d754d4f1bb67a
Adds Win32 networking APIs to the function broker so that we can run SSL communications outside of the sandbox.
--HG--
extra : rebase_source : 9a5ec38dd9f8a4f1f7bbada461e97513c7db0ab7
extra : histedit_source : f9460155a84f734fa0663bca9f4d18963c07cef5
Moves GetWindowInfo, GetKeyState, SetCursorPos, GetSaveFileNameW and GetOpenFileNameW to the new FunctionHook and FunctionBroker systems.
--HG--
extra : rebase_source : faa4a5a343d3c7c9310241ad361e563a0221d2d7
extra : histedit_source : 1d06fc0480f03506e188efc834e35561bb6b07d1
The FunctionBroker is a special kind of FunctionHook that brokers the hooked function on another process. In the child process, it uses the FunctionBrokerChild to request that the FunctionBrokerParent run a function and return the response. It handles most cases of parameter, return value and error marshaling on its own. It also guarantees that requests are issued from the proper thread.
--HG--
extra : rebase_source : 99e4864f3e6396695eae0ff9aec75aa3c69f082f
The FunctionBroker actors allow the NPAPI process (child) to run methods on the main process (parent). Both the parent and the child run dedicated threads for this task -- this is a top-level protocol.
--HG--
extra : rebase_source : 38c02140f364f32c4ea16cac79d80facf168c2f9
IpdlTuple is an array of Variants that is accessed by type and that reports an error if there is a type error. This is used for safe and easy communication of IPDL objects, validated at run time since IPC data is untrusted.
--HG--
extra : rebase_source : ee113d501d5372cfd01f0be9a58e2db50ab539b3
We have not been initializing or shutting down XPCOM in the plugin process. We need the nsThreadManager for this bug but, more importantly, we need to properly shut down XPCOM in order to get things like handlers connected to the ShutdownPhases (e.g. ClearOnShutdown, used to free resources at process end).
This patch includes some work to make services that are uninitialized in the plugin process to handle Shutdown calls without failing.
--HG--
extra : rebase_source : 837eddd8f8cf956b248c81cb26ca183bf13d1b46
FunctionHook uses the DLL interceptor to redirect Win32 calls to a user-supplied function.
--HG--
extra : rebase_source : 27c2ee94e1f2993bfd871a559b7d45c5bd45e510