Skip to content

Commit cc65063

Browse files
committed
web: Add BaseLoadOptions.customPlayerVersionString
1 parent 8535bb7 commit cc65063

File tree

4 files changed

+26
-0
lines changed

4 files changed

+26
-0
lines changed

web/packages/core/src/internal/builder.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ export function configureBuilder(
8888
if (isExplicit(config.playerVersion)) {
8989
builder.setPlayerVersion(config.playerVersion);
9090
}
91+
if (isExplicit(config.customPlayerVersionString)) {
92+
builder.setCustomPlayerVersionString(config.customPlayerVersionString);
93+
}
9194
if (isExplicit(config.preferredRenderer)) {
9295
builder.setPreferredRenderer(config.preferredRenderer);
9396
}

web/packages/core/src/public/config/default.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const DEFAULT_CONFIG: Required<BaseLoadOptions> = {
4444
publicPath: null,
4545
polyfills: true,
4646
playerVersion: null,
47+
customPlayerVersionString: null,
4748
preferredRenderer: null,
4849
openUrlMode: OpenURLMode.Allow,
4950
allowNetworking: NetworkingAccessMode.All,

web/packages/core/src/public/config/load-options.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,20 @@ export interface BaseLoadOptions {
602602
*/
603603
playerVersion?: number | null;
604604

605+
/**
606+
* A custom version string to be reported through `Capabilities.version`/`$version`.
607+
*
608+
* By default, this will be something similar to `32,0,0,0` (depending on {@link playerVersion}).
609+
*
610+
* This does not change any player behavior, only changing the actual {@link playerVersion} will do that.
611+
*
612+
* Ordinarily SWFs expect to see four digits separated by a comma - e.g. `32,0,0,465`.
613+
* You are not required to stick to this format, but you may break content that expects it.
614+
*
615+
* @default null
616+
*/
617+
customPlayerVersionString?: string | null;
618+
605619
/**
606620
* The preferred render backend of the Ruffle player.
607621
*

web/src/builder.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ pub struct RuffleInstanceBuilder {
5454
pub(crate) log_level: tracing::Level,
5555
pub(crate) max_execution_duration: Duration,
5656
pub(crate) player_version: Option<u8>,
57+
pub(crate) custom_player_version_string: Option<String>,
5758
pub(crate) preferred_renderer: Option<String>, // TODO: Enumify?
5859
pub(crate) open_url_mode: OpenUrlMode,
5960
pub(crate) allow_networking: NetworkingAccessMode,
@@ -93,6 +94,7 @@ impl Default for RuffleInstanceBuilder {
9394
log_level: tracing::Level::ERROR,
9495
max_execution_duration: Duration::from_secs_f64(15.0),
9596
player_version: None,
97+
custom_player_version_string: None,
9698
preferred_renderer: None,
9799
open_url_mode: OpenUrlMode::Allow,
98100
allow_networking: NetworkingAccessMode::All,
@@ -247,6 +249,11 @@ impl RuffleInstanceBuilder {
247249
self.player_version = value;
248250
}
249251

252+
#[wasm_bindgen(js_name = "setCustomPlayerVersionString")]
253+
pub fn set_custom_player_version_string(&mut self, value: Option<String>) {
254+
self.custom_player_version_string = value;
255+
}
256+
250257
#[wasm_bindgen(js_name = "setPreferredRenderer")]
251258
pub fn set_preferred_renderer(&mut self, value: Option<String>) {
252259
self.preferred_renderer = value;
@@ -690,6 +697,7 @@ impl RuffleInstanceBuilder {
690697
.with_letterbox(self.letterbox)
691698
.with_max_execution_duration(self.max_execution_duration)
692699
.with_player_version(self.player_version)
700+
.with_custom_version_string(self.custom_player_version_string.clone())
693701
.with_player_runtime(self.player_runtime)
694702
.with_compatibility_rules(self.compatibility_rules.clone())
695703
.with_quality(self.quality)

0 commit comments

Comments
 (0)