docshell/base/nsDocShellTransferableHooks.cpp

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #include "nsDocShellTransferableHooks.h"
     6 #include "nsIClipboardDragDropHooks.h"
     7 #include "nsIClipboardDragDropHookList.h"
     8 #include "nsArrayEnumerator.h"
    10 nsTransferableHookData::nsTransferableHookData()
    11 {
    12 }
    15 nsTransferableHookData::~nsTransferableHookData()
    16 {
    17 }
    19 //*****************************************************************************
    20 // nsIClipboardDragDropHookList
    21 //*****************************************************************************
    23 NS_IMPL_ISUPPORTS(nsTransferableHookData, nsIClipboardDragDropHookList)
    25 NS_IMETHODIMP
    26 nsTransferableHookData::AddClipboardDragDropHooks(
    27                                         nsIClipboardDragDropHooks *aOverrides)
    28 {
    29     NS_ENSURE_ARG(aOverrides);
    31     // don't let a hook be added more than once
    32     if (mHookList.IndexOfObject(aOverrides) == -1)
    33     {
    34         if (!mHookList.AppendObject(aOverrides))
    35             return NS_ERROR_FAILURE;
    36     }
    38     return NS_OK;
    39 }
    41 NS_IMETHODIMP
    42 nsTransferableHookData::RemoveClipboardDragDropHooks(
    43                                          nsIClipboardDragDropHooks *aOverrides)
    44 {
    45     NS_ENSURE_ARG(aOverrides);
    46     if (!mHookList.RemoveObject(aOverrides))
    47         return NS_ERROR_FAILURE;
    49     return NS_OK;
    50 }
    52 NS_IMETHODIMP
    53 nsTransferableHookData::GetHookEnumerator(nsISimpleEnumerator **aResult)
    54 {
    55     return NS_NewArrayEnumerator(aResult, mHookList);
    56 }

mercurial