Closed Bug 1649393 Opened 2 years ago Closed 2 years ago

Search engines are gone with v78.0

Categories

(Core :: Storage: IndexedDB, defect, P2)

78 Branch
defect

Tracking

()

VERIFIED FIXED
mozilla80
Tracking Status
firefox-esr68 --- wontfix
firefox-esr78 79+ verified
firefox77 --- wontfix
firefox78 - disabled
firefox79 + verified
firefox80 + verified

People

(Reporter: ulli.conrad, Assigned: janv)

References

Details

Attachments

(10 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0

Steps to reproduce:

Updated to v78.0

Actual results:

All search engines are gone, list of one-click search engines is empty now
Auto complete in the address bar doesn't work any longer
Search function on the start page doesn't start a search any longer

Expected results:

Search engines should disappear after an update

Component: Untriaged → Search
Duplicate of this bug: 1649389

Hi Ulli, please can you provide us with some more information to help us diagnose the issue? Here's what would be useful:

  • Go to the three bar menu -> Help -> Troubleshooting Information.

  • Click the "Copy text to Clipboard" Button.

  • Back on this bug, just above your first comment, click "Attach new file", click in the box at the top and do ctrl-v (or right-click and select paste).

  • Give it a description and then hit submit at the bottom.

  • Then, restart Firefox, as soon as it is started, go to the three bar menu -> Web Developer -> Browser Console (not the Web Console).

  • Right-click and Select All

  • Then Right-click again and Copy Message.

  • Paste that into another new attachment as per the above instructions.

That will hopefully give us enough information, but we may need a little more. Either way, we'll hopefully be able to get you running again.

Flags: needinfo?(ulli.conrad)
Flags: needinfo?(ulli.conrad)
Attached file Browser console

Thank you, for some reason the local database that we use to store some data is not working. This errors are particularly pointing to that:

IndexedDB UnknownErr: ActorsParent.cpp:17128
UnknownError: The operation failed for reasons unrelated to the database itself and not covered by any other error code.
IndexedDB UnknownErr: ActorsParent.cpp:17128
UnknownError: IndexedDB: main/anti-tracking-url-decoration getLastModified() IndexedDB:   The operation failed for reasons unrelated to the database itself and not covered by any other error code. IDBHelpers.jsm:24:5
IndexedDB: main/hijack-blocklists getLastModified() IndexedDB:   The operation failed for reasons unrelated to the database itself and not covered by any other error code. IDBHelpers.jsm:24

Unfortunately our search service has just switched to using that local database, and as a result isn't working properly.

I'll see if I can find some people to have a look at it.

Status: UNCONFIRMED → NEW
Component: Search → Storage: IndexedDB
Ever confirmed: true
Product: Firefox → Core

Thank you, at least a quickt idea what's goin' wrong :-)

Jan/Baku, please could you take a look at this? The search service is now using remote settings in 78, and if indexed DB isn't working, that stops that and a lot of other things from working.

Flags: needinfo?(jvarga)
Flags: needinfo?(amarchesini)

I'm looking at this, the attached browser console output is very useful.

Flags: needinfo?(jvarga)
Flags: needinfo?(amarchesini)
Assignee: nobody → jvarga
Status: NEW → ASSIGNED

Ulli, from your other bug, you implied that you've restored an old profile from backup (not downgraded) and you're using that with 77 now.

Do you get similar error messages on the browser console with that older profile? Obviously the search issue won't be there, but I'm wondering about the IndexedDB side.

Flags: needinfo?(ulli.conrad)

Doesn't look so, but it is a newly created profile with all needed files (places.sqlite,prefs.js and so on) copied back from backup. All the rubbish collected over the years of course is gone now...

Flags: needinfo?(ulli.conrad)

The line would be https://searchfox.org/mozilla-release/rev/e9fe0d92b780775234419a0651fef84f6e8311f2/dom/indexedDB/ActorsParent.cpp#17128, which is within QuotaClient::UpgradeStorageFrom1_0To2_0, which would be consistent with this happening with an old profile.

Severity: -- → S4
Priority: -- → P5
Severity: S4 → S3
Priority: P5 → P2

The good news is that remote settings code doesn't depend on temporary storage initialization (storage for the web). The relevant IDB files live in permanent/chrome/idb/, 3870112724rsegmnoittet-es.files and 3870112724rsegmnoittet-es.sqlite

We have a telemetry for initialization of directories like this [1]
The relevant keys for this bug are "Storage" and "UpgradeStorageFrom1_0To2_0"
"Storage" is at 99.99% for Nightly which roughly matches Release.
The failure at [2] is covered by the "UpgradeStorageFrom1_0To2_0" key and there are currently 194 failures out of 280 tries on Nightly for last month (we track it only once per FF session).
We can also provide exact data for Release using custom queries.
There are other upgrades with relevant telemetry, for example "UpgradeStorageFrom2_0To2_1", but they all look good.
So there's a high probability that fixing the problem at [2] will improve overall initialization success rate and mitigate the problem with search engines.

I'm now preparing a custom FF 78 build which can be used to identify precise directory in user's profile which causes the upgrade to fail.
We will then ask the reporter to provide full recursive listing of the directory.

[1] https://telemetry.mozilla.org/new-pipeline/dist.html#!cumulative=0&end_date=2020-06-28&include_spill=0&keys=UpgradeStorageFrom1_0To2_0!PersistentOrigin!Storage!TemporaryStorage&max_channel_version=nightly%252F79&measure=QM_FIRST_INITIALIZATION_ATTEMPT&min_channel_version=null&processType=*&product=Firefox&sanitize=0&sort_by_value=0&sort_keys=submissions&start_date=2020-06-01&table=1&trim=1&use_submission_date=0

[2] https://searchfox.org/mozilla-release/rev/e9fe0d92b780775234419a0651fef84f6e8311f2/dom/indexedDB/ActorsParent.cpp#17128

Here is data for Release 78:

Storage key
number of all storage initializations (roughly matches number of FF sessions): 27925
number of failed storage initializations: 9
success rate: 99.97%

UpgradeFromIndexedDBDirectory key
number of all storage upgrades: 1
success rate: 100%

UpgradeFromPersistentStorageDirectory
number of all storage upgrades: 13
success rate: 100%

UpgradeStorageFrom0_0To1_0
number of all storage upgrades: 35
success rate: 100%

UpgradeStorageFrom1_0To2_0
number of all storage upgrades: 46
number of failed storage initializations: 7
success rate: 84.78%

UpgradeStorageFrom2_0To2_1
number of all storage upgrades: 46
success rate: 100%

UpgradeStorageFrom2_1To2_2
number of all storage upgrades: 83
success rate: 100%

UpgradeStorageFrom2_2To2_3
number of all storage upgrades: 116
success rate: 100%

There are only 7 failed initializations for UpgradeStorageFrom1_0To2_0, but number of total failures is 9.
It seems there can be something else which breaks the initialization and is not covered by individual keys.

Sorry, I made a mistake in the last comment, it's now fixed.

Attached file storage.zip

I attached a zip file (storage.zip) which can be used to simulate a profile with broken storage (leading to broken search).

Steps for creating broken profile and reproducing the search issue:

  1. Create a new profile
  2. Close FF
  3. Remove or rename the "storage" folder and the "storage.sqlite" database in the new profile (you can find location for it in about:profiles)
  4. Unzip storage.zip in the new profile (it will create the "storage" folder and the "storage.sqlite" database)
  5. Run FF for given profile

Let me know if it doesn't work for you.

Search engines are gone Yandex ?:C why?what for ?

Here are custom FF 78 release builds with additional debugging info (reported to browser console):
https://treeherder.mozilla.org/#/jobs?repo=try&revision=42699d073a2a44ac1846da87266afd09ff45c1ac

Ulli, here's a custom build for x64 windows (win64):
https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/Ic3gHdMuQuKAES04xMTjgQ/runs/0/artifacts/public/build/target.zip

Can you run your profile with the custom build ?

You should see something like this in the browser console:
IndexedDB Directory (<path_to_profile>\storage\default\<some_origin>\idb\<basename>..files) already exists!: ActorsParent.cpp:17130

Can you send me full recursive listing of the <some_origin> directory ?
Thank you!

Flags: needinfo?(ulli.conrad)

Wow you guys are quick :-) Thank you very much indeed! No default storage message, I've send the permanent folder listing instead

Flags: needinfo?(ulli.conrad)

Ok, thanks.

So you probably see messages like this:
IndexedDB Directory (<path_to_profile>\storage\permanent\moz-safe-about+home\idb\818200132aebmoouht.files) already exists!: ActorsParent.cpp:17130

I suspect this was caused by running an older FF (version between 36 and 48 probably) with a profile which was already upgraded by newer FF.
These days, something like that is not possible (fortunately).

Working on a fix and a test now.

The search issue is fixed for 78.0.1 via bug 1649558.

Depends on: 1649700
Duplicate of this bug: 1649394

Just updated to 78.0.1
Everything seems fine now :-) Thank you very much indeed!

If an old IDB files directory exists, it no longer causes a failure during the
storage upgrade. The directory is removed instead.

Pushed by jvarga@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9c609868d51f
Remove old IDB files directories during 1.0 to 2.0 storage upgrade; r=dom-workers-and-storage-reviewers,ttung
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80

Since the status are different for nightly and release, what's the status for beta?
For more information, please visit auto_nag documentation.

Please nominate this for Beta and ESR78 approval when you get a chance. Also, should we throw together a test build for the reporter to try out to confirm that this works with their profile as well?

Yeah, I'll do that once telemetry data is available (should be tomorrow).

Here are custom FF 78 release builds with the fix for the upgrade function:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d19f3c2f7aa7c8ed9fee89a2809235018c15584d

Ulli, here's a custom build for x64 windows (win64):
https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/ZWv_IPQiRCSCqwgtOEx2Kg/runs/0/artifacts/public/build/target.zip

Would you have time to run your profile with this custom build ?

You can either set the preference browser.search.modernConfig to true to test if the new search works for you
or go to https://firefox-storage-test.glitch.me/ to see if your storage is all good.

Flags: needinfo?(ulli.conrad)
Attached file Storage debug output

Search engines are back and work with that build although storage seems to be broken

Flags: needinfo?(ulli.conrad)

Ok, there must be something else broken, but the issue reported in comment 4 seems to be fixed.
I might ping you in a different bug about the other issues.
Thank you!

Thank >you<, keep up the great work ;-)

Comment on attachment 9160680 [details]
Bug 1649393 - Remove old IDB files directories during 1.0 to 2.0 storage upgrade; r=#dom-workers-and-storage-reviewers

Beta/Release Uplift Approval Request

  • User impact if declined: Quota Manager storage initialization breaks for some users which may lead to browser usability problems.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The patch has been tested on Nightly. The success rate of storage initialization significantly improved after landing.
  • String changes made/needed: None

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Enabling of search modernization depends on this patch.
  • User impact if declined: Quota Manager storage initialization breaks for some users which may lead to browser usability problems.
  • Fix Landed on Version: 80
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The patch has been tested on Nightly. The success rate of storage initialization significantly improved after landing.
  • String or UUID changes made by this patch: None
Flags: needinfo?(jvarga)
Attachment #9160680 - Flags: approval-mozilla-esr78?
Attachment #9160680 - Flags: approval-mozilla-beta?

tested fix so far using comment#17 in:

Win10 and Ubuntu 18.04 64bit:
FX Nightly 80.0a1 > modernization is ON. i was able to see search engines.
FX Release 78.0.2 > with custom FF 78 release build having user.js with modernization turned on, i saw the search engines.

Mac0s 10.15
Nightly 80 80.0a1 > modernization is ON. i was able to see search engines.

Comment on attachment 9160680 [details]
Bug 1649393 - Remove old IDB files directories during 1.0 to 2.0 storage upgrade; r=#dom-workers-and-storage-reviewers

Sounds like there's still some follow-up work to do, but this still strictly sounds like an improvement over the status quo and helps avoid a totally broken browser for some users with corrupted profiles. Approved for 79.0b5 and 78.1esr.

Attachment #9160680 - Flags: approval-mozilla-esr78?
Attachment #9160680 - Flags: approval-mozilla-esr78+
Attachment #9160680 - Flags: approval-mozilla-beta?
Attachment #9160680 - Flags: approval-mozilla-beta+

Proceeded to verify the uplift, with the following steps:

  1. Created broken profiles with help of the steps on comment 17.
  2. forced an user.js with user_pref("browser.search.modernConfig", true);
  3. Reproduced the broken index db and seach initialization, outputting no search engines
  4. Update to versions that contained the fix.

with the following results:

79.0a1 2020-06-03(broken) updated to 80.0a1 2020-07-10(fixed)
79.0b2 2020-06-30 (broken) updated to 79.0b5 2020-07-08(fixed)
79.0b2 2020-06-30 (broken) updated to 79.0b6 2020-07-09 (fixed)
78.0.1esr 2020-06-30(broken) updated to 78.0.2esr 20200708170510(broken) - paste bin reflecting the index db is still broken: https://pastebin.com/grfak1TN

The above scenarios and results are the same across the tested platforms: Windows10, Ubuntu 20 and Mac 10.13.6 .

Jan, can you take a look over the results, since my assumption is that for esr 78.0.2 there is something missing for this fix to function as expected.

Note:
This verification tries to exclude bug 1649700, hence the upgrade to 79beta5 which does not contain it.

Flags: needinfo?(jvarga)

This patch is not in 78.0.2esr, it's only on the default branch (future 78.1esr).

Flags: needinfo?(jvarga)

thanks @Julien, I was a bit confused by the 78.0.2 branching; adding reminder to re-check this on 78.1esr when it is near release to reduce any risk from other uplifts regression.

Flags: needinfo?(adrian.florinescu)

This issue is verified fixed using Windows 10 64bit, macOS 10.14 and Ubuntu 20.

Updated from 78.0esr (broken) to 78.1.0esr (fixed). (using the same scenario as in comment 40)

Status: RESOLVED → VERIFIED
Flags: needinfo?(adrian.florinescu)
See Also: → 1658574
Attached file trouble
Attached file aze
Application Basics
------------------

Name: Firefox
Version: 90.0
Build ID: 20210705185941
Distribution ID: mint
User Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
OS: Linux 5.4.0-67-generic #75-Ubuntu SMP Fri Feb 19 18:03:38 UTC 2021
Multiprocess Windows: 1/1
Fission Windows: 0/1 Disabled by default
Remote Processes: 4
Enterprise Policies: Inactive
Google Location Service Key: Found
Google Safebrowsing Key: Found
Mozilla Location Service Key: Missing
Safe Mode: false

Crash Reports for the Last 3 Days
---------------------------------

This application has not been configured to display crash reports.

Firefox Features
----------------

Name: DoH Roll-Out
Version: 2.0.0
ID: doh-rollout@mozilla.org

Name: Firefox Screenshots
Version: 39.0.1
ID: screenshots@mozilla.org

Name: Form Autofill
Version: 1.0.1
ID: formautofill@mozilla.org

Name: Picture-In-Picture
Version: 1.0.0
ID: pictureinpicture@mozilla.org

Name: Web Compatibility Interventions
Version: 23.1.0
ID: webcompat@mozilla.org

Name: WebCompat Reporter
Version: 1.4.2
ID: webcompat-reporter@mozilla.org

Remote Features
---------------

bug-1693420-rollout-sponsored-top-sites-rollout-release-84-100: active
bug-1719759-rollout-mozilla-tiles-service-in-release-release-90-90: active
rollout-doh-us-staged-rollout-to-all-us-desktop-users-release-73-77-bug-1586331: active

Remote Processes
----------------

Type: Web Content
Count: 1 / 8

Type: Extension
Count: 1

Type: Privileged About
Count: 1

Type: Preallocated
Count: 1

Add-ons
-------

Name: Dictionnaire français
Type: dictionary
Version: 7.0b
Enabled: true
ID: fr-dicollecte@dictionaries.addons.mozilla.org

Name: Amazon.co.uk
Type: extension
Version: 1.9
Enabled: true
ID: amazon@search.mozilla.org

Name: Behind The Overlay Revival
Type: extension
Version: 1.8.3
Enabled: true
ID: {c0e1baea-b4cb-4b62-97f0-278392ff8c37}

Name: Bing
Type: extension
Version: 1.3
Enabled: true
ID: bing@search.mozilla.org

Name: CanvasBlocker
Type: extension
Version: 1.6.1
Enabled: true
ID: CanvasBlocker@kkapsner.de

Name: Don't touch my tabs! (rel=noopener)
Type: extension
Version: 2.2.0
Enabled: true
ID: {6b938c0c-fc53-4f27-805f-619778631082}

Name: DuckDuckGo
Type: extension
Version: 1.1
Enabled: true
ID: ddg@search.mozilla.org

Name: Google
Type: extension
Version: 1.0
Enabled: true
ID: google@search-engine.tombulled

Name: Google
Type: extension
Version: 1.1
Enabled: true
ID: google@search.mozilla.org

Name: HTTPS Everywhere
Type: extension
Version: 2021.7.13
Enabled: true
ID: https-everywhere@eff.org

Name: Old Reddit Redirect
Type: extension
Version: 1.4.0
Enabled: true
ID: {9063c2e9-e07c-4c2c-9646-cfe7ca8d0498}

Name: Startpage.com — Private Search Engine
Type: extension
Version: 1.3.0
Enabled: true
ID: {20fc2e06-e3e4-4b2b-812b-ab431220cada}

Name: uBlock Origin
Type: extension
Version: 1.36.2
Enabled: true
ID: uBlock0@raymondhill.net

Name: Wikipedia (en)
Type: extension
Version: 1.1
Enabled: true
ID: wikipedia@search.mozilla.org

Name: English (CA) Language Pack
Type: locale
Version: 90.0buildid20210705185941
Enabled: true
ID: langpack-en-CA@firefox.mozilla.org

Name: English (GB) Language Pack
Type: locale
Version: 90.0buildid20210705185941
Enabled: true
ID: langpack-en-GB@firefox.mozilla.org

Name: Français Language Pack
Type: locale
Version: 90.0buildid20210716144314
Enabled: true
ID: langpack-fr@firefox.mozilla.org

Name: ClearURLs
Type: extension
Version: 1.17.0
Enabled: false
ID: clearurls@example.com

Name: FavaCarte
Type: extension
Version: 0.2.3
Enabled: false
ID: favacarte@example.com

Name: leboncoin eco
Type: extension
Version: 0.0.0
Enabled: false
ID: leboncoineco@example.com

Graphics
--------

Features
Compositing: WebRender
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled; smooth pinch-zoom enabled
WebGL 1 Driver WSI Info: GLX 1.4 GLX_VENDOR(client): NVIDIA Corporation GLX_VENDOR(server): NVIDIA Corporation Extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_swap_control_tear GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_no_error GLX_ARB_create_context_robustness GLX_NV_delay_before_swap GLX_EXT_stereo_tree GLX_ARB_context_flush_control GLX_NV_robustness_video_memory_purge GLX_NV_multigpu_context GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_NV_copy_image GLX_ARB_get_proc_address IsWebglOutOfProcessEnabled: 0
WebGL 1 Driver Renderer: NVIDIA Corporation -- GeForce GTX 1660 Ti/PCIe/SSE2
WebGL 1 Driver Version: 4.6.0 NVIDIA 460.91.03
WebGL 1 Driver Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_multiview_texture_multisample GL_EXT_multiview_timer_query GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_NV_memory_object_sparse GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_NV_timeline_semaphore GL_KHR_shader_subgroup GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NVX_blend_equation_advanced_multi_draw_buffers GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_clip_space_w_scaling GL_NV_command_list GL_NV_compute_program5 GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_conservative_raster_pre_snap GL_NV_conservative_raster_pre_snap_triangles GL_NV_conservative_raster_underestimation GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_barycentric GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_memory_attachment GL_NV_mesh_shader GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_representative_fragment_test GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_scissor_exclusive GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_float64 GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_shader_subgroup_partitioned GL_NV_shader_texture_footprint GL_NV_shading_rate_image GL_NV_stereo_view_rendering GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vdpau_interop2 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NV_gpu_multicast GL_NVX_progress_fence GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OVR_multiview GL_OVR_multiview2 GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info: GLX 1.4 GLX_VENDOR(client): NVIDIA Corporation GLX_VENDOR(server): NVIDIA Corporation Extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_swap_control_tear GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_no_error GLX_ARB_create_context_robustness GLX_NV_delay_before_swap GLX_EXT_stereo_tree GLX_ARB_context_flush_control GLX_NV_robustness_video_memory_purge GLX_NV_multigpu_context GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_NV_copy_image GLX_ARB_get_proc_address IsWebglOutOfProcessEnabled: 0
WebGL 2 Driver Renderer: NVIDIA Corporation -- GeForce GTX 1660 Ti/PCIe/SSE2
WebGL 2 Driver Version: 3.2.0 NVIDIA 460.91.03
WebGL 2 Driver Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_multiview_texture_multisample GL_EXT_multiview_timer_query GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_NV_memory_object_sparse GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_NV_timeline_semaphore GL_KHR_shader_subgroup GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NVX_blend_equation_advanced_multi_draw_buffers GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_clip_space_w_scaling GL_NV_command_list GL_NV_compute_program5 GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_conservative_raster_pre_snap GL_NV_conservative_raster_pre_snap_triangles GL_NV_conservative_raster_underestimation GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_barycentric GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_memory_attachment GL_NV_mesh_shader GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_representative_fragment_test GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_scissor_exclusive GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_float64 GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_shader_subgroup_partitioned GL_NV_shader_texture_footprint GL_NV_shading_rate_image GL_NV_stereo_view_rendering GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vdpau_interop2 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NV_gpu_multicast GL_NVX_progress_fence GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OVR_multiview GL_OVR_multiview2 GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum
WebGL 2 Extensions: EXT_color_buffer_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_texture_float_linear OVR_multiview2 WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Window Protocol: x11
Desktop Environment: xfce
Target Frame Rate: 60
GPU #1
Active: Yes
Description: GeForce GTX 1660 Ti/PCIe/SSE2
Vendor ID: 0x10de
Device ID: 0x2191
Driver Vendor: nvidia/unknown
Driver Version: 460.91.3.0
RAM: 0
GPU #2
Active: No
Vendor ID: 0x8086
Device ID: 0x3e9b
Diagnostics
AzureCanvasBackend: skia
AzureContentBackend: skia
AzureFallbackCanvasBackend: skia
CairoUseXRender: 0
CMSOutputProfile: Empty profile data
Display0: 1920x1080 default
DisplayCount: 1
Decision Log
HW_COMPOSITING:
available by default
OPENGL_COMPOSITING:
available by default
WEBRENDER:
available by default
WEBRENDER_QUALIFIED:
available by default
WEBRENDER_COMPOSITOR:
disabled by default: Disabled by default
blocklisted by env: Blocklisted by gfxInfo
WEBRENDER_PARTIAL:
available by default
WEBRENDER_SHADER_CACHE:
disabled by default: Disabled by default
WEBRENDER_OPTIMIZED_SHADERS:
available by default
WEBRENDER_ANGLE:
available by default
unavailable by env: OS not supported
WEBRENDER_DCOMP_PRESENT:
available by default
disabled by user: User disabled via pref
unavailable by env: Requires Windows 10 or later
unavailable by runtime: Requires ANGLE
WEBRENDER_SOFTWARE:
available by default
OMTP:
disabled by default: Disabled by default
WEBGPU:
disabled by default: Disabled by default
blocked by runtime: WebGPU can only be enabled in nightly
X11_EGL:
available by default
blocklisted by env: Blocklisted by gfxInfo
DMABUF:
available by default
unavailable by runtime: Requires EGL




Media
-----

Audio Backend: pulse-rust
Max Channels: 2
Preferred Sample Rate: 44100
Roundtrip latency (standard deviation): 51.38ms (5.83)
Output Devices
Name: Group
Built-in Audio Analog Stereo: /devices/pci0000:00/0000:00:1f.3/sound/card0
Input Devices
Name: Group
Monitor of Built-in Audio Analog Stereo: /devices/pci0000:00/0000:00:1f.3/sound/card0
Built-in Audio Analog Stereo: /devices/pci0000:00/0000:00:1f.3/sound/card0

Enumerate database

Environment Variables
---------------------

DISPLAY: :0.0
MOZ_APP_LAUNCHER: /usr/bin/firefox
MOZ_ASSUME_USER_NS: 1
MOZ_CRASHREPORTER_EVENTS_DIRECTORY: /home/vi/.mozilla/firefox/db9fgy6x.default-release/crashes/events
MOZ_CRASHREPORTER_RESTART_ARG_0: /usr/bin/firefox
MOZ_CRASHREPORTER_RESTART_ARG_1: --ProfileManager
MOZ_CRASHREPORTER_RESTART_ARG_2:
MOZ_CRASHREPORTER_DATA_DIRECTORY: /home/vi/.mozilla/firefox/Crash Reports
MOZ_CRASHREPORTER_PING_DIRECTORY: /home/vi/.mozilla/firefox/Pending Pings
MOZ_CRASHREPORTER_STRINGS_OVERRIDE: /usr/lib/firefox/browser/crashreporter-override.ini
MOZ_LAUNCHED_CHILD:
XRE_PROFILE_PATH:
XRE_PROFILE_LOCAL_PATH:
XRE_RESTARTED_BY_PROFILE_MANAGER:
XRE_START_OFFLINE:
XRE_BINARY_PATH:

Experimental Features
---------------------

about:home startup cache (browser.startup.homepage.abouthome_cache.enabled): false
Cookies: SameSite=Lax by default (network.cookie.sameSite.laxByDefault): false
Cookies: SameSite=None requires secure attribute (network.cookie.sameSite.noneRequiresSecure): false
Cookies: Schemeful SameSite (network.cookie.sameSite.schemeful): false
CSS: Constructable Stylesheets (layout.css.constructable-stylesheets.enabled): false
CSS: Masonry Layout (layout.css.grid-template-masonry-value.enabled): false
Developer Tools: Color Scheme Simulation (devtools.inspector.color-scheme-simulation.enabled): true
Developer Tools: Compatibility Panel (devtools.inspector.compatibility.enabled): false
Developer Tools: Execution Context Selector (devtools.webconsole.input.context): false
Developer Tools: Service Worker debugging (devtools.debugger.features.windowless-service-workers): false
Fission (Site Isolation) (fission.autostart): false
Media: AVIF (image.avif.enabled): false
Media: JPEG XL (image.jxl.enabled): false
Multiple Picture-in-Picture Support (media.videocontrols.picture-in-picture.allow-multiple): true
Address Bar: show results during IME composition (browser.urlbar.keepPanelOpenDuringImeComposition): false
Web API: inputmode (dom.forms.inputmode): false
Web API: WebGPU (dom.webgpu.enabled): false
WebRTC Global Mute Toggles (privacy.webrtc.globalMuteToggles): false
Win32k Lockdown (security.sandbox.content.win32k-disable): false

Remote Experiments
------------------

Important Modified Preferences
------------------------------

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.amount_written: 27651
browser.cache.disk.capacity: 1048576
browser.cache.disk.filesystem_reported: 1
browser.contentblocking.category: standard
browser.search.region: FR
browser.sessionstore.max_resumed_crashes: 0
browser.sessionstore.resume_from_crash: false
browser.sessionstore.upgradeBackup.latestBuildID: 20210705185941
browser.startup.homepage_override.buildID: 20210705185941
browser.startup.homepage_override.mstone: 90.0
browser.tabs.drawInTitlebar: true
browser.urlbar.resultBuckets: {"children":[{"maxResultCount":1,"children":[{"group":"heuristicTest"},{"group":"heuristicExtension"},{"group":"heuristi
doh-rollout.balrog-migration-done: true
doh-rollout.doneFirstRun: true
doh-rollout.doorhanger-decision: UIOk
doh-rollout.home-region: FR
doh-rollout.mode: 0
doh-rollout.self-enabled: true
doh-rollout.uri: https://mozilla.cloudflare-dns.com/dns-query
dom.push.userAgentID: b6d768f9c1b54032b0fd0d01e3c0539e
extensions.lastAppVersion: 90.0
font.internaluseonly.changed: true
gfx.blacklist.layers.opengl.failureid: FEATURE_FAILURE_SOFTWARE_GL
idle.lastDailyNotification: 1626886891
media.gmp-gmpopenh264.abi: x86_64-gcc3
media.gmp-gmpopenh264.lastUpdate: 1608984686
media.gmp-gmpopenh264.version: 1.8.1.1
media.gmp-manager.buildID: 20210705185941
media.gmp-manager.lastCheck: 1626872403
media.gmp.storage.version.observed: 1
media.videocontrols.picture-in-picture.video-toggle.has-used: true
network.dns.disablePrefetch: true
network.http.referer.defaultPolicy: 0
network.http.referer.XOriginPolicy: 2
network.http.referer.XOriginTrimmingPolicy: 2
network.http.sendRefererHeader: 0
network.http.speculative-parallel-limit: 0
network.predictor.enabled: false
network.prefetch-next: false
network.trr.blocklist_cleanup_done: true
places.database.lastMaintenance: 1626698337
places.history.expiration.transient_current_max_pages: 112348
privacy.cpd.offlineApps: true
privacy.cpd.siteSettings: true
privacy.purge_trackers.date_in_cookie_database: 0
privacy.purge_trackers.last_purge: 1626886891589
privacy.resistFingerprinting: true
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.sanitize.timeSpan: 0
privacy.userContext.enabled: true
privacy.userContext.extension: CanvasBlocker@kkapsner.de
privacy.userContext.ui.enabled: true
security.disable_button.openCertManager: false
security.enterprise_roots.enabled: true
security.pki.mitm_canary_issuer: CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US
security.remote_settings.crlite_filters.checked: 1626945150
security.remote_settings.intermediates.checked: 1626945150
security.sandbox.content.tempDirSuffix: 1b5c381c-5d7c-47ec-8c33-ce0415bb780b
security.sandbox.plugin.tempDirSuffix: 7cfc712b-8a7f-4c0e-ba16-cfd43ae3e7f7
services.sync.declinedEngines:
signon.importedFromSqlite: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1624731116

Important Locked Preferences
----------------------------

fission.autostart.session: false

Places Database
---------------

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.31
Version in use: 4.31

NSS
Expected minimum version: 3.66
Version in use: 3.66

NSSSMIME
Expected minimum version: 3.66
Version in use: 3.66

NSSSSL
Expected minimum version: 3.66
Version in use: 3.66

NSSUTIL
Expected minimum version: 3.66
Version in use: 3.66

Sandbox
-------

Seccomp-BPF (System Call Filtering): true
Seccomp Thread Synchronization: true
User Namespaces: true
Content Process Sandboxing: true
Media Plugin Sandboxing: true
Content Process Sandbox Level: 4
Effective Content Process Sandbox Level: 4
Win32k Lockdown State for Content Process: Win32k Lockdown disabled -- Operating system not supported

Rejected System Calls
---------------------

Startup Cache
-------------

Disk Cache Path: /home/vi/.cache/mozilla/firefox/db9fgy6x.default-release/startupCache/startupCache.8.little
Ignore Disk Cache: false
Found Disk Cache on Init: true
Wrote to Disk Cache: false

Internationalization & Localization
-----------------------------------

Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US","en-CA","en-GB","fr"]
App Locales: ["en-US","en-CA","en-GB"]
Regional Preferences: ["en-US"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US"]
Regional Preferences: ["en-US"]

Remote Debugging (Chromium Protocol)
------------------------------------

Accepting Connections: false
URL:

Printing
--------

Modified print settings
-----------------------

print_printer: Mozilla Save to PDF
print.printer_i865.print_bgcolor: false
print.printer_i865.print_bgimages: false
print.printer_i865.print_duplex: 0
print.printer_i865.print_edge_bottom: 0
print.printer_i865.print_edge_left: 0
print.printer_i865.print_edge_right: 0
print.printer_i865.print_edge_top: 0
print.printer_i865.print_footercenter:
print.printer_i865.print_footerleft: &PT
print.printer_i865.print_footerright: &D
print.printer_i865.print_headercenter:
print.printer_i865.print_headerleft: &T
print.printer_i865.print_headerright: &U
print.printer_i865.print_in_color: true
print.printer_i865.print_margin_bottom: 0.5
print.printer_i865.print_margin_left: 0.5
print.printer_i865.print_margin_right: 0.5
print.printer_i865.print_margin_top: 0.5
print.printer_i865.print_orientation: 0
print.printer_i865.print_page_delay: 50
print.printer_i865.print_paper_height: 11.6945
print.printer_i865.print_paper_id: iso_a4_210x297mm_borderless
print.printer_i865.print_paper_size_unit: 0
print.printer_i865.print_paper_width: 8.26378
print.printer_i865.print_resolution: 0
print.printer_i865.print_reversed: false
print.printer_i865.print_scaling: 1
print.printer_i865.print_shrink_to_fit: true
print.printer_i865.print_to_file: false
print.printer_i865.print_unwriteable_margin_bottom: 0
print.printer_i865.print_unwriteable_margin_left: 0
print.printer_i865.print_unwriteable_margin_right: 0
print.printer_i865.print_unwriteable_margin_top: 0
print.printer_Mozilla_Save_to_PDF.print_bgcolor: false
print.printer_Mozilla_Save_to_PDF.print_bgimages: false
print.printer_Mozilla_Save_to_PDF.print_duplex: 0
print.printer_Mozilla_Save_to_PDF.print_edge_bottom: 0
print.printer_Mozilla_Save_to_PDF.print_edge_left: 0
print.printer_Mozilla_Save_to_PDF.print_edge_right: 0
print.printer_Mozilla_Save_to_PDF.print_edge_top: 0
print.printer_Mozilla_Save_to_PDF.print_footercenter:
print.printer_Mozilla_Save_to_PDF.print_footerleft: &PT
print.printer_Mozilla_Save_to_PDF.print_footerright: &D
print.printer_Mozilla_Save_to_PDF.print_headercenter:
print.printer_Mozilla_Save_to_PDF.print_headerleft: &T
print.printer_Mozilla_Save_to_PDF.print_headerright: &U
print.printer_Mozilla_Save_to_PDF.print_in_color: true
print.printer_Mozilla_Save_to_PDF.print_margin_bottom: 0.5
print.printer_Mozilla_Save_to_PDF.print_margin_left: 0.5
print.printer_Mozilla_Save_to_PDF.print_margin_right: 0.5
print.printer_Mozilla_Save_to_PDF.print_margin_top: 0.5
print.printer_Mozilla_Save_to_PDF.print_orientation: 0
print.printer_Mozilla_Save_to_PDF.print_page_delay: 50
print.printer_Mozilla_Save_to_PDF.print_paper_height: 11.6929
print.printer_Mozilla_Save_to_PDF.print_paper_id: iso_a4
print.printer_Mozilla_Save_to_PDF.print_paper_size_unit: 0
print.printer_Mozilla_Save_to_PDF.print_paper_width: 8.26772
print.printer_Mozilla_Save_to_PDF.print_reversed: false
print.printer_Mozilla_Save_to_PDF.print_scaling: 1
print.printer_Mozilla_Save_to_PDF.print_shrink_to_fit: true
print.printer_Mozilla_Save_to_PDF.print_to_file: true
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_bottom: 0
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_left: 0
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_right: 0
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_top: 0
Attached file trouble.txt

after update to firefox 90.0 got the same issue
it seem to come from extensions.

1: To restore search engines I use:
"Stop firefox"
mkdir /tmp/EXT/
cd ~/.mozilla/firefox/your.profile/
mv extension* /tmp/EXT/
"Start firefox" all is good

2: To get the bug again:
"Stop firefox"
cd ~/.mozilla/firefox/your.profile/
mv /tmp/EXT/extension* ./
"Start firefox"
"Stop firefox"
"Start firefox" autocomplete in search bar is disabled, search engines are hidden

So to fix I use 1: then have to reinstall extensions

You need to log in before you can comment on or make changes to this bug.