mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 03:35:33 +00:00
7d6f6c28d7
This depends on https://github.com/eqrion/cbindgen/pull/308. Other than that, this should be ready to go. There's still a bit more magic than what I'd like to eventually. I should be able to make cbindgen not rename types if it doesn't know about them, or something. But this removes most of the manual binding function implementations (all but the ones that are declared via macros, which cbindgen doesn't see across). I need to give up on the _Drop functions taking an Owned<T> because of instantiation order fiasco. In order to define DefaultDelete I need Owned to be complete, but I cannot do it after including the generated file since some declarations already instantiate the specialization. Oh well. Differential Revision: https://phabricator.services.mozilla.com/D24798 --HG-- rename : servo/components/style/cbindgen.toml => servo/ports/geckolib/cbindgen.toml extra : moz-landing-system : lando
42 lines
1.4 KiB
C++
42 lines
1.4 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/. */
|
|
|
|
#include "MappedDeclarations.h"
|
|
|
|
#include "nsAttrValue.h"
|
|
#include "nsAttrValueInlines.h"
|
|
#include "mozilla/dom/Document.h"
|
|
#include "nsPresContext.h"
|
|
|
|
namespace mozilla {
|
|
|
|
void MappedDeclarations::SetIdentAtomValue(nsCSSPropertyID aId,
|
|
nsAtom* aValue) {
|
|
Servo_DeclarationBlock_SetIdentStringValue(mDecl, aId, aValue);
|
|
if (aId == eCSSProperty__x_lang) {
|
|
// This forces the lang prefs result to be cached so that we can access them
|
|
// off main thread during traversal.
|
|
//
|
|
// FIXME(emilio): Can we move mapped attribute declarations across
|
|
// documents? Isn't this wrong in that case? This is pretty out of place
|
|
// anyway.
|
|
mDocument->ForceCacheLang(aValue);
|
|
}
|
|
}
|
|
|
|
void MappedDeclarations::SetBackgroundImage(const nsAttrValue& aValue) {
|
|
if (aValue.Type() != nsAttrValue::eURL) {
|
|
return;
|
|
}
|
|
// FIXME(emilio): Going through URL parsing again seems slightly wasteful.
|
|
nsAutoString str;
|
|
aValue.ToString(str);
|
|
Servo_DeclarationBlock_SetBackgroundImage(
|
|
mDecl, &str, mDocument->DefaultStyleAttrURLData());
|
|
}
|
|
|
|
} // namespace mozilla
|