fune/toolkit/components/resistfingerprinting/RelativeTimeline.cpp
Emilio Cobos Álvarez 53e865c922 Bug 1614198 - Make CachedBorderImageData a frame property. r=aosmond
Storing it in the style value doesn't make much sense, specially since we store
drawing-dependent stuff there like the svg viewport size, which clearly depends
on the size of the frame.

This cache may not be very useful anymore, see the linked bug, but this unblocks
me with other style system cleanups and seems safer.

Differential Revision: https://phabricator.services.mozilla.com/D62162

--HG--
extra : moz-landing-system : lando
2020-02-11 20:56:05 +00:00

39 lines
1.2 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsCOMPtr.h"
#include "nsIRandomGenerator.h"
#include "nsServiceManagerUtils.h"
#include "RelativeTimeline.h"
namespace mozilla {
int64_t RelativeTimeline::GetRandomTimelineSeed() {
if (mRandomTimelineSeed == 0) {
nsresult rv;
nsCOMPtr<nsIRandomGenerator> randomGenerator =
do_GetService("@mozilla.org/security/random-generator;1", &rv);
if (NS_WARN_IF(NS_FAILED(rv))) {
mRandomTimelineSeed = rand();
return mRandomTimelineSeed;
}
uint8_t* buffer = nullptr;
rv = randomGenerator->GenerateRandomBytes(sizeof(mRandomTimelineSeed),
&buffer);
if (NS_WARN_IF(NS_FAILED(rv))) {
mRandomTimelineSeed = rand();
return mRandomTimelineSeed;
}
memcpy(&mRandomTimelineSeed, buffer, sizeof(mRandomTimelineSeed));
MOZ_ASSERT(buffer);
free(buffer);
}
return mRandomTimelineSeed;
}
} // namespace mozilla