Exemplo n.º 1
0
/**
 * @param aCOMProxy COM Proxy to the document in the content process.
 */
void
DocAccessibleParent::SendParentCOMProxy()
{
  // Make sure that we're not racing with a tab shutdown
  auto tab = static_cast<dom::TabParent*>(Manager());
  MOZ_ASSERT(tab);
  if (tab->IsDestroyed()) {
    return;
  }

  Accessible* outerDoc = OuterDocOfRemoteBrowser();
  if (!outerDoc) {
    return;
  }

  IAccessible* rawNative = nullptr;
  outerDoc->GetNativeInterface((void**) &rawNative);
  MOZ_ASSERT(rawNative);

  IAccessibleHolder::COMPtrType ptr(rawNative);
  IAccessibleHolder holder(Move(ptr));
  if (!PDocAccessibleParent::SendParentCOMProxy(holder)) {
    return;
  }

#if defined(MOZ_CONTENT_SANDBOX)
  mParentProxyStream = Move(holder.GetPreservedStream());
#endif // defined(MOZ_CONTENT_SANDBOX)
}
/**
 * @param aCOMProxy COM Proxy to the document in the content process.
 * @param aParentCOMProxy COM Proxy to the OuterDocAccessible that is
 *        the parent of the document. The content process will use this
 *        proxy when traversing up across the content/chrome boundary.
 */
bool
DocAccessibleParent::RecvCOMProxy(const IAccessibleHolder& aCOMProxy,
                                  IAccessibleHolder* aParentCOMProxy)
{
  RefPtr<IAccessible> ptr(aCOMProxy.Get());
  SetCOMInterface(ptr);

  Accessible* outerDoc = OuterDocOfRemoteBrowser();
  IAccessible* rawNative = nullptr;
  if (outerDoc) {
    outerDoc->GetNativeInterface((void**) &rawNative);
  }

  aParentCOMProxy->Set(IAccessibleHolder::COMPtrType(rawNative));
  return true;
}
Exemplo n.º 3
0
/**
 * @param aCOMProxy COM Proxy to the document in the content process.
 */
void
DocAccessibleParent::SendParentCOMProxy()
{
  // Make sure that we're not racing with a tab shutdown
  auto tab = static_cast<dom::TabParent*>(Manager());
  MOZ_ASSERT(tab);
  if (tab->IsDestroyed()) {
    return;
  }

  Accessible* outerDoc = OuterDocOfRemoteBrowser();
  if (!outerDoc) {
    return;
  }

  IAccessible* rawNative = nullptr;
  outerDoc->GetNativeInterface((void**) &rawNative);
  MOZ_ASSERT(rawNative);

  IAccessibleHolder::COMPtrType ptr(rawNative);
  IAccessibleHolder holder(Move(ptr));
  Unused << PDocAccessibleParent::SendParentCOMProxy(holder);
}