Closed Bug 1686691 Opened 3 years ago Closed 3 years ago

Use actual format in XDR version check

Categories

(Core :: JavaScript Engine, task, P1)

task

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: arai, Assigned: arai)

References

Details

Attachments

(1 file)

Currently JS::GetScriptTranscodingBuildId value includes js::UseOffThreadParseGlobal() value, and the value is pref value.

JS::GetScriptTranscodingBuildId is used in the following 2 places:

  • XDR file's version check
  • MIME type for JSBC

MIME type for JSBC needs js::UseOffThreadParseGlobal() value, but XDR file's version check shouldn't use pref value, but should use actual file format, because of the following reason:

startupCache/scriptCache keeps using JSScript XDR even after stencil-mvp, and it's not conditional based on the pref value.
and those cache is invalidated based only on build id, ABI, and file path.
So, if the pref is flipped, the version check fails after the next startup,
even if the other content is valid.

To avoid false version mismatch in startupCache/scriptCache, make the
version check use the actual file format (JSScript vs Stencil) instead of
pref value.

Also fixed the reserved size of buildId.

Blocks: 1667804
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/fa794371cc8d
Use actual file format in XDR version check. r=nbp
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: