Closed Bug 1649618 Opened 5 years ago Closed 4 years ago

storage-json.js imports OS.File during startup

Categories

(Toolkit Graveyard :: OS.File, task)

Tracking

(firefox85 fixed)

RESOLVED FIXED
85 Branch
Tracking Status
firefox85 --- fixed

People

(Reporter: beth, Assigned: masterwayz)

References

Details

Attachments

(1 file)

According to this startup profile, LoginManager.jsm runs during startup and imports osfile.jsm. We should migrate this to the new IOUtils replacement for osfile.jsm when possible.

Stack:

(root) []
XREMain::XRE_main []
XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) [libxul.so]
XREMain::XRE_mainRun() [libxul.so]
nsAppStartup::Run() [libxul.so]
nsBaseAppShell::Run() [libxul.so]
MessageLoop::Run() [libxul.so]
mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [libxul.so]
nsThread::ProcessNextEvent(bool, bool*) [libxul.so]
ChromeUtils::IdleDispatch handler []
mozilla::dom::(anonymous namespace)::IdleDispatchRunnable::Run() [libxul.so]
mozilla::dom::IdleRequestCallback::Call(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::IdleDeadline&, mozilla::ErrorResult&) [libxul.so]
JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) [libxul.so]
js::RunScript []
_scheduleStartupIdleTasks/< [resource:///modules/BrowserGlue.jsm:2469:8]
task [resource:///modules/BrowserGlue.jsm:2309:14]
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
Interpret(JSContext*, js::RunState&) [libxul.so]
<name omitted> [libxul.so]
js::CallGetter(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) [libxul.so]
js::RunScript []
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
get [resource://gre/modules/XPCOMUtils.jsm:124:20]
0xff4eaa5dbc7 []
js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [libxul.so]
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
js::fun_apply(JSContext*, unsigned int, JS::Value*) [libxul.so]
js::fun_call(JSContext*, unsigned int, JS::Value*) [libxul.so]
js::RunScript []
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
XPCU_serviceLambda [resource://gre/modules/XPCOMUtils.jsm:213:69]
0xff4eaa6b68f []
xpc::CIGSHelper(JSContext*, unsigned int, JS::Value*, bool) [libxul.so]
<name omitted> [libxul.so]
mozilla::xpcom::CreateInstanceImpl(mozilla::xpcom::ModuleID, nsISupports*, nsID const&, void**) [libxul.so]
mozilla::xpcom::ConstructJSMComponent(nsTSubstring<char> const&, char const*, nsISupports**) [libxul.so]
JS::Construct(JSContext*, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JSObject*>) [libxul.so]
js::Construct(JSContext*, JS::Handle<JS::Value>, js::AnyConstructArgs const&, JS::Handle<JS::Value>, JS::MutableHandle<JSObject*>) [libxul.so]
InternalConstruct(JSContext*, js::AnyConstructArgs const&) [libxul.so]
js::RunScript []
LoginManager [resource://gre/modules/LoginManager.jsm:42:21]
init [resource://gre/modules/LoginManager.jsm:80:6]
> _initStorage [resource://gre/modules/LoginManager.jsm:93:14]
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
Interpret(JSContext*, js::RunState&) [libxul.so]
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) [libxul.so]
XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [libxul.so]
NS_InvokeByIndex [libxul.so]
SharedStub [libxul.so]
PrepareAndDispatch [libxul.so]
XPCWrappedJS method call []
nsXPCWrappedJS::CallMethod(unsigned short, nsXPTMethodInfo const*, nsXPTCMiniVariant*) [libxul.so]
JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) [libxul.so]
js::RunScript []
initialize [resource://gre/modules/storage-json.js:84:12]
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
Interpret(JSContext*, js::RunState&) [libxul.so]
js::NativeGetExistingProperty(JSContext*, JS::Handle<JSObject*>, JS::Handle<js::NativeObject*>, JS::Handle<js::Shape*>, JS::MutableHandle<JS::Value>) [libxul.so]
js::CallGetter(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) [libxul.so]
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [libxul.so]
mozilla::dom::module_getter::ModuleGetter(JSContext*, unsigned int, JS::Value*) [libxul.so]
mozJSComponentLoader::Import(JSContext*, nsTSubstring<char> const&, JS::MutableHandle<JSObject*>, JS::MutableHandle<JSObject*>, bool) [libxul.so]
profiler_get_backtrace() [libxul.so]
Registers::SyncPopulate() [libxul.so]

The stack in comment 0 shows an import from storage-json.js

The import occurs here: https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/storage-json.js#29. It looks like it is used to do OS.Path.join

Summary: LoginManager.jsm imports OS.File during startup → storage-json.js imports OS.File during startup
Depends on: 1671035
Depends on: 1674311
Assignee: nobody → michael
Status: NEW → ASSIGNED
Pushed by emalysz@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4b30658ad342 Convert storage-json.js to use PathUtils r=emalysz
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 85 Branch
Product: Toolkit → Toolkit Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: