nextcloud / officeonline

officeonline
43 stars 15 forks source link

Failed to retrieve file information due to User-Agent #568

Open HiSkyZen opened 2 months ago

HiSkyZen commented 2 months ago

Describe the bug The app is extremely sensitive to User-Agent, so it fails to retrieve file information, especially in a mobile environment, and returns an incorrect value for getWopiUrl.

It appears to work fine on Android Chrome and Firefox UA. (The same results occur on real devices.)

To Reproduce

  1. Install and Set-up app
  2. Open OOXML file (docx, pptx, etc.) with Samsung Internet on Android

or

  1. Install and Set-up app
  2. Open OOXML file with Samsung Internet UA (below) (using User-Agent Switcher or DevTools at a Desktop) Samsung Internet UA Example Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/25.0 Chrome/121.0.0.0 Mobile Safari/537.36

Expected behavior The Office Online Viewer (Mobile UI) is displayed.

Screenshots Screenshot_20240622_014037_Edge Screenshot_20240622_013958_Samsung Internet Screenshot_20240622_013927_Chrome Screenshot_20240622_013859_Firefox IMG_1081

In order from top: Edge, Samsung Internet, Chrome, Firefox, iOS Safari

Client details:

Server details

Operating system: Ubuntu 20.04 Web server: nginx 1.27.0 Database: Percona Server 8 PHP version: PHP-FPM 8.3 Nextcloud version: 28.0.6 Version of the officeonline app 4.2.1 Version of Office Online server 2019 with KB5002503 Installed (Latest)

Logs #### Nextcloud log (data/nextcloud.log) ``` no related logs ``` #### Browser log ``` Waiting for page to render… [getWopiUrl] https://mydomain.net/index.php/apps/officeonline/wopi/files/undefined POST https://mydomain.net/apps/officeonline/undefinedWOPISrc=https%3A%2F%2Fmydomain.net%2Findex.php%2Fapps%2Fofficeonline%2Fwopi%2Ffiles%2Fundefined&title=undefined&lang=ko&closebutton=1&revisionhistory=1 404 (Not Found) ko.js?v=969c7508-70:1 Uncaught ReferenceError: OC is not defined at ko.js?v=969c7508-70:1:1 (Anonymous) @ ko.js?v=969c7508-70:1 user.js:26 Uncaught ReferenceError: t is not defined at user.js:26:19 at user.js:37:17 at user.js:37:17 (Anonymous) @ user.js:26 (Anonymous) @ user.js:37 (Anonymous) @ user.js:37 SideMenu.js:26 Uncaught ReferenceError: OC is not defined at SideMenu.js:26:20 at SideMenu.js:71:1 at SideMenu.js:71:1 (Anonymous) @ SideMenu.js:26 (Anonymous) @ SideMenu.js:71 (Anonymous) @ SideMenu.js:71 script?v=28:3 Uncaught ReferenceError: SMcreateElement is not defined at script?v=28:3:29 at script?v=28:111:3 ```