Issue metadata
Sign in to add a comment
|
Potential jank caused by ssl_error_assistant_component_installer LoadProtoFromDisk |
||||||||||||||||||||||
Issue descriptionSlow-reports is shipped back to our server with a chrome trace when some jank is detected on the chrome main thread. See attachment. Report: 36fd7f786bce4155 The cause of the jank seems to be: https://cs.chromium.org/chromium/src/chrome/browser/ssl/ssl_error_assistant.cc?type=cs&g=0&l=324 // TODO(meacer): Ideally, ReadErrorAssistantProtoFromResourceBundle should // only be called once and not on the UI thread. Move the call to the // component updater component. Examples (crash): f04147beae734ba2 602 ms 3ba332d29f23c91e 598 ms 58d6909c877e3116 549 ms 0745a3cc7d9a7c58 525 ms 1cd1bbd0dca72e6c 478 ms It may as well take about 1 sec f9367be428e239e3 1000 ms
,
Sep 26
It looks like parsing the ssl error message on main thread is taking too long. Traces can be found at crash/IDs: 34c547b3abb5d8a0 (3s) c02bd72004291e9a (1.5s) fcad2a6c4bb4bd66 c7be69bf9592fb94 51807c8f025abf8d 0f8646c082f79310 7c37d9f62fa45994 The jank is caused by the stack trace: chrome_browser_ssl::SSLErrorAssistantConfig::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream *) google::protobuf::`anonymous namespace'::InlineMergeFromCodedStream google::protobuf::MessageLite::ParseFromZeroCopyStream(google::protobuf::io::ZeroCopyInputStream *) `anonymous namespace'::ReadErrorAssistantProtoFromResourceBundle SSLErrorAssistant::SetErrorAssistantProto(std::unique_ptr<chrome_browser_ssl::SSLErrorAssistantConfig,std::default_delete<chrome_browser_ssl::SSLErrorAssistantConfig> >) SSLErrorHandler::SetErrorAssistantProto(std::unique_ptr<chrome_browser_ssl::SSLErrorAssistantConfig,std::default_delete<chrome_browser_ssl::SSLErrorAssistantConfig> >) <aliased> base::internal::Invoker<base::internal::BindState<void (*)(std::unique_ptr<(anonymous namespace)::AfterStartupTask,std::default_delete<(anonymous namespace)::AfterStartupTask> >),std::unique_ptr<(anonymous namespace)::AfterStartupTask,std::default_delete<(anonymous namespace)::AfterStartupTask> > >,void ()>::RunOnce base::debug::TaskAnnotator::RunTask(char const *,base::PendingTask *) base::MessageLoop::RunTask(base::PendingTask *) base::MessageLoop::DoWork() base::MessagePumpForUI::DoRunLoop() base::MessagePumpWin::Run(base::MessagePump::Delegate *) base::RunLoop::Run() ChromeBrowserMainParts::MainMessageLoopRun(int *) content::BrowserMainLoop::RunMainMessageLoopParts() content::BrowserMainRunnerImpl::Run() content::BrowserMain(content::MainFunctionParams const &) content::RunBrowserProcessMain(content::MainFunctionParams const &,content::ContentMainDelegate *) content::ContentMainRunnerImpl::Run(bool) service_manager::Main(service_manager::MainParams const &) content::ContentMain(content::ContentMainParams const &) ChromeMain
,
Sep 26
I think I can manage to put together a solution.
,
Sep 26
I looked to that bug, may be related: https://bugs.chromium.org/p/chromium/issues/detail?id=888555
,
Sep 26
|
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by ssid@chromium.org
, Sep 26