bool
WyciwygChannelParent::RecvInit(const IPC::URI& aURI)
{
  nsresult rv;

  nsCOMPtr<nsIURI> uri(aURI);

  nsCString uriSpec;
  uri->GetSpec(uriSpec);
  LOG(("WyciwygChannelParent RecvInit [this=%x uri=%s]\n",
       this, uriSpec.get()));

  nsCOMPtr<nsIIOService> ios(do_GetIOService(&rv));
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  nsCOMPtr<nsIChannel> chan;
  rv = NS_NewChannel(getter_AddRefs(chan), uri, ios);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  mChannel = do_QueryInterface(chan, &rv);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  return true;
}
bool
WyciwygChannelParent::RecvAsyncOpen(const IPC::URI& aOriginal,
                                    const PRUint32& aLoadFlags,
                                    const bool& aUsingPrivateBrowsing)
{
  nsCOMPtr<nsIURI> original(aOriginal);

  LOG(("WyciwygChannelParent RecvAsyncOpen [this=%x]\n", this));

  if (!mChannel)
    return true;

  nsresult rv;

  rv = mChannel->SetOriginalURI(original);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  rv = mChannel->SetLoadFlags(aLoadFlags);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  static_cast<nsWyciwygChannel*>(mChannel.get())->
    OverridePrivateBrowsing(aUsingPrivateBrowsing);

  rv = mChannel->AsyncOpen(this, nsnull);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  return true;
}
bool
WyciwygChannelParent::RecvAsyncOpen(const IPC::URI& aOriginal,
                                    const PRUint32& aLoadFlags)
{
  nsCOMPtr<nsIURI> original(aOriginal);

  LOG(("WyciwygChannelParent RecvAsyncOpen [this=%x]\n", this));

  if (!mChannel)
    return true;

  nsresult rv;

  rv = mChannel->SetOriginalURI(original);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  rv = mChannel->SetLoadFlags(aLoadFlags);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  rv = mChannel->AsyncOpen(this, nsnull);
  if (NS_FAILED(rv))
    return SendCancelEarly(rv);

  return true;
}