Changes

Jump to navigation Jump to search
992 bytes added ,  22:44, 25 May 2017
Line 1: Line 1: −
The YouTube application available from the eShop is a web-browser. Like the [[Internet_Browser|main]] browser this uses WebKit. All data is downloaded with plaintext HTTP.
+
The YouTube application available from the eShop is a web-browser. Like the [[Internet Browser|main]] browser this uses WebKit. All data is downloaded with plaintext HTTP (3DS application).
 +
 
 +
The OSS for the 3DS / Wii U YouTube application is available at the following:
 +
* [https://github.com/youtube/h5vcc_hh]
 +
* [https://github.com/youtube/h5vcc]
    
==User-Agent and Browser Versions==
 
==User-Agent and Browser Versions==
Line 35: Line 39:        +
'''None''' of the public Old3DS/New3DS [[browserhax]] which were public at the time this YouTube app was updated, affect the YouTube app at all (no crashes).
 +
* The "range" html <input> no longer displays: the page background-color is displayed where the slider would have been. Hence, unless there's a way to get this to actually display, [[browserhax|sliderhax]] isn't usable with this YouTube app version.
 +
 +
See [https://github.com/youtube/h5vcc_hh/commit/f464b0a60c6bc99001d4fe3b1915d31dc22b5d69 here] for the WebKit changes. The only actual code changes (in this commit) besides an optimization changeset being integrated, is changes for fixing the vuln used by tubehax.
   −
* The "range" html <input> no longer displays: the page background-color is displayed where the slider would have been. Hence, unless there's a way to get this to actually display, [[browserhax|sliderhax]] isn't usable with this YouTube app version.
+
Originally the YouTube app used the DNS server from the system configuration. Now it's hard-coded to use Google's DNS server at IP address 8.8.8.8 via DNS-resolver socket code in the app itself (it's unknown whether this resolver code existed in the app before this version).
 
|}
 
|}
   −
Updates for this application are forced, since the app itself checks for a newer version of the title(this is done before any actual HTTP requests by the actual application are done). This is done with [[Friend_Services]]: the application tries to authenticate itself with FRDU. When the installed version is outdated, it gets an error-code in the output buffer for [[FRDU:GetGameAuthenticationData]](this error-code then gets passed to the error-display applet). This is exactly what official games do when initializing online multiplayer too.
+
Updates for this application are forced, since the app itself checks for a newer version of the title (this is done before any actual HTTP requests by the actual application are done). This is done with [[Friend Services]]: the application tries to authenticate itself with FRDU. When the installed version is outdated, it gets an error-code in the output buffer for [[FRDU:GetGameAuthenticationData]] (this error-code then gets passed to the error-display applet). This is exactly what official games do when initializing online multiplayer too.
   −
The friend HTTP requests which are involved with the above use HTTPS, so blocking it isn't an option(the usual POST request(s) to https://nasc.nintendowifi.net/ac): blocking it via DNS only results in a different error-code.
+
The friend HTTP requests which are involved with the above use HTTPS, so blocking it isn't an option (the usual POST request(s) to https://nasc.nintendowifi.net/ac): blocking it via DNS only results in a different error-code.
    
==RomFS==
 
==RomFS==
The RomFS only contains [[CRO0|CROs]]("/cro/") and the [[CRR0|CRR]]("/.crr/static.crr"), the following is the "/cro/" contents:
+
The RomFS only contains [[CRO0|CROs]] ("/cro/") and the [[CRR0|CRR]] ("/.crr/static.crr"), the following is the "/cro/" contents:
 
* JavaScriptCore_CTR.cro
 
* JavaScriptCore_CTR.cro
 
* WebCore_CTR.cro
 
* WebCore_CTR.cro
Line 50: Line 58:  
* WebKit_CTR.cro
 
* WebKit_CTR.cro
 
* static.crs
 
* static.crs
 +
 +
==3rd Party Libs==
 +
The youtube application seems to use libcurl, libjpeg, OpenSSL(ver 1.0.0e) and libavcodec.
 +
 
==Webkit==
 
==Webkit==
 
Looks like the YouTube application uses a newer version of Webkit than the Internet Browser applet. It has the ability to construct Blobs, of course the HTML5 video element, and possibly the Audio element (Visible, but untested). It also supports the localStorage API. Here a list of exposed apis: [http://pastie.org/private/cmtppzyqmopzi9umhg8za].
 
Looks like the YouTube application uses a newer version of Webkit than the Internet Browser applet. It has the ability to construct Blobs, of course the HTML5 video element, and possibly the Audio element (Visible, but untested). It also supports the localStorage API. Here a list of exposed apis: [http://pastie.org/private/cmtppzyqmopzi9umhg8za].
115

edits

Navigation menu