Ask me anything!

Have a question you always wanted to ask Moonchild but never did? Now's your chance!
From 2026-03-08 to 2026-03-15 I'll be open to any question by the community, after which I'll provide answers.

Go here to participate: https://forum.palemoon.org/viewtopic.php?f=66&t=33222

Ubiquiti webpage loads just blank page in PM

For support with specific websites

Moderator: trava90

Forum rules
Please always mention the name/domain of the website in question in your topic title.
Please one website per topic thread (to help keep things organized). While behavior on different sites might at first glance seem similar, they are not necessarily caused by the same.

Please try to include any relevant output from the Toolkit Error Console or the Developer Tools Web Console using the following procedure:
  1. Clear any current output
  2. Navigate or refresh the page in question
  3. Copy and paste Errors or seemingly relevant Warnings into a single [ code ] block.
User avatar
KSAKS
Apollo supporter
Apollo supporter
Posts: 42
Joined: 2019-02-21, 09:44

Ubiquiti webpage loads just blank page in PM

Post by KSAKS » 2026-01-29, 12:03

If I go to https://ui.com/ then Palemoon just loads blank page. I'm testing it in Pale Moon 34.0.1 x64 clean portable version.

About console says:

Code: Select all

Timestamp: 29.1.2026 12:57:25
Error: SyntaxError: await is a reserved identifier
Source File: https://ui.com/microsite/static/index-Bbn2LX64.js
Line: 4274, Column: 14219
Source Code:
const{getImageOptimizerUrlByEnv:kz,getOptimizedImageUrl:Sz}=await O(async()=>{const{getImageOptimizerUrlByEnv:e,getOptim

Code: Select all

Application Basics
------------------

Name: Pale Moon
Version: 34.0.1 (64-bit)
Build ID: 20260121100811
Update Channel: release
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:128.0) Gecko/20100101 Goanna/6.8 Firefox/128.0 PaleMoon/34.0.1
OS: Windows_NT 6.1
CPU Capabilities: SSE2 AVX AVX2
Safe Mode: false

Extensions
----------

Graphics
--------

Features
Compositing: Direct3D 11
GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)
Asynchronous Pan/Zoom: none
WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000034d5c) EGL_VERSION: 1.4 (ANGLE 2.1.0.) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses
WebGL 1 Driver Renderer: Google Inc. -- ANGLE (NVIDIA GeForce RTX 2080 Direct3D11 vs_5_0 ps_5_0)
WebGL 1 Driver Version: OpenGL ES 2.0 (ANGLE 2.1.0.)
WebGL 1 Driver Extensions: GL_OES_element_index_uint GL_OES_packed_depth_stencil GL_OES_get_program_binary GL_OES_rgb8_rgba8 GL_EXT_texture_format_BGRA8888 GL_EXT_read_format_bgra GL_NV_pixel_buffer_object GL_OES_mapbuffer GL_EXT_map_buffer_range GL_EXT_color_buffer_half_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_float GL_OES_texture_float_linear GL_EXT_texture_rg GL_EXT_texture_compression_dxt1 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_OES_compressed_ETC1_RGB8_texture GL_EXT_sRGB GL_ANGLE_depth_texture GL_OES_depth32 GL_EXT_texture_storage GL_OES_texture_npot GL_EXT_draw_buffers GL_EXT_texture_filter_anisotropic GL_EXT_occlusion_query_boolean GL_NV_fence GL_EXT_disjoint_timer_query GL_EXT_robustness GL_EXT_blend_minmax GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_pack_reverse_row_order GL_OES_standard_derivatives GL_EXT_shader_texture_lod GL_EXT_frag_depth GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_EXT_discard_framebuffer GL_EXT_debug_marker GL_OES_EGL_image GL_OES_EGL_image_external GL_NV_EGL_stream_consumer_external GL_EXT_unpack_subimage GL_NV_pack_subimage GL_OES_vertex_array_object GL_KHR_debug GL_ANGLE_lossy_etc_decode GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_sync_query GL_CHROMIUM_copy_texture
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug_get OES_element_index_uint 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_etc1 WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
WebGL 2 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000034d5c) EGL_VERSION: 1.4 (ANGLE 2.1.0.) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses
WebGL 2 Driver Renderer: Google Inc. -- ANGLE (NVIDIA GeForce RTX 2080 Direct3D11 vs_5_0 ps_5_0)
WebGL 2 Driver Version: OpenGL ES 3.0 (ANGLE 2.1.0.)
WebGL 2 Driver Extensions: GL_OES_element_index_uint GL_OES_packed_depth_stencil GL_OES_get_program_binary GL_OES_rgb8_rgba8 GL_EXT_texture_format_BGRA8888 GL_EXT_read_format_bgra GL_NV_pixel_buffer_object GL_OES_mapbuffer GL_EXT_map_buffer_range GL_EXT_color_buffer_half_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_float GL_OES_texture_float_linear GL_EXT_texture_rg GL_EXT_texture_compression_dxt1 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_OES_compressed_ETC1_RGB8_texture GL_EXT_sRGB GL_ANGLE_depth_texture GL_OES_depth32 GL_EXT_texture_storage GL_OES_texture_npot GL_EXT_draw_buffers GL_EXT_texture_filter_anisotropic GL_EXT_occlusion_query_boolean GL_NV_fence GL_EXT_disjoint_timer_query GL_EXT_robustness GL_EXT_blend_minmax GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_pack_reverse_row_order GL_OES_standard_derivatives GL_EXT_shader_texture_lod GL_EXT_frag_depth GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_EXT_discard_framebuffer GL_EXT_debug_marker GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_NV_EGL_stream_consumer_external GL_EXT_unpack_subimage GL_NV_pack_subimage GL_EXT_color_buffer_float GL_OES_vertex_array_object GL_KHR_debug GL_ANGLE_lossy_etc_decode GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_sync_query GL_CHROMIUM_copy_texture GL_EXT_texture_norm16
WebGL 2 Extensions: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug_get OES_texture_float_linear WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
Hardware H264 Decoding: Yes; Using D3D9 API
Audio Backend: wasapi
Direct2D: true
DirectWrite: true (6.2.9200.25409)
GPU #1
Active: Yes
Description: NVIDIA GeForce RTX 2080
Vendor ID: 0x10de
Device ID: 0x1e87
Driver Version: 30.0.14.7514
Driver Date: 6-10-2024
Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Subsys ID: 37261462
RAM: 8192

Diagnostics
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo





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

browser.cache.disk.capacity: 358400
browser.cache.disk.enable: false
browser.cache.disk.parent_directory: D:\Test\PM\User\Palemoon\Profiles\Default
browser.cache.disk.smart_size.first_run: false
browser.download.importedFromSqlite: true
browser.download.manager.retention: 1
browser.download.useDownloadDir: false
browser.places.smartBookmarksVersion: 4
browser.startup.homepage_override.buildID: 20260121100811
browser.startup.homepage_override.mstone: 6.8.0
extensions.lastAppVersion: 34.0.1
gfx.crash-guard.d3d11layers.appVersion: 34.0.1
gfx.crash-guard.d3d11layers.deviceID: 0x1e87
gfx.crash-guard.d3d11layers.driverVersion: 30.0.14.7514
gfx.crash-guard.d3d11layers.feature-d2d: true
gfx.crash-guard.d3d11layers.feature-d3d11: true
gfx.crash-guard.status.d3d11layers: 2
gfx.crash-guard.status.d3d9video: 2
network.cookie.prefsMigrated: true
places.history.expiration.transient_current_max_pages: 122334
plugin.expose_full_path: true
privacy.sanitize.migrateFx3Prefs: true

user.js Preferences
-------------------

Your profile folder contains a user.js file, which includes preferences that were not created by Pale Moon.

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

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

JavaScript
----------

Incremental GC: true

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

Activated: false
Prevent Accessibility: 1

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

NSPR
Expected minimum version: 4.35
Version in use: 4.35

NSS
Expected minimum version: 3.90.9
Version in use: 3.90.9

NSSSMIME
Expected minimum version: 3.90.9
Version in use: 3.90.9

NSSSSL
Expected minimum version: 3.90.9
Version in use: 3.90.9

NSSUTIL
Expected minimum version: 3.90.9
Version in use: 3.90.9


User avatar
Moonchild
Project founder
Project founder
Posts: 38961
Joined: 2011-08-28, 17:27
Location: Sweden

Re: Ubiquiti webpage loads just blank page in PM

Post by Moonchild » 2026-01-29, 12:41

See Issue #2229 (UXP). It's one of the main web compat issues we have at the moment that results in blank pages because JS aborts at the top level.

This is bounty material - so if anyone can help get this implemented they will absolutely be compensated for their efforts.
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
KSAKS
Apollo supporter
Apollo supporter
Posts: 42
Joined: 2019-02-21, 09:44

Re: Ubiquiti webpage loads just blank page in PM

Post by KSAKS » 2026-01-29, 13:50

Moonchild wrote:
2026-01-29, 12:41
See Issue #2229 (UXP). It's one of the main web compat issues we have at the moment that results in blank pages because JS aborts at the top level.

This is bounty material - so if anyone can help get this implemented they will absolutely be compensated for their efforts.
I see. Thanks for explanation. Looks like this is pretty old issue now. Are there at least some workarounds like some script or addon replacing the incompatible "await" code with UXP compatible one?

User avatar
Moonchild
Project founder
Project founder
Posts: 38961
Joined: 2011-08-28, 17:27
Location: Sweden

Re: Ubiquiti webpage loads just blank page in PM

Post by Moonchild » 2026-01-29, 15:08

In many cases the "await" can simply be removed without ill effects, e.g. by using the on-the-fly http response filter mentioned in other threads with web compat issues.
I personally can't help with that, but maybe @adoxa can.
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
adoxa
Astronaut
Astronaut
Posts: 601
Joined: 2019-03-16, 13:26
Location: Qld, Aus.

Re: Ubiquiti webpage loads just blank page in PM

Post by adoxa » 2026-01-29, 23:08

Modify HTTP Response filter to work around it (will probably break on a site update).

Code: Select all

[["ui.com",["/index-.*\\.js$/",["const{getImageOptimizerUrlByEnv:kz,getOptimizedImageUrl:Sz}=await O(async()=>{const{getImageOptimizerUrlByEnv:e,getOptimizedImageUrl:t}=await import(\"./imageOptimizer-C8cMKJbi.js\");return{getImageOptimizerUrlByEnv:e,getOptimizedImageUrl:t}},[]),Pz=kz(Mx.BUILD_ENV)??void 0,Iz=75,oi=(e,t)=>{try{Mx.BUILD_ENV;const i=new URL(Ps.defaultRegion.baseUrl);return i.pathname=e,Object.entries(t??{}).forEach(([r,o])=>{o&&i.searchParams.append(r,o)}),i.toString()}catch{return e}},ni=(e,t,i=Iz)=>Sz(Pz)({src:e,width:t,quality:i}),Kge=(e,t)=>ni(oi(e),t);","let kz,Sz,Pz,Iz,oi,ni,Kge;O(async()=>{const t=await import(\"./imageOptimizer-C8cMKJbi.js\");kz=t.getImageOptimizerUrlByEnv,Sz=t.getOptimizedImageUrl},[]).then(()=>(Pz=kz(Mx.BUILD_ENV)??void 0,Iz=75,oi=(e,t)=>{try{Mx.BUILD_ENV;const i=new URL(Ps.defaultRegion.baseUrl);return i.pathname=e,Object.entries(t??{}).forEach(([r,o])=>{o&&i.searchParams.append(r,o)}),i.toString()}catch{return e}},ni=(e,t,i=Iz)=>Sz(Pz)({src:e,width:t,quality:i}),Kge=(e,t)=>ni(oi(e),t)));"]]]]

User avatar
KSAKS
Apollo supporter
Apollo supporter
Posts: 42
Joined: 2019-02-21, 09:44

Re: Ubiquiti webpage loads just blank page in PM

Post by KSAKS » 2026-01-30, 09:32

adoxa wrote:
2026-01-29, 23:08
Modify HTTP Response filter to work around it (will probably break on a site update).

Code: Select all

[["ui.com",["/index-.*\\.js$/",["const{getImageOptimizerUrlByEnv:kz,getOptimizedImageUrl:Sz}=await O(async()=>{const{getImageOptimizerUrlByEnv:e,getOptimizedImageUrl:t}=await import(\"./imageOptimizer-C8cMKJbi.js\");return{getImageOptimizerUrlByEnv:e,getOptimizedImageUrl:t}},[]),Pz=kz(Mx.BUILD_ENV)??void 0,Iz=75,oi=(e,t)=>{try{Mx.BUILD_ENV;const i=new URL(Ps.defaultRegion.baseUrl);return i.pathname=e,Object.entries(t??{}).forEach(([r,o])=>{o&&i.searchParams.append(r,o)}),i.toString()}catch{return e}},ni=(e,t,i=Iz)=>Sz(Pz)({src:e,width:t,quality:i}),Kge=(e,t)=>ni(oi(e),t);","let kz,Sz,Pz,Iz,oi,ni,Kge;O(async()=>{const t=await import(\"./imageOptimizer-C8cMKJbi.js\");kz=t.getImageOptimizerUrlByEnv,Sz=t.getOptimizedImageUrl},[]).then(()=>(Pz=kz(Mx.BUILD_ENV)??void 0,Iz=75,oi=(e,t)=>{try{Mx.BUILD_ENV;const i=new URL(Ps.defaultRegion.baseUrl);return i.pathname=e,Object.entries(t??{}).forEach(([r,o])=>{o&&i.searchParams.append(r,o)}),i.toString()}catch{return e}},ni=(e,t,i=Iz)=>Sz(Pz)({src:e,width:t,quality:i}),Kge=(e,t)=>ni(oi(e),t)));"]]]]
Thank you. It is working. But as a side note - unfortunately this website is really crap, it also doesn't load if you have disabled local storage with dom.storage.enabled;false. Why the hell they need local storage to check firmware updates here? https://ui.com/download

User avatar
Moonchild
Project founder
Project founder
Posts: 38961
Joined: 2011-08-28, 17:27
Location: Sweden

Re: Ubiquiti webpage loads just blank page in PM

Post by Moonchild » 2026-01-30, 12:45

Local storage is a long-standing web API that is used by many sites. You can expect a lot of breakage if you disable it.
KSAKS wrote:
2026-01-30, 09:32
Why the hell they need local storage to check firmware updates here?
You're going to have to ask ubiquiti!
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
KSAKS
Apollo supporter
Apollo supporter
Posts: 42
Joined: 2019-02-21, 09:44

Re: Ubiquiti webpage loads just blank page in PM

Post by KSAKS » 2026-01-30, 12:57

Moonchild wrote:
2026-01-30, 12:45
You're going to have to ask ubiquiti!
I know of course, it was just a rhetorical question :) And also info for anybody reading this in the future, that the blank page is still there even with the fix above until you allow the local storage.
Moonchild wrote:
2026-01-30, 12:45
Local storage is a long-standing web API that is used by many sites. You can expect a lot of breakage if you disable it.
Again I know it, but it is not so bad. I have it disabled for ages in my main browser and 99% of websites I need, works just fine. But that might be of course different per user.

User avatar
Mæstro
Board Warrior
Board Warrior
Posts: 1016
Joined: 2019-08-13, 00:30
Location: Casumia

Re: Ubiquiti webpage loads just blank page in PM

Post by Mæstro » 2026-01-30, 22:07

Moonchild wrote:
2026-01-29, 12:41
This is bounty material - so if anyone can help get this implemented they will absolutely be compensated for their efforts.
Should the bounty list be updated? All five issues listed under Pale Moon are closed, leaving only the (sole) UXP bounty you are discussing current.
Life is a fever dream Mæstro would enjoy.
How is your computer at 96°C and not on fire?
All posts 100% organic. Ash is the best letter.
What is being nice online?
Debian 10 ELTS / Official PM build

User avatar
Moonchild
Project founder
Project founder
Posts: 38961
Joined: 2011-08-28, 17:27
Location: Sweden

Re: Ubiquiti webpage loads just blank page in PM

Post by Moonchild » 2026-01-30, 22:25

Mæstro wrote:
2026-01-30, 22:07
Should the bounty list be updated? All five issues listed under Pale Moon are closed, leaving only the (sole) UXP bounty you are discussing current.
Gitea automatically switches to closed issues if there are none open. Currently that UXP issue is the only one marked with a bounty that still needs to be solved.
Not many issues are officially marked as bounty material, as it guarantees a bounty payment, because we don't have a lot of budget at the moment to fund new bounty issues. If someone wants tot ackle other issues and would like a bounty incentive for it, they can always get in touch with me and we can discuss it.
"There is no point in arguing with an idiot, because then you're both idiots." - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite