LCOV - code coverage report
Current view: top level - dom/webbrowserpersist - WebBrowserPersistRemoteDocument.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 78 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 20 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
       2             :  *
       3             :  * This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #include "WebBrowserPersistRemoteDocument.h"
       8             : #include "WebBrowserPersistDocumentParent.h"
       9             : #include "WebBrowserPersistResourcesParent.h"
      10             : #include "WebBrowserPersistSerializeParent.h"
      11             : #include "mozilla/Unused.h"
      12             : 
      13             : namespace mozilla {
      14             : 
      15           0 : NS_IMPL_ISUPPORTS(WebBrowserPersistRemoteDocument,
      16             :                   nsIWebBrowserPersistDocument)
      17             : 
      18           0 : WebBrowserPersistRemoteDocument
      19             : ::WebBrowserPersistRemoteDocument(WebBrowserPersistDocumentParent* aActor,
      20             :                                   const Attrs& aAttrs,
      21           0 :                                   nsIInputStream* aPostData)
      22             : : mActor(aActor)
      23             : , mAttrs(aAttrs)
      24           0 : , mPostData(aPostData)
      25             : {
      26           0 : }
      27             : 
      28           0 : WebBrowserPersistRemoteDocument::~WebBrowserPersistRemoteDocument()
      29             : {
      30           0 :     if (mActor) {
      31           0 :         Unused << mActor->Send__delete__(mActor);
      32             :         // That will call mActor->ActorDestroy, which calls this->ActorDestroy
      33             :         // (whether or not the IPC send succeeds).
      34             :     }
      35           0 :     MOZ_ASSERT(!mActor);
      36           0 : }
      37             : 
      38             : void
      39           0 : WebBrowserPersistRemoteDocument::ActorDestroy(void)
      40             : {
      41           0 :     mActor = nullptr;
      42           0 : }
      43             : 
      44             : NS_IMETHODIMP
      45           0 : WebBrowserPersistRemoteDocument::GetIsPrivate(bool* aIsPrivate)
      46             : {
      47           0 :     *aIsPrivate = mAttrs.isPrivate();
      48           0 :     return NS_OK;
      49             : }
      50             : 
      51             : NS_IMETHODIMP
      52           0 : WebBrowserPersistRemoteDocument::GetDocumentURI(nsACString& aURISpec)
      53             : {
      54           0 :     aURISpec = mAttrs.documentURI();
      55           0 :     return NS_OK;
      56             : }
      57             : 
      58             : NS_IMETHODIMP
      59           0 : WebBrowserPersistRemoteDocument::GetBaseURI(nsACString& aURISpec)
      60             : {
      61           0 :     aURISpec = mAttrs.baseURI();
      62           0 :     return NS_OK;
      63             : }
      64             : 
      65             : NS_IMETHODIMP
      66           0 : WebBrowserPersistRemoteDocument::GetContentType(nsACString& aContentType)
      67             : {
      68           0 :     aContentType = mAttrs.contentType();
      69           0 :     return NS_OK;
      70             : }
      71             : 
      72             : NS_IMETHODIMP
      73           0 : WebBrowserPersistRemoteDocument::GetCharacterSet(nsACString& aCharSet)
      74             : {
      75           0 :     aCharSet = mAttrs.characterSet();
      76           0 :     return NS_OK;
      77             : }
      78             : 
      79             : NS_IMETHODIMP
      80           0 : WebBrowserPersistRemoteDocument::GetTitle(nsAString& aTitle)
      81             : {
      82           0 :     aTitle = mAttrs.title();
      83           0 :     return NS_OK;
      84             : }
      85             : 
      86             : NS_IMETHODIMP
      87           0 : WebBrowserPersistRemoteDocument::GetReferrer(nsAString& aReferrer)
      88             : {
      89           0 :     aReferrer = mAttrs.referrer();
      90           0 :     return NS_OK;
      91             : }
      92             : 
      93             : NS_IMETHODIMP
      94           0 : WebBrowserPersistRemoteDocument::GetContentDisposition(nsAString& aDisp)
      95             : {
      96           0 :     aDisp = mAttrs.contentDisposition();
      97           0 :     return NS_OK;
      98             : }
      99             : 
     100             : NS_IMETHODIMP
     101           0 : WebBrowserPersistRemoteDocument::GetCacheKey(uint32_t* aCacheKey)
     102             : {
     103           0 :     *aCacheKey = mAttrs.cacheKey();
     104           0 :     return NS_OK;
     105             : }
     106             : 
     107             : NS_IMETHODIMP
     108           0 : WebBrowserPersistRemoteDocument::GetPersistFlags(uint32_t* aFlags)
     109             : {
     110           0 :     *aFlags = mAttrs.persistFlags();
     111           0 :     return NS_OK;
     112             : }
     113             : 
     114             : NS_IMETHODIMP
     115           0 : WebBrowserPersistRemoteDocument::SetPersistFlags(uint32_t aFlags)
     116             : {
     117           0 :     if (!mActor) {
     118           0 :         return NS_ERROR_FAILURE;
     119             :     }
     120           0 :     if (!mActor->SendSetPersistFlags(aFlags)) {
     121           0 :         return NS_ERROR_FAILURE;
     122             :     }
     123           0 :     mAttrs.persistFlags() = aFlags;
     124           0 :     return NS_OK;
     125             : }
     126             : 
     127             : NS_IMETHODIMP
     128           0 : WebBrowserPersistRemoteDocument::GetPostData(nsIInputStream** aStream)
     129             : {
     130           0 :     nsCOMPtr<nsIInputStream> stream = mPostData;
     131           0 :     stream.forget(aStream);
     132           0 :     return NS_OK;
     133             : }
     134             : 
     135             : NS_IMETHODIMP
     136           0 : WebBrowserPersistRemoteDocument::ReadResources(nsIWebBrowserPersistResourceVisitor* aVisitor)
     137             : {
     138           0 :     if (!mActor) {
     139           0 :         return NS_ERROR_FAILURE;
     140             :     }
     141             :     RefPtr<WebBrowserPersistResourcesParent> subActor =
     142           0 :         new WebBrowserPersistResourcesParent(this, aVisitor);
     143           0 :     return mActor->SendPWebBrowserPersistResourcesConstructor(
     144           0 :         subActor.forget().take())
     145           0 :         ? NS_OK : NS_ERROR_FAILURE;
     146             : }
     147             : 
     148             : NS_IMETHODIMP
     149           0 : WebBrowserPersistRemoteDocument::WriteContent(
     150             :     nsIOutputStream* aStream,
     151             :     nsIWebBrowserPersistURIMap* aMap,
     152             :     const nsACString& aRequestedContentType,
     153             :     uint32_t aEncoderFlags,
     154             :     uint32_t aWrapColumn,
     155             :     nsIWebBrowserPersistWriteCompletion* aCompletion)
     156             : {
     157           0 :     if (!mActor) {
     158           0 :         return NS_ERROR_FAILURE;
     159             :     }
     160             : 
     161             :     nsresult rv;
     162           0 :     WebBrowserPersistURIMap map;
     163             :     uint32_t numMappedURIs;
     164           0 :     if (aMap) {
     165           0 :         rv = aMap->GetTargetBaseURI(map.targetBaseURI());
     166           0 :         NS_ENSURE_SUCCESS(rv, rv);
     167           0 :         rv = aMap->GetNumMappedURIs(&numMappedURIs);
     168           0 :         NS_ENSURE_SUCCESS(rv, rv);
     169           0 :         for (uint32_t i = 0; i < numMappedURIs; ++i) {
     170             :             WebBrowserPersistURIMapEntry& nextEntry =
     171           0 :                 *(map.mapURIs().AppendElement());
     172           0 :             rv = aMap->GetURIMapping(i, nextEntry.mapFrom(), nextEntry.mapTo());
     173           0 :             NS_ENSURE_SUCCESS(rv, rv);
     174             :         }
     175             :     }
     176             : 
     177             :     auto* subActor = new WebBrowserPersistSerializeParent(this,
     178             :                                                           aStream,
     179           0 :                                                           aCompletion);
     180           0 :     nsCString requestedContentType(aRequestedContentType); // Sigh.
     181           0 :     return mActor->SendPWebBrowserPersistSerializeConstructor(
     182             :         subActor, map, requestedContentType, aEncoderFlags, aWrapColumn)
     183           0 :         ? NS_OK : NS_ERROR_FAILURE;
     184             : }
     185             : 
     186             : } // namespace mozilla

Generated by: LCOV version 1.13