Igalia / wolvic-chromium

The official GitHub mirror of the Chromium source
https://chromium.googlesource.com/chromium/src/
BSD 3-Clause "New" or "Revised" License
11 stars 7 forks source link

Crash when asking for permissions in Google Meet #97

Closed svillar closed 6 months ago

svillar commented 6 months ago

This happens when trying to open a new meeting room in Google Meet (note that it requires desktop mode). This is the trace:

  v------>  std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>::begin() const  ../../third_party/libc++/src/include/vector:1543:30
  v------>  decltype(std::forward<std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>> const&>(fp).begin()) base::internal::begin<std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>> const&>(std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>> const&, base::internal::priority_tag<1ul>)  ../../base/ranges/ranges.h:44:37
  v------>  decltype(internal::begin(std::forward<std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>> const&>(fp), (base::internal::priority_tag<2ul>)())) base::ranges::begin<std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>> const&>(std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>> const&)  ../../base/ranges/ranges.h:105:10
  v------>  base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>>::begin() const  ../../base/containers/flat_tree.h:724:10
  v------>  decltype(std::forward<base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>> const&>(fp).begin()) base::internal::begin<base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>> const&>(base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>> const&, base::internal::priority_tag<1ul>)  ../../base/ranges/ranges.h:44:37
  v------>  decltype(internal::begin(std::forward<base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>> const&>(fp), (base::internal::priority_tag<2ul>)())) base::ranges::begin<base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>> const&>(base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>, std::__Cr::allocator<std::__Cr::pair<GURL, base::internal::flat_tree<blink::mojom::MediaStreamType, base::identity, std::__Cr::less<void>, std::__Cr::vector<blink::mojom::MediaStreamType, std::__Cr::allocator<blink::mojom::MediaStreamType>>>>>>> const&)  ../../base/ranges/ranges.h:105:10
  00000000027769a4  auto base::ranges::lower_bound<base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>, std::__Cr::allocator<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>>>> const&, GURL, base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>, std::__Cr::allocator<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>>>>::KeyValueCompare, base::identity, std::__Cr::random_access_iterator_tag>(base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>, std::__Cr::allocator<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>>>> const&, GURL const&, base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>, std::__Cr::allocator<std::__Cr::pair<GURL, std::__Cr::vector<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry, std::__Cr::allocator<content::ChildProcessSecurityPolicyImpl::IsolatedOriginEntry>>>>>>::KeyValueCompare, base::identity)  ../../base/ranges/algorithm.h:3138:30
  000000000277694c  base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::FilePath>, std::__Cr::allocator<std::__Cr::pair<GURL, base::FilePath>>>>::equal_range(GURL const&) const  ../../base/containers/flat_tree.h:1030:16
  0000000002776910  base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, base::FilePath>, std::__Cr::allocator<std::__Cr::pair<GURL, base::FilePath>>>>::find(GURL const&) const  ../../base/containers/flat_tree.h:986:19
  00000000027743fc  base::internal::flat_tree<GURL, base::internal::GetFirst, std::__Cr::less<void>, std::__Cr::vector<std::__Cr::pair<GURL, mojo::InlinedStructPtr<web_package::mojom::BundleResponseLocation>>, std::__Cr::allocator<std::__Cr::pair<GURL, mojo::InlinedStructPtr<web_package::mojom::BundleResponseLocation>>>>>::find(GURL const&)  ../../base/containers/flat_tree.h:980:45
  00000000027743a4  wolvic::WolvicPermissionManager::CheckMediaAccessPermission(content::RenderFrameHost*, GURL const&, blink::mojom::MediaStreamType)  ../../wolvic/wolvic_permission_manager.cc:470:46
  00000000039acc54  content::WebContentsImpl::CheckMediaAccessPermission(content::RenderFrameHostImpl*, url::Origin const&, blink::mojom::MediaStreamType)  ../../content/browser/web_contents/web_contents_impl.cc:4690:34
  0000000003718bec  content::(anonymous namespace)::DoCheckPermissionsOnUIThread(content::MediaDevicesManager::BoolDeviceTypes, int, int)  ../../content/browser/media/media_devices_permission_checker.cc:46:37
  0000000002917c9c  base::OnceCallback<unsigned int (hb_font_t*, unsigned int, hb_direction_t, unsigned int, unsigned int*, hb_ot_math_glyph_part_t*)>::Run(hb_font_t*, unsigned int, hb_direction_t, unsigned int, unsigned int*, hb_ot_math_glyph_part_t*) &&  ../../base/functional/callback.h:152:12
  0000000003718f5c  void base::internal::ReturnAsParamAdapter<content::MediaDevicesManager::BoolDeviceTypes>(base::OnceCallback<content::MediaDevicesManager::BoolDeviceTypes ()>, std::__Cr::unique_ptr<content::MediaDevicesManager::BoolDeviceTypes, std::__Cr::default_delete<content::MediaDevicesManager::BoolDeviceTypes>>*)  ../../base/task/post_task_and_reply_with_result_internal.h:23:48
  v------>  base::OnceCallback<void ()>::Run() &&                                             ../../base/functional/callback.h:152:12
  0000000004a34c98  base::internal::PostTaskAndReplyRelay::RunTaskAndPostReply(base::internal::PostTaskAndReplyRelay)  ../../base/threading/post_task_and_reply_impl.h:45:28
  0000000004a34d98  void base::internal::FunctorTraits<void (*)(base::internal::PostTaskAndReplyRelay), void>::Invoke<void (*)(base::internal::PostTaskAndReplyRelay), base::internal::PostTaskAndReplyRelay>(void (*&&)(base::internal::PostTaskAndReplyRelay), base::internal::PostTaskAndReplyRelay&&)  ../../base/functional/bind_internal.h:631:12
  v------>  base::OnceCallback<void ()>::Run() &&                                             ../../base/functional/callback.h:152:12
  0000000004a19918  base::TaskAnnotator::RunTaskImpl(base::PendingTask&)                              ../../base/task/common/task_annotator.cc:201:34
  0000000004a2f754  void base::TaskAnnotator::RunTask<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)::$_3>(perfetto::StaticString, base::PendingTask&, base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)::$_3&&)  ../../base/task/common/task_annotator.h:89:5
  v------>  base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)  ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:480:23
  0000000004a2f304  base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()   ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:345:41
  0000000004a66694  base::MessagePumpForUI::DoNonDelayedLooperWork(bool)                              ../../base/message_loop/message_pump_android.cc:186:33
  0000000004a6663c  base::MessagePumpForUI::OnNonDelayedLooperCallback()                              ../../base/message_loop/message_pump_android.cc:172:3
  0000000004a662bc  base::(anonymous namespace)::NonDelayedLooperCallback(int, int, void*)            ../../base/message_loop/message_pump_android.cc:43:9