Loading Cargo.lock +1 −10 Original line number Diff line number Diff line Loading @@ -276,14 +276,6 @@ dependencies = [ "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" version = "0.5.1" Loading Loading @@ -1903,7 +1895,7 @@ version = "0.1.0" dependencies = [ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "boxfnonce 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", Loading Loading @@ -2248,7 +2240,6 @@ dependencies = [ "checksum cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "56d741ea7a69e577f6d06b36b7dff4738f680593dc27a701ffa8506b73ce28bb" "checksum cookie 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "746858cae4eae40fff37e1998320068df317bc247dc91a67c6cfa053afdc2abb" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb0ed45fdc32f9ab426238fba9407dfead7bacd7900c9b4dd3f396f46eafdae3" "checksum core-text 9.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bd581c37283d0c23311d179aefbb891f2324ee0405da58a26e8594ab76e5748" Loading accessible/ipc/win/HandlerProvider.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -464,6 +464,13 @@ HandlerProvider::MarshalAs(REFIID aIid) return aIid; } HRESULT HandlerProvider::DisconnectHandlerRemotes() { IUnknown* unk = static_cast<IGeckoBackChannel*>(this); return ::CoDisconnectObject(unk, 0); } REFIID HandlerProvider::GetEffectiveOutParamIid(REFIID aCallIid, ULONG aCallMethod) Loading accessible/ipc/win/HandlerProvider.h +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ public: STDMETHODIMP WriteHandlerPayload(NotNull<mscom::IInterceptor*> aInterceptor, NotNull<IStream*> aStream) override; STDMETHODIMP_(REFIID) MarshalAs(REFIID aIid) override; STDMETHODIMP DisconnectHandlerRemotes() override; STDMETHODIMP_(REFIID) GetEffectiveOutParamIid(REFIID aCallIid, ULONG aCallMethod) override; STDMETHODIMP NewInstance(REFIID aIid, Loading accessible/windows/msaa/AccessibleWrap.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ #include "mozilla/ReverseIterator.h" #include "nsIXULRuntime.h" #include "mozilla/mscom/AsyncInvoker.h" #include "mozilla/mscom/Interceptor.h" #include "oleacc.h" Loading Loading @@ -103,6 +104,24 @@ AccessibleWrap::Shutdown() } } if (XRE_IsContentProcess()) { // Bug 1434822: To improve performance for cross-process COM, we disable COM // garbage collection. However, this means we never receive Release calls // from clients, so defunct accessibles can never be deleted. Since we // know when an accessible is shutting down, we can work around this by // forcing COM to disconnect this object from all of its remote clients, // which will cause associated references to be released. IUnknown* unk = static_cast<IAccessible*>(this); mscom::Interceptor::DisconnectRemotesForTarget(unk); // If an accessible was retrieved via IAccessibleHypertext::hyperlink*, // it will have a different Interceptor that won't be matched by the above // call, even though it's the same object. Therefore, call it again with // the IAccessibleHyperlink pointer. We can remove this horrible hack once // bug 1440267 is fixed. unk = static_cast<IAccessibleHyperlink*>(this); mscom::Interceptor::DisconnectRemotesForTarget(unk); } Accessible::Shutdown(); } Loading browser/base/content/browser-sync.js +1 −1 Original line number Diff line number Diff line Loading @@ -565,7 +565,7 @@ var gSync = { const state = UIState.get(); if (state.status == UIState.STATUS_SIGNED_IN) { this.updateSyncStatus({ syncing: true }); setTimeout(() => Weave.Service.errorHandler.syncAndReportErrors(), 0); Services.tm.dispatchToMainThread(() => Weave.Service.sync()); } }, Loading Loading
Cargo.lock +1 −10 Original line number Diff line number Diff line Loading @@ -276,14 +276,6 @@ dependencies = [ "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" version = "0.5.1" Loading Loading @@ -1903,7 +1895,7 @@ version = "0.1.0" dependencies = [ "bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "boxfnonce 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", Loading Loading @@ -2248,7 +2240,6 @@ dependencies = [ "checksum cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "56d741ea7a69e577f6d06b36b7dff4738f680593dc27a701ffa8506b73ce28bb" "checksum cookie 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "746858cae4eae40fff37e1998320068df317bc247dc91a67c6cfa053afdc2abb" "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" "checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624" "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb0ed45fdc32f9ab426238fba9407dfead7bacd7900c9b4dd3f396f46eafdae3" "checksum core-text 9.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bd581c37283d0c23311d179aefbb891f2324ee0405da58a26e8594ab76e5748" Loading
accessible/ipc/win/HandlerProvider.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -464,6 +464,13 @@ HandlerProvider::MarshalAs(REFIID aIid) return aIid; } HRESULT HandlerProvider::DisconnectHandlerRemotes() { IUnknown* unk = static_cast<IGeckoBackChannel*>(this); return ::CoDisconnectObject(unk, 0); } REFIID HandlerProvider::GetEffectiveOutParamIid(REFIID aCallIid, ULONG aCallMethod) Loading
accessible/ipc/win/HandlerProvider.h +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ public: STDMETHODIMP WriteHandlerPayload(NotNull<mscom::IInterceptor*> aInterceptor, NotNull<IStream*> aStream) override; STDMETHODIMP_(REFIID) MarshalAs(REFIID aIid) override; STDMETHODIMP DisconnectHandlerRemotes() override; STDMETHODIMP_(REFIID) GetEffectiveOutParamIid(REFIID aCallIid, ULONG aCallMethod) override; STDMETHODIMP NewInstance(REFIID aIid, Loading
accessible/windows/msaa/AccessibleWrap.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ #include "mozilla/ReverseIterator.h" #include "nsIXULRuntime.h" #include "mozilla/mscom/AsyncInvoker.h" #include "mozilla/mscom/Interceptor.h" #include "oleacc.h" Loading Loading @@ -103,6 +104,24 @@ AccessibleWrap::Shutdown() } } if (XRE_IsContentProcess()) { // Bug 1434822: To improve performance for cross-process COM, we disable COM // garbage collection. However, this means we never receive Release calls // from clients, so defunct accessibles can never be deleted. Since we // know when an accessible is shutting down, we can work around this by // forcing COM to disconnect this object from all of its remote clients, // which will cause associated references to be released. IUnknown* unk = static_cast<IAccessible*>(this); mscom::Interceptor::DisconnectRemotesForTarget(unk); // If an accessible was retrieved via IAccessibleHypertext::hyperlink*, // it will have a different Interceptor that won't be matched by the above // call, even though it's the same object. Therefore, call it again with // the IAccessibleHyperlink pointer. We can remove this horrible hack once // bug 1440267 is fixed. unk = static_cast<IAccessibleHyperlink*>(this); mscom::Interceptor::DisconnectRemotesForTarget(unk); } Accessible::Shutdown(); } Loading
browser/base/content/browser-sync.js +1 −1 Original line number Diff line number Diff line Loading @@ -565,7 +565,7 @@ var gSync = { const state = UIState.get(); if (state.status == UIState.STATUS_SIGNED_IN) { this.updateSyncStatus({ syncing: true }); setTimeout(() => Weave.Service.errorHandler.syncAndReportErrors(), 0); Services.tm.dispatchToMainThread(() => Weave.Service.sync()); } }, Loading