Skip to content

[Android] Fix TemplateUrlService crash in GeolocationHeader #57778

Description

@chrislacy

This recent PR aimed to address a myriad of long-standing TemplateURLService crashes: brave/brave-core#38363.

Upon rollout of 8233a8b, one crash remains (via @SergeyZhukovsky):

❯ RELADDR   FUNCTION                                                                          FILE:LINE
    v------>  base::raw_ptr<TemplateURLService, (partition_alloc::internal::RawPtrTraits)0>::GetForDereference() const  ../../base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h:1049:48
    v------>  base::raw_ptr<TemplateURLService, (partition_alloc::internal::RawPtrTraits)0>::operator->() const  ../../base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h:695:12
    v------>  TemplateUrlServiceAndroid::IsSearchResultsPageFromDefaultSearchProvider(_JNIEnv*, jni_zero::JavaRef<_jobject*> const&)  ../../components/search_engines/android/template_url_service_android.cc:219:10
    v------>  _ZZZ109Muxed_org_chromium_components_search_1engines_TemplateUrlService_isSearchResultsPageFromDefaultSearchProviderENK3$_0clIiEEDaT_ENKUlDpOT_E_clIJRP7_JNIEnvRN8jni_zero7JavaRefIPN3org8chromium3url6_JGURLEEEEEEDTclptL_ZZ109Muxed_org_chromium_components_search_1engines_TemplateUrlService_isSearchResultsPageFromDefaultSearchProviderE4_ptrE44IsSearchResultsPageFromDefaultSearchProviderspclsr3stdE7forwardIDtfp_EEfp_EEES4_  ../../components/search_engines/android/template_url_service_android.cc:813:1
    v------>  _ZZ109Muxed_org_chromium_components_search_1engines_TemplateUrlService_isSearchResultsPageFromDefaultSearchProviderENK3$_0clIiEEDaT_  ../../components/search_engines/android/template_url_service_android.cc:813:1
    v------>  Muxed_org_chromium_components_search_1engines_TemplateUrlService_isSearchResultsPageFromDefaultSearchProvider  ../../components/search_engines/android/template_url_service_android.cc:813:1
    00000000029630f8  Java_J_N_ZJO                                                                      gen/jni_headers/chrome/android/libchrome__jni_registration_generated.cc:18298:14
    0000000000246cd0  art_jni_trampoline+128                                                            /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/oat/arm64/base.odex
    000000000029ca54  org.chromium.components.search_engines.TemplateUrlService.q+340                   /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/oat/arm64/split_chrome.odex
    0000000000268c80  org.chromium.chrome.browser.omnibox.geo.GeolocationHeader.b+256                   /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/oat/arm64/split_chrome.odex
    000000000072b104  nterp_helper+116                                                                  /apex/com.android.art/lib64/libart.so
    000000000077bc38  org.chromium.chrome.browser.omnibox.geo.GeolocationHeader.c+24                    /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000071dc6c  nterp1_op_invoke_static+44                                                        /apex/com.android.art/lib64/libart.so
    000000000029aa18  pa2.S+380                                                                         /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072b884  nterp_helper+2036                                                                 /apex/com.android.art/lib64/libart.so
    000000000077ed7c  org.chromium.chrome.browser.omnibox.suggestions.c.onResult+140                    /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072b884  nterp_helper+2036                                                                 /apex/com.android.art/lib64/libart.so
    000000000077f7dc  org.chromium.chrome.browser.omnibox.suggestions.AutocompleteMediator.m+392        /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072b884  nterp_helper+2036                                                                 /apex/com.android.art/lib64/libart.so
    00000000007802ea  org.chromium.chrome.browser.omnibox.suggestions.AutocompleteMediator.loadUrlForOmniboxMatch+178  /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072bb98  nterp_helper+2824                                                                 /apex/com.android.art/lib64/libart.so
    000000000078227c  org.chromium.chrome.browser.omnibox.suggestions.o.loadUrlForOmniboxMatch+280      /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072bb98  nterp_helper+2824                                                                 /apex/com.android.art/lib64/libart.so
    0000000000780a98  org.chromium.chrome.browser.omnibox.suggestions.AutocompleteMediator.c+248        /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072b884  nterp_helper+2036                                                                 /apex/com.android.art/lib64/libart.so
    000000000025ca98  ig1.k+8                                                                           /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072b884  nterp_helper+2036                                                                 /apex/com.android.art/lib64/libart.so
    000000000025c65a  fg1.run+110                                                                       /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    000000000072b884  nterp_helper+2036                                                                 /apex/com.android.art/lib64/libart.so
    000000000025bc5a  zf1.onClick+34                                                                    /data/app/~~jLnr62GWiujVK74BAHptaQ==/com.brave.browser_nightly-47Yf5O9XNXXVJ--7CGJQUA==/split_chrome.apk/libmonochrome.so
    0000000000a9decc  android.view.View.performClick+428                                                /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    0000000000af70a8  android.view.View$PerformClick.run+456                                            /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    00000000008ecd24  android.os.Handler.dispatchMessage+68                                             /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    000000000092a214  android.os.Looper.loopOnce+1364                                                   /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    0000000000929b64  android.os.Looper.loop+724                                                        /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    0000000000634f38  android.app.ActivityThread.main+1480                                              /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    00000000002ab260  art_quick_invoke_static_stub+640                                                  /apex/com.android.art/lib64/libart.so
    000000000029c070  _jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+552  /apex/com.android.art/lib64/libart.so
    0000000000635ed4  art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+36  /apex/com.android.art/lib64/libart.so
    0000000000d58d54  art_jni_trampoline+116                                                            /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    0000000000c1f784  com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+116                   /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    0000000000c27794  com.android.internal.os.ZygoteInit.main+3204                                      /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat
    00000000002ab260  art_quick_invoke_static_stub+640                                                  /apex/com.android.art/lib64/libart.so
    00000000002a8b8c  art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+760  /apex/com.android.art/lib64/libart.so
    00000000006a44b4  art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+164  /apex/com.android.art/lib64/libart.so
    0000000000107abc  _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+108                     /system/lib64/libandroid_runtime.so
    0000000000133a4c  android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+912  /system/lib64/libandroid_runtime.so
    0000000000004660  main+1440                                                                         /system/bin/app_process64

See also:

#53960
#49692
brave/brave-core#28448

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions