mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 03:35:33 +00:00
7649df02be
Each user agent style sheet has a unique URLExtraData object containing its URL, but since they are refcounted objects, we can't share them easily across processes. Rather than adding support for copying them into a shared memory buffer like we will do with the Rust objects, here we just set up a static array of URLExtraData objects per UA style sheet. The array will be filled in in a later patch. Rust UrlExtraData objects, once they are transformed into their sharable form and copied into the shared memory buffer, will reference them by an index. Depends on D17181 Differential Revision: https://phabricator.services.mozilla.com/D17182 --HG-- extra : moz-landing-system : lando
42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* 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/. */
|
|
|
|
/* thread-safe container of information for resolving url values */
|
|
|
|
#include "mozilla/URLExtraData.h"
|
|
|
|
#include "mozilla/NullPrincipalURI.h"
|
|
#include "nsProxyRelease.h"
|
|
#include "mozilla/net/ReferrerPolicy.h"
|
|
|
|
namespace mozilla {
|
|
|
|
StaticRefPtr<URLExtraData> URLExtraData::sDummy;
|
|
|
|
/* static */
|
|
void URLExtraData::InitDummy() {
|
|
RefPtr<nsIURI> baseURI = NullPrincipalURI::Create();
|
|
RefPtr<nsIURI> referrer = baseURI;
|
|
sDummy = new URLExtraData(baseURI.forget(), referrer.forget(),
|
|
NullPrincipal::CreateWithoutOriginAttributes(),
|
|
net::RP_Unset);
|
|
}
|
|
|
|
/* static */
|
|
void URLExtraData::ReleaseDummy() { sDummy = nullptr; }
|
|
|
|
URLExtraData::~URLExtraData() {
|
|
if (!NS_IsMainThread()) {
|
|
NS_ReleaseOnMainThreadSystemGroup("URLExtraData::mPrincipal",
|
|
mPrincipal.forget());
|
|
}
|
|
}
|
|
|
|
StaticRefPtr<URLExtraData>
|
|
URLExtraData::sShared[size_t(UserAgentStyleSheetID::Count)];
|
|
|
|
} // namespace mozilla
|