On Windows the browser opens on the DisplayXR samples index. On Android it opens on a
plain New Tab Page, so a first-time tester lands somewhere with no inline-3D on it and
has to be told a URL to type.
Why the Windows mechanism does not carry over
scripts/package.sh:74 copies branding/initial_preferences next to chrome.exe:
"homepage": "https://displayxr.github.io/displayxr-web/",
"session": { "restore_on_startup": 4,
"startup_urls": ["https://displayxr.github.io/displayxr-web/"] }
Chromium reads that file from the directory containing the executable to seed a new
profile. On Android there is no such directory — the APK has no chrome.exe sibling — so
the file is simply not consulted. Nothing in the Android build path references it
(scripts/build.sh), and no patch touches the homepage
(grep -rl 'HomepageManager\|getDefaultHomepageUri\|PartnerBrowserCustomizations' patches/
is empty).
So this is a gap, not a regression: the Android arm never had a default landing page.
Options
- Patch the Android default homepage — the fork already carries 100+ patches, and a
small one setting the default homepage/startup URL is the direct analogue of what
initial_preferences does on Windows. Costs a Chromium-tree edit, a series
regeneration, and an Android rebuild.
PartnerBrowserCustomizations — Chromium's OEM homepage provider. Designed for
exactly this, but it expects a separate customization provider package, which is more
moving parts than the fork needs.
(1) is almost certainly right: one patch, and it keeps the landing page in the same place
conceptually as the Windows one — a branding decision, not a code decision.
Keep the URL in one place
Whatever mechanism, the URL should come from branding/initial_preferences rather than
being hardcoded a second time in a patch, so Windows and Android cannot drift. Today that
file is the single source of truth for the Windows landing page; a patch that hardcodes
the same string would silently become a second one.
Why it matters now
Non-technical testers are being sent the Android build directly. Landing on a blank NTP
means the first thing they see has no 3D in it, and the first instruction they need is
"now type this address" — which is exactly the step that loses people.
On Windows the browser opens on the DisplayXR samples index. On Android it opens on a
plain New Tab Page, so a first-time tester lands somewhere with no inline-3D on it and
has to be told a URL to type.
Why the Windows mechanism does not carry over
scripts/package.sh:74copiesbranding/initial_preferencesnext tochrome.exe:Chromium reads that file from the directory containing the executable to seed a new
profile. On Android there is no such directory — the APK has no
chrome.exesibling — sothe file is simply not consulted. Nothing in the Android build path references it
(
scripts/build.sh), and no patch touches the homepage(
grep -rl 'HomepageManager\|getDefaultHomepageUri\|PartnerBrowserCustomizations' patches/is empty).
So this is a gap, not a regression: the Android arm never had a default landing page.
Options
small one setting the default homepage/startup URL is the direct analogue of what
initial_preferencesdoes on Windows. Costs a Chromium-tree edit, a seriesregeneration, and an Android rebuild.
PartnerBrowserCustomizations— Chromium's OEM homepage provider. Designed forexactly this, but it expects a separate customization provider package, which is more
moving parts than the fork needs.
(1) is almost certainly right: one patch, and it keeps the landing page in the same place
conceptually as the Windows one — a branding decision, not a code decision.
Keep the URL in one place
Whatever mechanism, the URL should come from
branding/initial_preferencesrather thanbeing hardcoded a second time in a patch, so Windows and Android cannot drift. Today that
file is the single source of truth for the Windows landing page; a patch that hardcodes
the same string would silently become a second one.
Why it matters now
Non-technical testers are being sent the Android build directly. Landing on a blank NTP
means the first thing they see has no 3D in it, and the first instruction they need is
"now type this address" — which is exactly the step that loses people.