Internet Browser: Difference between revisions
No edit summary |
|||
Line 8: | Line 8: | ||
The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine. | The 3DS Internet Browser is [http://en.wikipedia.org/wiki/Netfront Netfront] Browser NX v1.0 based on [http://en.wikipedia.org/wiki/WebKit WebKit] engine. | ||
The browser | On O3DS the exheader name of this title is "SPIDER"; on N3DS, "SKATER". | ||
The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region. | |||
A [[#v9.9_dummy_web-browser|"dummy" browser]] (which replaces the actual browser) is being included with cartdrige games shipping the [[9.9.0-26|9.9.0-X]] system update. | |||
In addition, versions of the real browser since 9.9.0-26X attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date. | |||
A [[#v9.9_dummy_web-browser|"dummy" browser]] (which replaces the actual browser) is | |||
==[[New 3DS]] Internet Browser== | ==[[New 3DS]] Internet Browser== | ||
New3DS has a separate browser title, the exheader name | New3DS has a separate browser title, with the exheader name "SKATER". | ||
Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. | |||
This browser also has a filter enabled by default in the JPN version. | |||
Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]]. | |||
During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST | During startup the browser does various HTTPS comms. When visting an URL, the browser sends a plaintext HTTP POST here: [http://ars.ifuser.jp:20080/ars2/rating]. The raw POST data begins with "ARS/2.0\r\n\x00", the rest appears to be encrypted. The server reply content also has this ARS header + encrypted data. This appears to use a fixed xorpad, likely from a fixed encryption CTR/IV. The server content responses for allowed sites, and blocked sites, are fixed. When the server returns that the site is blocked, the browser goes to this page: [http://ars.ifuser.jp/filter/44.html](the Referrer header value is set to the same URL it's actually requesting). | ||
The WebKit source was updated since the Old3DS browser. | The WebKit source was updated since the Old3DS browser. | ||
The New3DS browser uses the following services: [[MVD_Services|mvd:STD]] and [[IR_Services|ir:rst]](DLC-related services are used too but those aren't New3DS specific). | |||
Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn't have access to that at all since it uses DSP instead. | Video decoding is done with [[MVD_Services|mvd:STD]]. Audio decoding/playback is done with a browser-specific DSP binary. The Old3DS browser used CSND for audio playback, the New3DS browser doesn't have access to that at all since it uses DSP instead. | ||
The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. | The browser manual includes licenses for Android and PacketVideo. The browser uses libstagefright from Android. | ||
Line 314: | Line 310: | ||
== Old3DS browser == | == Old3DS browser == | ||
=== Old3DS Browser Specifications === | |||
* "Browser engine: NetFront® Browser" | |||
* "User agent: Mozilla/5.0 (Nintendo 3DS; region; ; en) Version/1.7498.US" | |||
* "Supported protocols: HTTP1.0/HTTP1.1/SSLv3/TLS1.0" | |||
* "Web standard: HTML 4.01/XHTML 1.1/CSS 1/CSS 2.1/CSS 3 (partial functionality)/DOM Levels 1-3/ECMAScript | |||
/XMLHttpRequest/Canvas Element (partial functionality)" | |||
* "Image format: MPO / GIF / JPEG / PNG / BMP / ICO (some images cannot be displayed)" | |||
* "Plug-ins: Plug-ins such as Adobe Flash are not supported" | |||
Old3DS browser doesn't support events "focusin" and "focusout" | |||
=== User-Agent and Browser Versions === | === User-Agent and Browser Versions === | ||
Line 615: | Line 622: | ||
| s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it's unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed. | | s64 timestamp, can be either a normal positive timestamp or a relative negative one. Used with the forced-update described above. When an update is detected this timestamp is negative, otherwise this is a normal positive timestamp(it's unknown how exactly this timestamp is checked). When positive, this seems to be the last time the forced-update HTTPS request was done where no update was needed. | ||
|} | |} | ||
==Other details== | ==Other details== | ||
Line 742: | Line 717: | ||
==Example Sites== | ==Example Sites== | ||
<!-- If you have a website that demonstrates these techniques, place it here! --> | <!-- If you have a website that demonstrates these techniques, place it here! --> | ||
* [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser. | |||
* [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW) | * [http://3ds.andysmith.co.uk/jFox.html jFox] (Short URL: http://bit.ly/iB7FqW) | ||
* [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA) | * [http://ditto3d.com/3ds Ditto3D] (Short URL: http://bit.ly/oVreWA) | ||