Commit 1bb61f61 authored by Sebastian Hengst's avatar Sebastian Hengst
Browse files

Backed out changeset 2d2d603dbdaf (bug 1337056)

parent 8b0ff019
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -3222,16 +3222,5 @@ ContentChild::RecvParentActivated(PBrowserChild* aTab, const bool& aActivated)
  return tab->RecvParentActivated(aActivated);
}

mozilla::ipc::IPCResult
ContentChild::RecvSetPermissionsWithKey(const nsCString& aPermissionKey,
                                        nsTArray<IPC::Permission>&& aPerms)
{
  nsCOMPtr<nsIPermissionManager> permissionManager =
    services::GetPermissionManager();
  permissionManager->SetPermissionsWithKey(aPermissionKey, aPerms);

  return IPC_OK();
}

} // namespace dom
} // namespace mozilla
+0 −5
Original line number Diff line number Diff line
@@ -586,11 +586,6 @@ public:
                                const StructuredCloneData& aInitialData,
                                nsTArray<LookAndFeelInt>&& aLookAndFeelIntCache) override;

  mozilla::ipc::IPCResult
  RecvSetPermissionsWithKey(const nsCString& aPermissionKey,
                            nsTArray<IPC::Permission>&& aPerms) override;


#if defined(XP_WIN) && defined(ACCESSIBILITY)
  bool
  SendGetA11yContentId();
+51 −0
Original line number Diff line number Diff line
@@ -2453,6 +2453,57 @@ ContentParent::RecvReadFontList(InfallibleTArray<FontListEntry>* retValue)
  return IPC_OK();
}

mozilla::ipc::IPCResult
ContentParent::RecvReadPermissions(InfallibleTArray<IPC::Permission>* aPermissions)
{
#ifdef MOZ_PERMISSIONS
  nsCOMPtr<nsIPermissionManager> permissionManagerIface =
    services::GetPermissionManager();
  nsPermissionManager* permissionManager =
    static_cast<nsPermissionManager*>(permissionManagerIface.get());
  MOZ_ASSERT(permissionManager,
             "We have no permissionManager in the Chrome process !");

  nsCOMPtr<nsISimpleEnumerator> enumerator;
  DebugOnly<nsresult> rv = permissionManager->GetEnumerator(getter_AddRefs(enumerator));
  MOZ_ASSERT(NS_SUCCEEDED(rv), "Could not get enumerator!");
  while(1) {
    bool hasMore;
    enumerator->HasMoreElements(&hasMore);
    if (!hasMore)
      break;

    nsCOMPtr<nsISupports> supp;
    enumerator->GetNext(getter_AddRefs(supp));
    nsCOMPtr<nsIPermission> perm = do_QueryInterface(supp);

    nsCOMPtr<nsIPrincipal> principal;
    perm->GetPrincipal(getter_AddRefs(principal));
    nsCString origin;
    if (principal) {
      principal->GetOrigin(origin);
    }
    nsCString type;
    perm->GetType(type);
    uint32_t capability;
    perm->GetCapability(&capability);
    uint32_t expireType;
    perm->GetExpireType(&expireType);
    int64_t expireTime;
    perm->GetExpireTime(&expireTime);

    aPermissions->AppendElement(IPC::Permission(origin, type,
                                                capability, expireType,
                                                expireTime));
  }

  // Ask for future changes
  mSendPermissionUpdates = true;
#endif

  return IPC_OK();
}

mozilla::ipc::IPCResult
ContentParent::RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
                                const bool& aIsPrivateData,
+2 −0
Original line number Diff line number Diff line
@@ -909,6 +909,8 @@ private:

  virtual mozilla::ipc::IPCResult RecvReadFontList(InfallibleTArray<FontListEntry>* retValue) override;

  virtual mozilla::ipc::IPCResult RecvReadPermissions(InfallibleTArray<IPC::Permission>* aPermissions) override;

  virtual mozilla::ipc::IPCResult RecvSetClipboard(const IPCDataTransfer& aDataTransfer,
                                                   const bool& aIsPrivateData,
                                                   const IPC::Principal& aRequestingPrincipal,
+3 −2
Original line number Diff line number Diff line
@@ -591,8 +591,6 @@ child:

    async PParentToChildStream();

    async SetPermissionsWithKey(nsCString aPermissionKey, Permission[] aPermissions);

parent:
    async InitBackground(Endpoint<PBackgroundParent> aEndpoint);

@@ -785,6 +783,9 @@ parent:
                      uint32_t lineNumber, uint32_t colNumber, uint32_t flags,
                      nsCString category);

    // nsIPermissionManager messages
    sync ReadPermissions() returns (Permission[] permissions);

    // Places the items within dataTransfer on the clipboard.
    async SetClipboard(IPCDataTransfer aDataTransfer,
                       bool aIsPrivateData,
Loading