Merge branch 'main' into fix/run-profiles-ci-after-bot-merge

This commit is contained in:
Ian Chua
2026-09-21 18:32:58 +08:00
committed by GitHub
29 changed files with 303 additions and 77 deletions
+2 -2
View File
@@ -551,7 +551,7 @@ jobs:
&& github.event_name == 'pull_request_target' && github.event_name == 'pull_request_target'
permissions: permissions:
contents: read contents: read
pull-requests: read pull-requests: write
issues: write issues: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 5 timeout-minutes: 5
@@ -658,7 +658,7 @@ jobs:
&& github.event_name == 'pull_request_target' && github.event_name == 'pull_request_target'
permissions: permissions:
contents: read # delegatable subtree, for file modes contents: read # delegatable subtree, for file modes
pull-requests: read pull-requests: write
issues: write # label + comment issues: write # label + comment
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 10 timeout-minutes: 10
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "Cubicon", "name": "Cubicon",
"version": "02.04.00.05", "version": "02.04.00.06",
"force_update": "0", "force_update": "0",
"description": "Cubicon configurations", "description": "Cubicon configurations",
"machine_model_list": [ "machine_model_list": [
@@ -15,7 +15,7 @@
"115" "115"
], ],
"hot_plate_temp_initial_layer": [ "hot_plate_temp_initial_layer": [
"115" "120"
], ],
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"3" "3"
@@ -24,13 +24,13 @@
"30" "30"
], ],
"filament_density": [ "filament_density": [
"1.24" "1.04"
], ],
"filament_flow_ratio": [ "filament_flow_ratio": [
"0.99" "0.99"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"23" "14"
], ],
"nozzle_temperature_initial_layer": [ "nozzle_temperature_initial_layer": [
"240" "240"
@@ -39,19 +39,19 @@
"80" "80"
], ],
"fan_min_speed": [ "fan_min_speed": [
"70" "15"
], ],
"slow_down_min_speed": [ "slow_down_min_speed": [
"30" "20"
], ],
"slow_down_layer_time": [ "slow_down_layer_time": [
"3" "10"
], ],
"nozzle_temperature": [ "nozzle_temperature": [
"245" "245"
], ],
"temperature_vitrification": [ "temperature_vitrification": [
"78" "105"
], ],
"nozzle_temperature_range_low": [ "nozzle_temperature_range_low": [
"220" "220"
@@ -61,5 +61,14 @@
], ],
"additional_cooling_fan_speed": [ "additional_cooling_fan_speed": [
"0" "0"
],
"activate_air_filtration": [
"1"
],
"during_print_exhaust_fan_speed": [
"0"
],
"complete_print_exhaust_fan_speed": [
"255"
] ]
} }
@@ -12,10 +12,10 @@
"Cubicon" "Cubicon"
], ],
"hot_plate_temp": [ "hot_plate_temp": [
"100" "105"
], ],
"hot_plate_temp_initial_layer": [ "hot_plate_temp_initial_layer": [
"100" "115"
], ],
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"3" "3"
@@ -24,13 +24,13 @@
"30" "30"
], ],
"filament_density": [ "filament_density": [
"1.24" "1.04"
], ],
"filament_flow_ratio": [ "filament_flow_ratio": [
"0.99" "1.04"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"23" "8"
], ],
"nozzle_temperature_initial_layer": [ "nozzle_temperature_initial_layer": [
"225" "225"
@@ -39,19 +39,19 @@
"80" "80"
], ],
"fan_min_speed": [ "fan_min_speed": [
"70" "15"
], ],
"slow_down_min_speed": [ "slow_down_min_speed": [
"30" "20"
], ],
"slow_down_layer_time": [ "slow_down_layer_time": [
"3" "10"
], ],
"nozzle_temperature": [ "nozzle_temperature": [
"230" "230"
], ],
"temperature_vitrification": [ "temperature_vitrification": [
"78" "105"
], ],
"nozzle_temperature_range_low": [ "nozzle_temperature_range_low": [
"220" "220"
@@ -61,5 +61,32 @@
], ],
"additional_cooling_fan_speed": [ "additional_cooling_fan_speed": [
"0" "0"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.04"
],
"filament_retraction_length": [
"1.2"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
] ]
} }
@@ -15,7 +15,7 @@
"115" "115"
], ],
"hot_plate_temp_initial_layer": [ "hot_plate_temp_initial_layer": [
"115" "120"
], ],
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"3" "3"
@@ -24,13 +24,13 @@
"30" "30"
], ],
"filament_density": [ "filament_density": [
"1.24" "1.04"
], ],
"filament_flow_ratio": [ "filament_flow_ratio": [
"0.99" "0.99"
], ],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"23" "14"
], ],
"nozzle_temperature_initial_layer": [ "nozzle_temperature_initial_layer": [
"240" "240"
@@ -39,19 +39,19 @@
"80" "80"
], ],
"fan_min_speed": [ "fan_min_speed": [
"70" "15"
], ],
"slow_down_min_speed": [ "slow_down_min_speed": [
"30" "20"
], ],
"slow_down_layer_time": [ "slow_down_layer_time": [
"3" "10"
], ],
"nozzle_temperature": [ "nozzle_temperature": [
"240" "240"
], ],
"temperature_vitrification": [ "temperature_vitrification": [
"85" "105"
], ],
"nozzle_temperature_range_low": [ "nozzle_temperature_range_low": [
"220" "220"
@@ -10,5 +10,77 @@
], ],
"filament_vendor": [ "filament_vendor": [
"Cubicon" "Cubicon"
],
"fan_max_speed": [
"25"
],
"fan_min_speed": [
"0"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.01"
],
"close_fan_the_first_x_layers": [
"5"
],
"overhang_fan_threshold": [
"50%"
],
"overhang_fan_speed": [
"25"
],
"slow_down_layer_time": [
"8"
],
"filament_max_volumetric_speed": [
"4"
],
"filament_flow_ratio": [
"0.94"
],
"nozzle_temperature_initial_layer": [
"245"
],
"nozzle_temperature": [
"250"
],
"nozzle_temperature_range_low": [
"240"
],
"nozzle_temperature_range_high": [
"280"
],
"filament_retraction_length": [
"0.8"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
],
"activate_air_filtration": [
"1"
],
"during_print_exhaust_fan_speed": [
"0"
],
"complete_print_exhaust_fan_speed": [
"255"
] ]
} }
@@ -15,7 +15,7 @@
"80" "80"
], ],
"hot_plate_temp_initial_layer": [ "hot_plate_temp_initial_layer": [
"80" "85"
], ],
"close_fan_the_first_x_layers": [ "close_fan_the_first_x_layers": [
"3" "3"
@@ -54,12 +54,45 @@
"70" "70"
], ],
"nozzle_temperature_range_low": [ "nozzle_temperature_range_low": [
"230" "220"
], ],
"nozzle_temperature_range_high": [ "nozzle_temperature_range_high": [
"250" "250"
], ],
"additional_cooling_fan_speed": [ "additional_cooling_fan_speed": [
"0" "0"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.08"
],
"filament_retraction_length": [
"2.0"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
],
"activate_air_filtration": [
"1"
],
"complete_print_exhaust_fan_speed": [
"255"
] ]
} }
@@ -53,5 +53,38 @@
], ],
"additional_cooling_fan_speed": [ "additional_cooling_fan_speed": [
"80" "80"
],
"close_fan_the_first_x_layers": [
"1"
],
"filament_retraction_length": [
"2.0"
],
"filament_z_hop": [
"0"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"25"
],
"filament_wipe": [
"1"
],
"filament_wipe_distance": [
"2"
],
"filament_retract_before_wipe": [
"70%"
],
"activate_air_filtration": [
"1"
],
"during_print_exhaust_fan_speed": [
"255"
],
"complete_print_exhaust_fan_speed": [
"255"
] ]
} }
@@ -18,5 +18,14 @@
], ],
"nozzle_temperature_range_high": [ "nozzle_temperature_range_high": [
"220" "220"
],
"filament_max_volumetric_speed": [
"8"
],
"enable_pressure_advance": [
"1"
],
"pressure_advance": [
"0.025"
] ]
} }
@@ -73,12 +73,12 @@
"20000" "20000"
], ],
"machine_max_acceleration_z": [ "machine_max_acceleration_z": [
"250", "50",
"500" "100"
], ],
"machine_max_speed_z": [ "machine_max_speed_z": [
"25", "5",
"12" "10"
], ],
"machine_max_acceleration_retracting": [ "machine_max_acceleration_retracting": [
"5000", "5000",
@@ -5,7 +5,8 @@
"instantiation": "false", "instantiation": "false",
"compatible_printers": [ "compatible_printers": [
"Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-I 0.4 nozzle",
"Cubicon xCeler-Plus 0.4 nozzle" "Cubicon xCeler-Plus 0.4 nozzle",
"Cubicon xCeler-Mini 0.4 nozzle"
], ],
"print_settings_id": "cubicon common @base", "print_settings_id": "cubicon common @base",
"accel_to_decel_enable": "1", "accel_to_decel_enable": "1",
@@ -14,26 +15,24 @@
"bridge_flow": "0.9", "bridge_flow": "0.9",
"internal_bridge_flow": "0.9", "internal_bridge_flow": "0.9",
"brim_type": "no_brim", "brim_type": "no_brim",
"detect_overhang_wall": "1", "detect_overhang_wall": "0",
"resolution": "0.012", "resolution": "0.012",
"elefant_foot_compensation": "0.15", "elefant_foot_compensation": "0.15",
"percise_outer_wall": "1",
"percise_z_height": "0.2",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "0",
"enable_support": "0", "enable_support": "0",
"exclude_object": "0", "exclude_object": "0",
"filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
"gap_infill_speed": "250", "gap_infill_speed": "250",
"infill_combination": "1", "infill_combination": "0",
"infill_direction": "45", "infill_direction": "45",
"infill_wall_overlap": "15", "infill_wall_overlap": "15",
"infill_anchor": "400%", "infill_anchor": "400%",
"infill_anchor_max": "20", "infill_anchor_max": "20",
"initial_layer_line_width": "0.5", "initial_layer_line_width": "0.5",
"initial_layer_print_height": "0.25", "initial_layer_print_height": "0.2",
"initial_layer_speed": "60", "initial_layer_speed": "50",
"initial_layer_infill_speed": "60", "initial_layer_infill_speed": "100",
"initial_layer_travel_speed": "500", "initial_layer_travel_speed": "500",
"slow_down_layers": "1", "slow_down_layers": "1",
"only_one_wall_top": "1", "only_one_wall_top": "1",
@@ -47,9 +46,9 @@
"outer_wall_speed": "200", "outer_wall_speed": "200",
"print_sequence": "by layer", "print_sequence": "by layer",
"raft_layers": "0", "raft_layers": "0",
"reduce_crossing_wall": "0", "reduce_crossing_wall": "1",
"reduce_infill_retraction": "1", "reduce_infill_retraction": "1",
"seam_position": "back", "seam_position": "aligned",
"seam_gap": "10%", "seam_gap": "10%",
"enable_arc_fitting": "0", "enable_arc_fitting": "0",
"staggered_inner_seams": "1", "staggered_inner_seams": "1",
@@ -57,7 +56,7 @@
"skirt_distance": "2.5", "skirt_distance": "2.5",
"skirt_height": "1", "skirt_height": "1",
"skirt_speed": "50", "skirt_speed": "50",
"skirt_start_angle": "-45", "skirt_start_angle": "-135",
"sparse_infill_density": "15", "sparse_infill_density": "15",
"sparse_infill_speed": "270", "sparse_infill_speed": "270",
"sparse_infill_pattern": "grid", "sparse_infill_pattern": "grid",
@@ -84,7 +83,7 @@
"support_threshold_angle": "15", "support_threshold_angle": "15",
"wall_loops": "2", "wall_loops": "2",
"thick_bridges": "0", "thick_bridges": "0",
"extra_perimeters_on_overhangs": "1", "extra_perimeters_on_overhangs": "0",
"top_shell_layers": "5", "top_shell_layers": "5",
"top_shell_thickness": "1", "top_shell_thickness": "1",
"slow_down_curled_perimeters": "0", "slow_down_curled_perimeters": "0",
@@ -93,18 +92,18 @@
"travel_jerk": "12", "travel_jerk": "12",
"infill_jerk": "12", "infill_jerk": "12",
"initial_layer_jerk": "9", "initial_layer_jerk": "9",
"inner_wall_jerk": "7", "inner_wall_jerk": "3.5",
"outer_wall_jerk": "7", "outer_wall_jerk": "3",
"default_acceleration": "13000", "default_acceleration": "10000",
"travel_acceleration": "13000", "travel_acceleration": "10000",
"outer_wall_acceleration": "5000", "outer_wall_acceleration": "2000",
"inner_wall_acceleration": "5000", "inner_wall_acceleration": "6000",
"initial_layer_acceleration": "1000", "initial_layer_acceleration": "500",
"top_surface_acceleration": "2000", "top_surface_acceleration": "2000",
"raft_first_layer_density": "90", "raft_first_layer_density": "90",
"raft_first_layer_expansion": "2", "raft_first_layer_expansion": "2",
"precise_outer_wall": "1", "precise_outer_wall": "1",
"precise_z_height": "0", "precise_z_height": "1",
"slowdown_for_curled_perimeters": "0", "slowdown_for_curled_perimeters": "0",
"bridge_speed": "50", "bridge_speed": "50",
"internal_bridge_speed": "150%", "internal_bridge_speed": "150%",
@@ -112,5 +111,7 @@
"overhang_2_4_speed": "50", "overhang_2_4_speed": "50",
"overhang_3_4_speed": "30", "overhang_3_4_speed": "30",
"overhang_4_4_speed": "10", "overhang_4_4_speed": "10",
"independent_support_layer_height": "1" "independent_support_layer_height": "1",
"solid_infill_direction": "90",
"max_travel_detour_distance": "80%"
} }
@@ -62,7 +62,7 @@
"top_surface_line_width": "0.4", "top_surface_line_width": "0.4",
"top_surface_speed": "30", "top_surface_speed": "30",
"travel_speed": "400", "travel_speed": "400",
"enable_prime_tower": "1", "enable_prime_tower": "0",
"prime_tower_width": "60", "prime_tower_width": "60",
"xy_hole_compensation": "0", "xy_hole_compensation": "0",
"xy_contour_compensation": "0" "xy_contour_compensation": "0"
@@ -42,7 +42,7 @@
"enable_arc_fitting": "1", "enable_arc_fitting": "1",
"enable_extra_bridge_layer": "disabled", "enable_extra_bridge_layer": "disabled",
"enable_overhang_speed": "1", "enable_overhang_speed": "1",
"enable_prime_tower": "1", "enable_prime_tower": "0",
"enable_support": "0", "enable_support": "0",
"enforce_support_layers": "0", "enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_all", "ensure_vertical_shell_thickness": "ensure_all",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "Orca Arena Printer", "name": "Orca Arena Printer",
"url": "", "url": "",
"version": "02.04.00.05", "version": "02.04.00.06",
"force_update": "0", "force_update": "0",
"description": "Orca Arena configuration files", "description": "Orca Arena configuration files",
"machine_model_list": [ "machine_model_list": [
@@ -2,7 +2,7 @@
"type": "machine_model", "type": "machine_model",
"name": "Orca Arena X1 Carbon", "name": "Orca Arena X1 Carbon",
"model_id": "orca_arena_x1c", "model_id": "orca_arena_x1c",
"url": "", "url": "https://www.orcaslicer.com",
"nozzle_diameter": "0.4;0.2;0.6;0.8", "nozzle_diameter": "0.4;0.2;0.6;0.8",
"machine_tech": "FFF", "machine_tech": "FFF",
"family": "ARENA-3DP", "family": "ARENA-3DP",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "OrcaFilamentLibrary", "name": "OrcaFilamentLibrary",
"version": "02.04.00.08", "version": "02.04.00.09",
"force_update": "0", "force_update": "0",
"description": "Orca Filament Library", "description": "Orca Filament Library",
"filament_list": [ "filament_list": [
@@ -3,6 +3,7 @@
"name": "DREMC ABS @System", "name": "DREMC ABS @System",
"inherits": "DREMC ABS @base", "inherits": "DREMC ABS @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "gNjISMxTLwQzDrV9",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,6 +3,7 @@
"name": "DREMC ABS+ @System", "name": "DREMC ABS+ @System",
"inherits": "DREMC ABS+ @base", "inherits": "DREMC ABS+ @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "M73sIwcpWv6zpFrb",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,6 +3,7 @@
"name": "DREMC ASA @System", "name": "DREMC ASA @System",
"inherits": "DREMC ASA @base", "inherits": "DREMC ASA @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "PMulSQ0tYbNyvOYw",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,6 +3,7 @@
"name": "DREMC ASA CF @System", "name": "DREMC ASA CF @System",
"inherits": "DREMC ASA CF @base", "inherits": "DREMC ASA CF @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "ZcipEKAqtBcAm6vR",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,6 +3,7 @@
"name": "DREMC ASA GF @System", "name": "DREMC ASA GF @System",
"inherits": "DREMC ASA GF @base", "inherits": "DREMC ASA GF @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "8J3lt7KlQWcx0VUS",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,6 +3,7 @@
"name": "DREMC PA12-CF @System", "name": "DREMC PA12-CF @System",
"inherits": "DREMC PA12-CF @base", "inherits": "DREMC PA12-CF @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "jVlZ1KPsA5i8RIED",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,6 +3,7 @@
"name": "DREMC PET-CF @System", "name": "DREMC PET-CF @System",
"inherits": "DREMC PET-CF @base", "inherits": "DREMC PET-CF @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "hal1nPyBF13UL9qB",
"instantiation": "true",
"compatible_printers": [] "compatible_printers": []
} }
@@ -3,7 +3,8 @@
"name": "DREMC PETG @System", "name": "DREMC PETG @System",
"inherits": "DREMC PETG @base", "inherits": "DREMC PETG @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "gTGiaBYfymmtlyfG",
"instantiation": "true",
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"20" "20"
], ],
@@ -1,9 +1,10 @@
{ {
"type": "filament", "type": "filament",
"name": "DREMC PLA+ HS @System", "name": "DREMC PLA+ HS @System",
"inherits": "DREMC PLA+ @base", "inherits": "DREMC PLA+ HS @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "I0HWhYAZ3ppq91Gx",
"instantiation": "true",
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"22" "22"
], ],
@@ -3,7 +3,8 @@
"name": "DREMC PLA+ @System", "name": "DREMC PLA+ @System",
"inherits": "DREMC PLA+ @base", "inherits": "DREMC PLA+ @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "fIjHIsFmdDWIM1bf",
"instantiation": "true",
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"18" "18"
], ],
@@ -3,7 +3,8 @@
"name": "DREMC TPU 95A @System", "name": "DREMC TPU 95A @System",
"inherits": "DREMC TPU 95A @base", "inherits": "DREMC TPU 95A @base",
"from": "system", "from": "system",
"instantiation": "false", "setting_id": "AfnFh14wKZsNEaZ1",
"instantiation": "true",
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"6" "6"
], ],
+34 -6
View File
@@ -8,6 +8,7 @@
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include <wx/event.h> #include <wx/event.h>
#include <wx/uri.h>
#include <utility> #include <utility>
@@ -55,6 +56,14 @@ wxString web_base_url()
return wxString("file://") + from_u8(dir) + "/"; return wxString("file://") + from_u8(dir) + "/";
} }
// Whether a loaded document is the plugin HTML's own base URL. The web view reports the URL it
// parsed, so any fragment the page navigated to is ignored and the escaping it applies to what the
// resources path holds (a space, a non-ASCII character) is undone first.
bool is_content_url(const wxString& url)
{
return wxURI::Unescape(url.BeforeFirst('#')) == web_base_url();
}
} // namespace } // namespace
PluginWebDialog::PluginWebDialog(wxWindow* parent, PluginWebDialog::PluginWebDialog(wxWindow* parent,
@@ -89,6 +98,7 @@ PluginWebDialog::PluginWebDialog(wxWindow* parent,
// missing/blocked bootstrap resource (e.g. a packaged build) still triggers it. // missing/blocked bootstrap resource (e.g. a packaged build) still triggers it.
Bind(wxEVT_WEBVIEW_LOADED, &PluginWebDialog::on_bootstrap_event, this, wv->GetId()); Bind(wxEVT_WEBVIEW_LOADED, &PluginWebDialog::on_bootstrap_event, this, wv->GetId());
Bind(wxEVT_WEBVIEW_ERROR, &PluginWebDialog::on_bootstrap_event, this, wv->GetId()); Bind(wxEVT_WEBVIEW_ERROR, &PluginWebDialog::on_bootstrap_event, this, wv->GetId());
Bind(wxEVT_WEBVIEW_NAVIGATED, &PluginWebDialog::on_navigated, this, wv->GetId());
} }
Bind(wxEVT_CLOSE_WINDOW, &PluginWebDialog::on_close_window, this); Bind(wxEVT_CLOSE_WINDOW, &PluginWebDialog::on_close_window, this);
} }
@@ -139,19 +149,37 @@ void PluginWebDialog::destroy_for_plugin(PluginWebDialog* dialog)
void PluginWebDialog::on_bootstrap_event(wxWebViewEvent& event) void PluginWebDialog::on_bootstrap_event(wxWebViewEvent& event)
{ {
// The first bootstrap load (or its error) triggers the swap to plugin HTML; const bool loaded = event.GetEventType() == wxEVT_WEBVIEW_LOADED;
// the resulting plugin-page load is ignored (guarded by m_content_loaded). // The first bootstrap load (or its error) triggers the swap to plugin HTML.
load_plugin_content(); if (!m_content_loaded)
load_plugin_content();
// WebKit reloads the SetPage base URL, so a committed load of it that we did not start is a reload.
// A failed navigation is reported against the page that stayed but never commits. Edge ignores the
// base URL and restores SetPage content itself, so nothing matches there.
else if (is_content_url(event.GetURL())) {
if (m_own_page_load)
m_own_page_load = false;
else if (loaded && m_content_navigated)
load_plugin_content();
}
if (loaded)
m_content_navigated = false;
event.Skip();
}
void PluginWebDialog::on_navigated(wxWebViewEvent& event)
{
m_content_navigated = is_content_url(event.GetURL());
event.Skip(); event.Skip();
} }
void PluginWebDialog::load_plugin_content() void PluginWebDialog::load_plugin_content()
{ {
if (m_content_loaded)
return;
m_content_loaded = true; m_content_loaded = true;
if (wxWebView* wv = browser()) if (wxWebView* wv = browser()) {
m_own_page_load = true;
wv->SetPage(wxString::FromUTF8(m_html), web_base_url()); wv->SetPage(wxString::FromUTF8(m_html), web_base_url());
}
} }
void PluginWebDialog::on_script_message(const nlohmann::json& payload) void PluginWebDialog::on_script_message(const nlohmann::json& payload)
+3
View File
@@ -64,6 +64,7 @@ protected:
private: private:
void on_bootstrap_event(wxWebViewEvent& event); void on_bootstrap_event(wxWebViewEvent& event);
void on_navigated(wxWebViewEvent& event);
void load_plugin_content(); void load_plugin_content();
void on_close_window(wxCloseEvent& event); void on_close_window(wxCloseEvent& event);
void fire_submit(const nlohmann::json& data); void fire_submit(const nlohmann::json& data);
@@ -72,6 +73,8 @@ private:
std::string m_html; std::string m_html;
bool m_content_loaded{false}; bool m_content_loaded{false};
bool m_own_page_load{false}; // a SetPage of the plugin HTML is in flight
bool m_content_navigated{false}; // a navigation to the base URL has committed
bool m_open{true}; bool m_open{true};
bool m_close_fired{false}; bool m_close_fired{false};
std::optional<nlohmann::json> m_result; std::optional<nlohmann::json> m_result;