mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-23 15:47:30 +09:00
Issue #2255 - Use Maybe<> in the Performance API.
This commit is contained in:
parent
efde4d468e
commit
1f5eaee101
2 changed files with 19 additions and 17 deletions
|
|
@ -413,16 +413,16 @@ DOMHighResTimeStamp Performance::ConvertNameToTimestamp(const nsAString& aName,
|
||||||
DOMHighResTimeStamp
|
DOMHighResTimeStamp
|
||||||
Performance::ResolveEndTimeForMeasure(
|
Performance::ResolveEndTimeForMeasure(
|
||||||
const Optional<nsAString>& aEndMark,
|
const Optional<nsAString>& aEndMark,
|
||||||
const PerformanceMeasureOptions* aOptions,
|
const Maybe<const PerformanceMeasureOptions&>& aOptions,
|
||||||
ErrorResult& aRv)
|
ErrorResult& aRv)
|
||||||
{
|
{
|
||||||
DOMHighResTimeStamp endTime;
|
DOMHighResTimeStamp endTime;
|
||||||
if (aEndMark.WasPassed()) {
|
if (aEndMark.WasPassed()) {
|
||||||
endTime = ConvertMarkToTimestampWithString(aEndMark.Value(), aRv);
|
endTime = ConvertMarkToTimestampWithString(aEndMark.Value(), aRv);
|
||||||
} else if (aOptions != nullptr && aOptions->mEnd.WasPassed()) {
|
} else if (aOptions && aOptions->mEnd.WasPassed()) {
|
||||||
endTime = ConvertMarkToTimestamp(ResolveTimestampAttribute::End,
|
endTime = ConvertMarkToTimestamp(ResolveTimestampAttribute::End,
|
||||||
aOptions->mEnd.Value(), aRv);
|
aOptions->mEnd.Value(), aRv);
|
||||||
} else if (aOptions != nullptr && aOptions->mStart.WasPassed() &&
|
} else if (aOptions && aOptions->mStart.WasPassed() &&
|
||||||
aOptions->mDuration.WasPassed()) {
|
aOptions->mDuration.WasPassed()) {
|
||||||
const DOMHighResTimeStamp start = ConvertMarkToTimestamp(
|
const DOMHighResTimeStamp start = ConvertMarkToTimestamp(
|
||||||
ResolveTimestampAttribute::Start, aOptions->mStart.Value(), aRv);
|
ResolveTimestampAttribute::Start, aOptions->mStart.Value(), aRv);
|
||||||
|
|
@ -447,16 +447,16 @@ Performance::ResolveEndTimeForMeasure(
|
||||||
|
|
||||||
DOMHighResTimeStamp
|
DOMHighResTimeStamp
|
||||||
Performance::ResolveStartTimeForMeasure(
|
Performance::ResolveStartTimeForMeasure(
|
||||||
const nsAString* aStartMark,
|
const Maybe<const nsAString&>& aStartMark,
|
||||||
const PerformanceMeasureOptions* aOptions,
|
const Maybe<const PerformanceMeasureOptions&>& aOptions,
|
||||||
ErrorResult& aRv)
|
ErrorResult& aRv)
|
||||||
{
|
{
|
||||||
DOMHighResTimeStamp startTime;
|
DOMHighResTimeStamp startTime;
|
||||||
if (aOptions != nullptr && aOptions->mStart.WasPassed()) {
|
if (aOptions && aOptions->mStart.WasPassed()) {
|
||||||
startTime = ConvertMarkToTimestamp(ResolveTimestampAttribute::Start,
|
startTime = ConvertMarkToTimestamp(ResolveTimestampAttribute::Start,
|
||||||
aOptions->mStart.Value(),
|
aOptions->mStart.Value(),
|
||||||
aRv);
|
aRv);
|
||||||
} else if (aOptions != nullptr && aOptions->mDuration.WasPassed() &&
|
} else if (aOptions && aOptions->mDuration.WasPassed() &&
|
||||||
aOptions->mEnd.WasPassed()) {
|
aOptions->mEnd.WasPassed()) {
|
||||||
const DOMHighResTimeStamp duration =
|
const DOMHighResTimeStamp duration =
|
||||||
ConvertMarkToTimestampWithDOMHighResTimeStamp(
|
ConvertMarkToTimestampWithDOMHighResTimeStamp(
|
||||||
|
|
@ -474,7 +474,7 @@ Performance::ResolveStartTimeForMeasure(
|
||||||
}
|
}
|
||||||
|
|
||||||
startTime = end - duration;
|
startTime = end - duration;
|
||||||
} else if (aStartMark != nullptr) {
|
} else if (aStartMark) {
|
||||||
startTime = ConvertMarkToTimestampWithString(*aStartMark, aRv);
|
startTime = ConvertMarkToTimestampWithString(*aStartMark, aRv);
|
||||||
} else {
|
} else {
|
||||||
startTime = 0;
|
startTime = 0;
|
||||||
|
|
@ -496,13 +496,14 @@ Performance::Measure(JSContext* aCx,
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const PerformanceMeasureOptions* options = nullptr;
|
// Maybe is more readable than using the union type directly.
|
||||||
|
Maybe<const PerformanceMeasureOptions&> options;
|
||||||
if (aStartOrMeasureOptions.IsPerformanceMeasureOptions()) {
|
if (aStartOrMeasureOptions.IsPerformanceMeasureOptions()) {
|
||||||
options = &aStartOrMeasureOptions.GetAsPerformanceMeasureOptions();
|
options.emplace(aStartOrMeasureOptions.GetAsPerformanceMeasureOptions());
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool isOptionsNotEmpty =
|
const bool isOptionsNotEmpty =
|
||||||
(options != nullptr) &&
|
options.isSome() &&
|
||||||
(!options->mDetail.isUndefined() || options->mStart.WasPassed() ||
|
(!options->mDetail.isUndefined() || options->mStart.WasPassed() ||
|
||||||
options->mEnd.WasPassed() || options->mDuration.WasPassed());
|
options->mEnd.WasPassed() || options->mDuration.WasPassed());
|
||||||
if (isOptionsNotEmpty) {
|
if (isOptionsNotEmpty) {
|
||||||
|
|
@ -529,9 +530,10 @@ Performance::Measure(JSContext* aCx,
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const nsAString* startMark = nullptr;
|
// Convert to Maybe for consistency with options.
|
||||||
|
Maybe<const nsAString&> startMark;
|
||||||
if (aStartOrMeasureOptions.IsString()) {
|
if (aStartOrMeasureOptions.IsString()) {
|
||||||
startMark = &aStartOrMeasureOptions.GetAsString();
|
startMark.emplace(aStartOrMeasureOptions.GetAsString());
|
||||||
}
|
}
|
||||||
const DOMHighResTimeStamp startTime =
|
const DOMHighResTimeStamp startTime =
|
||||||
ResolveStartTimeForMeasure(startMark, options, aRv);
|
ResolveStartTimeForMeasure(startMark, options, aRv);
|
||||||
|
|
@ -540,7 +542,7 @@ Performance::Measure(JSContext* aCx,
|
||||||
}
|
}
|
||||||
|
|
||||||
JS::Rooted<JS::Value> detail(aCx);
|
JS::Rooted<JS::Value> detail(aCx);
|
||||||
if (options != nullptr && !options->mDetail.isNullOrUndefined()) {
|
if (options && !options->mDetail.isNullOrUndefined()) {
|
||||||
StructuredSerializeOptions serializeOptions;
|
StructuredSerializeOptions serializeOptions;
|
||||||
JS::Rooted<JS::Value> valueToClone(aCx, options->mDetail);
|
JS::Rooted<JS::Value> valueToClone(aCx, options->mDetail);
|
||||||
nsContentUtils::StructuredClone(aCx, GetParentObject(), valueToClone,
|
nsContentUtils::StructuredClone(aCx, GetParentObject(), valueToClone,
|
||||||
|
|
|
||||||
|
|
@ -195,11 +195,11 @@ private:
|
||||||
|
|
||||||
DOMHighResTimeStamp ResolveEndTimeForMeasure(
|
DOMHighResTimeStamp ResolveEndTimeForMeasure(
|
||||||
const Optional<nsAString>& aEndMark,
|
const Optional<nsAString>& aEndMark,
|
||||||
const PerformanceMeasureOptions* aOptions,
|
const Maybe<const PerformanceMeasureOptions&>& aOptions,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
DOMHighResTimeStamp ResolveStartTimeForMeasure(
|
DOMHighResTimeStamp ResolveStartTimeForMeasure(
|
||||||
const nsAString* aStartMark,
|
const Maybe<const nsAString&>& aStartMark,
|
||||||
const PerformanceMeasureOptions* aOptions,
|
const Maybe<const PerformanceMeasureOptions&>& aOptions,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue