feat: Initial spatial control and aggressive feature stripping #1881
+166
−59
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Project Goal: Transform Wolvic into a spatial multi-viewer for video content, optimized for minimal resource consumption and device heat.
Current Task: Establish core spatial control over a single existing browser tab/window and aggressively strip browser features.
Changes Implemented:
Spatial Control Foundation (C++):
debugWidgetHandle
anddebugWidgetTransform
toBrowserWorld
to allow overriding a specific widget's transform.debugWidgetHandle
to0
for initial testing.BrowserWorld::LayoutWidget
to apply this debugtransform, bypassing normal layout calculations for the targeted widget.
debug widget's transform, primarily in
BrowserWorld::TickImmersive
.Aggressive Feature Stripping - Phase 1 (UI & High-Level Java Logic):
VRBrowserActivity.java
:NavigationBarWidget
,TrayWidget
, andTabsBar
.addWidgets
to only include essential widgets:RootWidget
,KeyboardWidget
(retained for potential future basicURL input), and
WebXRInterstitialWidget
(for core WebXR).reference the stripped UI components.
Aggressive Feature Stripping - Phase 2 (Backend Services & AndroidManifest):
app/src/main/AndroidManifest.xml
:CrashReporterService
andFileProvider
.ACCESS_COARSE_LOCATION
,ACCESS_FINE_LOCATION
,REQUEST_INSTALL_PACKAGES
, and theapp-specific crash receiver permission.
VRBrowserApplication.java
:Places
(bookmarks/history),Services
(dependent on Places),LoginStorage
,Accounts
,DownloadsManager
, andAddons
.Refined Initial Window Setup:
Windows.java
,Session.java
, andSessionStore.java
tounderstand initial window and URL loading mechanisms.
Session.getHomeUri()
inSession.java
to ensure thatnewly created non-private sessions default to loading
"about:blank"
,providing a clean and minimal initial page. This works in conjunction
with
WindowWidget.loadHome()
which also points to this.The application is expected to launch with a significantly reduced UI, displaying a single animated window with
about:blank
. The next steps involve building, testing these changes on a device, and addressing any runtime issues or crashes that may arise from the stripping process.