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 supports up to 64 bookmarks. | + | 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. |
| | | |
− | The exheader name of this title is "spider".
| + | 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. |
− | The only difference between the ExeFS .code for each region of the Old3DS/New3DS browser, is byte values for the title uniqueID/region, otherwise the binaries are identical.
| |
− | | |
− | A [[#v9.9_dummy_web-browser|"dummy" browser]] (which replaces the actual browser) is now being included beginning with 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 now attempt to [[#Forced_system-update|check-in with a Nintendo server]] to determine if the existing browser version is out of date. | |
| | | |
| ==[[New 3DS]] Internet Browser== | | ==[[New 3DS]] Internet Browser== |
− | New3DS has a separate browser title, the exheader name is "SKATER". | + | New3DS has a separate browser title, with the exheader name "SKATER". |
| + | Unlike the Old3DS browser, the New3DS browser has videos+HTML5 support. |
| | | |
− | Unlike the Old3DS browser, this New3DS browser has videos+HTML5 support. This browser also has a filter enabled by default(ExeFS codebin is same for all regions, this filter only applies for JPN region). Disabling it requires paying money with a credit-card, for [[NIM_Services|purchasing]] web-browser [[Title_list/DLC|DLC]].
| + | 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 to 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). | + | 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). |
− | Unlike 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. |
| |} | | |} |
− |
| |
− | ==Web Standards==
| |
− | *HTML 4.01
| |
− | *HTML 5 (120/400 score on [http://www.html5test.com HTML5Test.com])
| |
− | *XHTML 1.1
| |
− | *CSS 1
| |
− | *CSS 2.1
| |
− | *CSS 3 (some functionality is unavailable)
| |
− | *DOM Levels 1-3
| |
− | *ECMAScript (partial support for ECMA-262 5th Edition)
| |
− | *XMLHttpRequest Level 2
| |
− | *Canvas Element (some functionality is unavailable)
| |
− |
| |
− | Old3DS browser doesn't support events "focusin" and "focusout", while the New3DS browser does support those events(going by webkit/WebCore/dom/EventNames.h).
| |
− |
| |
− | ==Protocols==
| |
− | *HTTP 1.0
| |
− | *HTTP 1.1
| |
− | *SSLv3
| |
− | *TLS 1.0
| |
− |
| |
− | ==Image Formats==
| |
− | *[[File_Formats|MPO]]
| |
− | *GIF
| |
− | *JPEG
| |
− | *PNG
| |
− | *BMP
| |
− | *ICO (some files cannot be displayed)
| |
− |
| |
− | ==Plug-Ins==
| |
− |
| |
− | Plug-ins (such as Adobe Flash) are not supported.
| |
| | | |
| ==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) |
− | * [http://www.nintendo.com/3ds/internetbrowser/bookmarks Nintendo 3DS Bookmarks] - This is the first bookmark pre-installed in the browser.
| |