コード例 #1
0
ファイル: nsFilePickerProxy.cpp プロジェクト: rlr/gecko-dev
bool
nsFilePickerProxy::Recv__delete__(const MaybeInputFiles& aFiles,
                                  const int16_t& aResult)
{
  if (aFiles.type() == MaybeInputFiles::TInputFiles) {
    const InfallibleTArray<PBlobChild*>& blobs = aFiles.get_InputFiles().blobsChild();
    for (uint32_t i = 0; i < blobs.Length(); ++i) {
      BlobChild* actor = static_cast<BlobChild*>(blobs[i]);
      RefPtr<BlobImpl> blobImpl = actor->GetBlobImpl();
      NS_ENSURE_TRUE(blobImpl, true);

      if (!blobImpl->IsFile()) {
        return true;
      }

      RefPtr<File> file = File::Create(mParent, blobImpl);
      MOZ_ASSERT(file);

      mFilesOrDirectories.AppendElement(file);
    }
  }

  if (mCallback) {
    mCallback->Done(aResult);
    mCallback = nullptr;
  }

  return true;
}
コード例 #2
0
ファイル: nsFilePickerProxy.cpp プロジェクト: L2-D2/gecko-dev
bool
nsFilePickerProxy::Recv__delete__(const MaybeInputFiles& aFiles,
                                  const int16_t& aResult)
{
  if (aFiles.type() == MaybeInputFiles::TInputFiles) {
    const InfallibleTArray<PBlobChild*>& files = aFiles.get_InputFiles().filesChild();
    for (uint32_t i = 0; i < files.Length(); ++i) {
      BlobChild* actor = static_cast<BlobChild*>(files[i]);
      nsCOMPtr<nsIDOMBlob> blob = actor->GetBlob();
      nsCOMPtr<nsIDOMFile> file(do_QueryInterface(blob));
      NS_ENSURE_TRUE(file, true);
      mDomfiles.AppendObject(file);
    }
  }

  if (mCallback) {
    mCallback->Done(aResult);
    mCallback = nullptr;
  }

  return true;
}