Bug 1552714 - Refactor constructors. r=smaug

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

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Zibi Braniecki 2019-06-06 16:31:37 +00:00
Родитель 319ed7e3c9
Коммит 49972af017
4 изменённых файлов: 37 добавлений и 18 удалений

Просмотреть файл

@ -52,7 +52,14 @@ dictionary L10nKey {
* - translateRoots - translate all attached roots
*
*/
[ChromeOnly, Constructor]
/**
* Constructor arguments:
* - aResourceids - a list of localization resource URIs
* which will provide messages for this
* Localization instance.
/
[ChromeOnly, Constructor(optional sequence<DOMString> aResourceIds)]
interface DOMLocalization {
/**
* Localization API

Просмотреть файл

@ -50,19 +50,6 @@ NS_INTERFACE_MAP_END
DOMLocalization::DOMLocalization(nsIGlobalObject* aGlobal) : mGlobal(aGlobal) {
mMutations = new mozilla::dom::l10n::Mutations(this);
}
already_AddRefed<DOMLocalization> DOMLocalization::Constructor(
const GlobalObject& aGlobal, ErrorResult& aRv) {
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
if (!global) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
RefPtr<DOMLocalization> loc = new DOMLocalization(global);
return loc.forget();
}
void DOMLocalization::Init(nsTArray<nsString>& aResourceIds, ErrorResult& aRv) {
nsCOMPtr<mozILocalizationJSM> jsm =
do_ImportModule("resource://gre/modules/Localization.jsm");
@ -88,6 +75,30 @@ void DOMLocalization::Init(nsTArray<nsString>& aResourceIds, ErrorResult& aRv) {
RegisterObservers();
}
already_AddRefed<DOMLocalization> DOMLocalization::Constructor(
const GlobalObject& aGlobal,
const Optional<Sequence<nsString>>& aResourceIds, ErrorResult& aRv) {
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
if (!global) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
RefPtr<DOMLocalization> loc = new DOMLocalization(global);
nsTArray<nsString> resourceIds;
if (aResourceIds.WasPassed()) {
resourceIds = aResourceIds.Value();
}
loc->Init(resourceIds, aRv);
if (NS_WARN_IF(aRv.Failed())) {
return nullptr;
}
return loc.forget();
}
nsIGlobalObject* DOMLocalization::GetParentObject() const { return mGlobal; }
JSObject* DOMLocalization::WrapObject(JSContext* aCx,
@ -697,7 +708,7 @@ already_AddRefed<Promise> DOMLocalization::MaybeWrapPromise(
ErrorResult result;
RefPtr<Promise> docPromise = Promise::Create(mGlobal, result);
if (result.Failed()) {
if (NS_WARN_IF(result.Failed())) {
return nullptr;
}

Просмотреть файл

@ -29,10 +29,11 @@ class DOMLocalization : public nsIObserver,
NS_DECL_NSIOBSERVER
explicit DOMLocalization(nsIGlobalObject* aGlobal);
void Init(nsTArray<nsString>& aResourceIds, ErrorResult& aRv);
static already_AddRefed<DOMLocalization> Constructor(
const GlobalObject& aGlobal, ErrorResult& aRv);
void Init(nsTArray<nsString>& aResourceIds, ErrorResult& aRv);
const GlobalObject& aGlobal,
const Optional<Sequence<nsString>>& aResourceIds, ErrorResult& aRv);
nsIGlobalObject* GetParentObject() const;

Просмотреть файл

@ -48,7 +48,7 @@ class DocumentL10n final : public l10n::DOMLocalization {
explicit DocumentL10n(Document* aDocument);
void Init(nsTArray<nsString>& aResourceIds, ErrorResult& aRv);
protected:
protected:
virtual ~DocumentL10n() = default;
RefPtr<Document> mDocument;