|
1 <?xml version="1.0" encoding="UTF-8"?> |
|
2 |
|
3 <!DOCTYPE html [ |
|
4 <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" > |
|
5 %brandDTD; |
|
6 <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd"> |
|
7 %globalDTD; |
|
8 <!ENTITY % fennecDTD SYSTEM "chrome://browser/locale/about.dtd"> |
|
9 %fennecDTD; |
|
10 ]> |
|
11 |
|
12 <!-- This Source Code Form is subject to the terms of the Mozilla Public |
|
13 - License, v. 2.0. If a copy of the MPL was not distributed with this |
|
14 - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> |
|
15 |
|
16 <html xmlns="http://www.w3.org/1999/xhtml"> |
|
17 <head> |
|
18 <meta name="viewport" content="width=480; initial-scale=.6667; user-scalable=no"/> |
|
19 <title>&aboutPage.title;</title> |
|
20 <link rel="stylesheet" href="chrome://browser/skin/aboutPage.css" type="text/css"/> |
|
21 <link rel="icon" type="image/png" sizes="64x64" href="chrome://branding/content/favicon64.png" /> |
|
22 </head> |
|
23 |
|
24 <body dir="&locale.dir;"> |
|
25 <div id="header"> |
|
26 <div id="wordmark"></div> |
|
27 #expand <p id="version">__MOZ_APP_VERSION__</p> |
|
28 </div> |
|
29 |
|
30 <div id="banner"> |
|
31 <div id="logo"/> |
|
32 #ifdef MOZ_UPDATER |
|
33 <div id="updateBox"> |
|
34 <a id="updateLink" href="" onclick="checkForUpdates();">&aboutPage.checkForUpdates.link;</a> |
|
35 <span id="update-message-checking">&aboutPage.checkForUpdates.checking;</span> |
|
36 <span id="update-message-none">&aboutPage.checkForUpdates.none;</span> |
|
37 <span id="update-message-found" onclick="downloadUpdate()">&aboutPage.checkForUpdates.available2;</span> |
|
38 <span id="update-message-downloading">&aboutPage.checkForUpdates.downloading;</span> |
|
39 <span id="update-message-downloaded" onclick="installUpdate()">&aboutPage.checkForUpdates.downloaded2;</span> |
|
40 </div> |
|
41 #endif |
|
42 |
|
43 <div id="messages"> |
|
44 <p id="distributionAbout" hidden="true"/> |
|
45 <p id="distributionID" hidden="true"/> |
|
46 <p id="telemetry" hidden="true"> |
|
47 &aboutPage.warningVersion; |
|
48 #ifdef MOZ_TELEMETRY_ON_BY_DEFAULT |
|
49 &aboutPage.telemetryStart;<a href="http://www.mozilla.org/">&aboutPage.telemetryMozillaLink;</a>&aboutPage.telemetryEnd; |
|
50 #endif |
|
51 </p> |
|
52 </div> |
|
53 |
|
54 </div> |
|
55 |
|
56 <ul id="aboutLinks"> |
|
57 <div class="top-border"></div> |
|
58 <li><a id="faqURL">&aboutPage.faq.label;</a></li> |
|
59 <li><a id="supportURL">&aboutPage.support.label;</a></li> |
|
60 <li><a id="privacyURL">&aboutPage.privacyPolicy.label;</a></li> |
|
61 <li><a href="about:rights">&aboutPage.rights.label;</a></li> |
|
62 <li><a id="releaseNotesURL">&aboutPage.relNotes.label;</a></li> |
|
63 <li><a id="creditsURL">&aboutPage.credits.label;</a></li> |
|
64 <li><a href="about:license">&aboutPage.license.label;</a></li> |
|
65 <div class="bottom-border"></div> |
|
66 </ul> |
|
67 |
|
68 <div id="aboutDetails"> |
|
69 <p>&logoTrademark;</p> |
|
70 </div> |
|
71 |
|
72 <script type="application/javascript;version=1.8"><![CDATA[ |
|
73 let Ci = Components.interfaces, Cc = Components.classes, Cu = Components.utils, Cr = Components.results; |
|
74 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); |
|
75 Cu.import("resource://gre/modules/Services.jsm"); |
|
76 |
|
77 // Include the build date and a warning about Telemetry |
|
78 // if this is an "a#" (nightly or aurora) build |
|
79 #expand const version = "__MOZ_APP_VERSION__"; |
|
80 if (/a\d+$/.test(version)) { |
|
81 let buildID = Services.appinfo.appBuildID; |
|
82 let buildDate = buildID.slice(0,4) + "-" + buildID.slice(4,6) + "-" + buildID.slice(6,8); |
|
83 let br = document.createElement("br"); |
|
84 let versionPara = document.getElementById("version"); |
|
85 versionPara.appendChild(br); |
|
86 let date = document.createTextNode("(" + buildDate + ")"); |
|
87 versionPara.appendChild(date); |
|
88 document.getElementById("telemetry").hidden = false; |
|
89 } |
|
90 |
|
91 // Include the Distribution information if available |
|
92 try { |
|
93 let distroId = Services.prefs.getCharPref("distribution.id"); |
|
94 if (distroId) { |
|
95 let distroVersion = Services.prefs.getCharPref("distribution.version"); |
|
96 let distroIdField = document.getElementById("distributionID"); |
|
97 distroIdField.textContent = distroId + " - " + distroVersion; |
|
98 distroIdField.hidden = false; |
|
99 |
|
100 let distroAbout = Services.prefs.getComplexValue("distribution.about", Ci.nsISupportsString); |
|
101 let distroField = document.getElementById("distributionAbout"); |
|
102 distroField.textContent = distroAbout; |
|
103 distroField.hidden = false; |
|
104 } |
|
105 } catch (e) { |
|
106 // Pref is unset |
|
107 } |
|
108 |
|
109 // get URLs from prefs |
|
110 try { |
|
111 let formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"].getService(Ci.nsIURLFormatter); |
|
112 |
|
113 let links = [ |
|
114 {id: "releaseNotesURL", pref: "app.releaseNotesURL"}, |
|
115 {id: "supportURL", pref: "app.support.baseURL"}, |
|
116 {id: "faqURL", pref: "app.faqURL"}, |
|
117 {id: "privacyURL", pref: "app.privacyURL"}, |
|
118 {id: "creditsURL", pref: "app.creditsURL"}, |
|
119 ]; |
|
120 |
|
121 links.forEach(function (link) { |
|
122 let url = formatter.formatURLPref(link.pref); |
|
123 let element = document.getElementById(link.id); |
|
124 element.setAttribute("href", url); |
|
125 }); |
|
126 } catch (ex) {} |
|
127 |
|
128 #ifdef MOZ_UPDATER |
|
129 let Updater = { |
|
130 update: null, |
|
131 |
|
132 init: function() { |
|
133 Services.obs.addObserver(this, "Update:CheckResult", false); |
|
134 }, |
|
135 |
|
136 observe: function(aSubject, aTopic, aData) { |
|
137 if (aTopic == "Update:CheckResult") { |
|
138 showUpdateMessage(aData); |
|
139 } |
|
140 }, |
|
141 }; |
|
142 |
|
143 Updater.init(); |
|
144 |
|
145 function checkForUpdates() { |
|
146 showCheckingMessage(); |
|
147 |
|
148 Services.androidBridge.handleGeckoMessage({ type: "Update:Check" }); |
|
149 } |
|
150 |
|
151 function downloadUpdate() { |
|
152 Services.androidBridge.handleGeckoMessage({ type: "Update:Download" }); |
|
153 } |
|
154 |
|
155 function installUpdate() { |
|
156 showCheckAction(); |
|
157 |
|
158 Services.androidBridge.handleGeckoMessage({ type: "Update:Install" }); |
|
159 } |
|
160 |
|
161 let updateLink = document.getElementById("updateLink"); |
|
162 let checkingSpan = document.getElementById("update-message-checking"); |
|
163 let noneSpan = document.getElementById("update-message-none"); |
|
164 let foundSpan = document.getElementById("update-message-found"); |
|
165 let downloadingSpan = document.getElementById("update-message-downloading"); |
|
166 let downloadedSpan = document.getElementById("update-message-downloaded"); |
|
167 |
|
168 function showCheckAction() { |
|
169 checkingSpan.style.display = "none"; |
|
170 noneSpan.style.display = "none"; |
|
171 foundSpan.style.display = "none"; |
|
172 downloadingSpan.style.display = "none"; |
|
173 downloadedSpan.style.display = "none"; |
|
174 updateLink.style.display = "block"; |
|
175 } |
|
176 |
|
177 function showCheckingMessage() { |
|
178 updateLink.style.display = "none"; |
|
179 noneSpan.style.display = "none"; |
|
180 foundSpan.style.display = "none"; |
|
181 downloadingSpan.style.display = "none"; |
|
182 downloadedSpan.style.display = "none"; |
|
183 checkingSpan.style.display = "block"; |
|
184 } |
|
185 |
|
186 function showUpdateMessage(aResult) { |
|
187 updateLink.style.display = "none"; |
|
188 checkingSpan.style.display = "none"; |
|
189 noneSpan.style.display = "none"; |
|
190 foundSpan.style.display = "none"; |
|
191 downloadingSpan.style.display = "none"; |
|
192 downloadedSpan.style.display = "none"; |
|
193 |
|
194 // the aResult values come from mobile/android/base/UpdateServiceHelper.java |
|
195 switch (aResult) { |
|
196 case "NOT_AVAILABLE": |
|
197 noneSpan.style.display = "block"; |
|
198 setTimeout(showCheckAction, 2000); |
|
199 break; |
|
200 case "AVAILABLE": |
|
201 foundSpan.style.display = "block"; |
|
202 break; |
|
203 case "DOWNLOADING": |
|
204 downloadingSpan.style.display = "block"; |
|
205 break; |
|
206 case "DOWNLOADED": |
|
207 downloadedSpan.style.display = "block"; |
|
208 break; |
|
209 } |
|
210 } |
|
211 #endif |
|
212 ]]></script> |
|
213 </body> |
|
214 </html> |