You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2017/12/19 19:55:40 UTC

svn commit: r1818709 - in /cordova/site/public: ./ announcements/2017/12/04/ blog/ docs/en/dev/reference/cordova-plugin-camera/ news/2017/12/ news/2017/12/18/ static/js/

Author: steven
Date: Tue Dec 19 19:55:40 2017
New Revision: 1818709

URL: http://svn.apache.org/viewvc?rev=1818709&view=rev
Log:
Updated docs

Added:
    cordova/site/public/news/2017/12/
    cordova/site/public/news/2017/12/18/
    cordova/site/public/news/2017/12/18/tools-release.html
Modified:
    cordova/site/public/announcements/2017/12/04/cordova-android-7.0.0.html
    cordova/site/public/blog/index.html
    cordova/site/public/docs/en/dev/reference/cordova-plugin-camera/index.html
    cordova/site/public/feed.xml
    cordova/site/public/sitemap.xml
    cordova/site/public/static/js/index.js

Modified: cordova/site/public/announcements/2017/12/04/cordova-android-7.0.0.html
URL: http://svn.apache.org/viewvc/cordova/site/public/announcements/2017/12/04/cordova-android-7.0.0.html?rev=1818709&r1=1818708&r2=1818709&view=diff
==============================================================================
--- cordova/site/public/announcements/2017/12/04/cordova-android-7.0.0.html (original)
+++ cordova/site/public/announcements/2017/12/04/cordova-android-7.0.0.html Tue Dec 19 19:55:40 2017
@@ -208,6 +208,26 @@ cordova platform add android@7.0.0
             </div>
             <div class="col-sm-6">
                 
+                    <a href="/news/2017/12/18/tools-release.html">Next</a>
+                    <br>
+                    <br>
+                    <a class="title" href="/news/2017/12/18/tools-release.html">Tools Released!</a>
+                    <div class="date"> 18 Dec 2017 - By Steve Gill </div>
+                    <p class="content">
+                        <!--
+                            NOTE:
+                                the markdownify filter is used here
+                                because posts are rendered in sequence;
+                                that is, the next post's content isn't
+                                yet rendered at the time that this post
+                                is being rendered, so page.next.excerpt
+                                is still in Markdown and not HTML
+
+                            Reference: https://github.com/jekyll/jekyll/issues/2860
+                        -->
+                        We just released an update to our tools! cordova@8.0.0 cordova-lib@8.0.0 cordova-plugman@2.0.0 cordova-fetch@1.3.0...
+                    </p>
+                
             </div>
         </div>
     </footer>

Modified: cordova/site/public/blog/index.html
URL: http://svn.apache.org/viewvc/cordova/site/public/blog/index.html?rev=1818709&r1=1818708&r2=1818709&view=diff
==============================================================================
--- cordova/site/public/blog/index.html (original)
+++ cordova/site/public/blog/index.html Tue Dec 19 19:55:40 2017
@@ -124,6 +124,52 @@
             
             <li>
                 <header>
+                    <div class="adorner" blogTime="Mon, 18 Dec 2017 00:00:00 +0000"></div>
+                    <h2 class="title">
+                        <a href="/news/2017/12/18/tools-release.html">Tools Released!</a>
+                    </h2>
+                    <div class="details">
+                        <span class="date">18 Dec 2017</span>
+                        - by
+                        <span class="author">
+                            
+                                <a href="https://twitter.com/stevesgill">Steve Gill</a>
+                            
+                        </span>
+                        <a class="comment" href="/news/2017/12/18/tools-release.html#disqus_thread"></a>
+                    </div>
+                </header>
+                <section class="post-excerpt">
+                    <p><p>We just released an update to our tools!</p>
+
+<ul>
+<li><a href="https://www.npmjs.org/package/cordova">cordova@8.0.0</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-lib">cordova-lib@8.0.0</a></li>
+<li><a href="https://www.npmjs.org/package/plugman">cordova-plugman@2.0.0</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-fetch">cordova-fetch@1.3.0</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-common">cordova-common@2.2.1</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-create">cordova-create@1.1.2</a></li>
+</ul>
+
+<h2>Release Highlights</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13056">CB-13056</a>: removed support for <strong>WebOS</strong>, <strong>BlackBerry10</strong>, and <strong>Ubuntu</strong></li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13057">CB-13057</a>: removed <code>cordova save</code> command. This command isn&#39;t needed as cordova auto saves dependencies.</li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13055">CB-13055</a>: removed <code>--nofetch</code> flag. Now all of our dependency fetching happens via <code>cordova-fetch</code>. This allowed us to drop the <code>npm@2</code> dependency we were shipping with cordova. Instead, we now just use your system <code>npm</code> to do all of our fetching. </li>
+</ul>
+
+<p>To update your cordova CLI:</p>
+<div class="highlight"><pre><code class="language-" data-lang="">npm install -g cordova@latest
+</code></pre></div>
+<p>Please report any issues you find at <a href="http://issues.cordova.io/">issues.cordova.io</a>!</p>
+</p>
+                    <div><a href="/news/2017/12/18/tools-release.html">More...</a></div>
+                </section>
+            </li>
+            
+            <li>
+                <header>
                     <div class="adorner" blogTime="Mon, 04 Dec 2017 00:00:00 +0000"></div>
                     <h2 class="title">
                         <a href="/announcements/2017/12/04/cordova-android-7.0.0.html">Cordova Android 7.0.0 Released!</a>
@@ -7003,7 +7049,7 @@ window.twttr = (function(d, s, id) {
 <script>
     window.onload = function(){
         setTimeout(function(){
-            var lastPostTime = new Date("Mon, 04 Dec 2017 00:00:00 +0000").getTime();
+            var lastPostTime = new Date("Mon, 18 Dec 2017 00:00:00 +0000").getTime();
           setCookie("visitTime", lastPostTime, 365);
         }, 2000);
     };

Modified: cordova/site/public/docs/en/dev/reference/cordova-plugin-camera/index.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/dev/reference/cordova-plugin-camera/index.html?rev=1818709&r1=1818708&r2=1818709&view=diff
==============================================================================
--- cordova/site/public/docs/en/dev/reference/cordova-plugin-camera/index.html (original)
+++ cordova/site/public/docs/en/dev/reference/cordova-plugin-camera/index.html Tue Dec 19 19:55:40 2017
@@ -2896,10 +2896,14 @@ than <code>DATA_URL</code>.</p>
 
 <ul>
 <li>Android</li>
+<li>BlackBerry</li>
 <li>Browser</li>
+<li>Firefox</li>
+<li>FireOS</li>
 <li>iOS</li>
 <li>Windows</li>
-<li>OSX</li>
+<li>WP8</li>
+<li>Ubuntu</li>
 </ul>
 
 <p>More examples <a href="#camera-getPicture-examples">here</a>. Quirks <a href="#camera-getPicture-quirks">here</a>.</p>
@@ -3460,12 +3464,18 @@ function onFail(message) {
 </code></pre></div></li>
 </ul>
 
+<h4>Amazon Fire OS Quirks <a name="camera-getPicture-quirks"></a></h4>
+
+<p>Amazon Fire OS uses intents to launch the camera activity on the device to capture
+images, and on phones with low memory, the Cordova activity may be killed.  In this
+scenario, the image may not appear when the Cordova activity is restored.</p>
+
 <h4>Android Quirks</h4>
 
 <p>Android uses intents to launch the camera activity on the device to capture
 images, and on phones with low memory, the Cordova activity may be killed.  In this
 scenario, the result from the plugin call will be delivered via the resume event.
-See [the Android Lifecycle guide][android_lifecycle]
+See <a href="http://cordova.apache.org/docs/en/dev/guide/platforms/android/lifecycle.html">the Android Lifecycle guide</a>
 for more information. The <code>pendingResult.result</code> value will contain the value that
 would be passed to the callbacks (either the URI/URL or an error message). Check
 the <code>pendingResult.pluginStatus</code> to determine whether or not the call was
@@ -3475,6 +3485,10 @@ successful.</p>
 
 <p>Can only return photos as Base64-encoded image.</p>
 
+<h4>Firefox OS Quirks</h4>
+
+<p>Camera plugin is currently implemented using <a href="https://hacks.mozilla.org/2013/01/introducing-web-activities/">Web Activities</a>.</p>
+
 <h4>iOS Quirks</h4>
 
 <p>Including a JavaScript <code>alert()</code> in either of the callback functions
@@ -3485,6 +3499,11 @@ displays:</p>
     // do your thing here!
 }, 0);
 </code></pre></div>
+<h4>Windows Phone 7 Quirks</h4>
+
+<p>Invoking the native camera application while the device is connected
+via Zune does not work, and triggers an error callback.</p>
+
 <h4>Windows quirks</h4>
 
 <p>On Windows Phone 8.1 using <code>SAVEDPHOTOALBUM</code> or <code>PHOTOLIBRARY</code> as a source type causes application to suspend until file picker returns the selected image and
@@ -3495,6 +3514,22 @@ start page from scratch and success and
 
 <p>More information about Windows Phone 8.1 picker APIs is here: <a href="https://msdn.microsoft.com/en-us/library/windows/apps/dn720490.aspx">How to continue your Windows Phone app after calling a file picker</a></p>
 
+<h4>Tizen Quirks</h4>
+
+<p>Tizen only supports a <code>destinationType</code> of
+<code>Camera.DestinationType.FILE_URI</code> and a <code>sourceType</code> of
+<code>Camera.PictureSourceType.PHOTOLIBRARY</code>.</p>
+
+<h2><code>CameraOptions</code> Errata <a name="CameraOptions-quirks"></a></h2>
+
+<h4>Amazon Fire OS Quirks</h4>
+
+<ul>
+<li><p>Any <code>cameraDirection</code> value results in a back-facing photo.</p></li>
+<li><p>Ignores the <code>allowEdit</code> parameter.</p></li>
+<li><p><code>Camera.PictureSourceType.PHOTOLIBRARY</code> and <code>Camera.PictureSourceType.SAVEDPHOTOALBUM</code> both display the same photo album.</p></li>
+</ul>
+
 <h4>Android Quirks</h4>
 
 <ul>
@@ -3504,6 +3539,30 @@ start page from scratch and success and
 <li><p>Ignores the <code>encodingType</code> parameter if the image is unedited (i.e. <code>quality</code> is 100, <code>correctOrientation</code> is false, and no <code>targetHeight</code> or <code>targetWidth</code> are specified). The <code>CAMERA</code> source will always return the JPEG file given by the native camera and the <code>PHOTOLIBRARY</code> and <code>SAVEDPHOTOALBUM</code> sources will return the selected file in its existing encoding.</p></li>
 </ul>
 
+<h4>BlackBerry 10 Quirks</h4>
+
+<ul>
+<li><p>Ignores the <code>quality</code> parameter.</p></li>
+<li><p>Ignores the <code>allowEdit</code> parameter.</p></li>
+<li><p><code>Camera.MediaType</code> is not supported.</p></li>
+<li><p>Ignores the <code>correctOrientation</code> parameter.</p></li>
+<li><p>Ignores the <code>cameraDirection</code> parameter.</p></li>
+</ul>
+
+<h4>Firefox OS Quirks</h4>
+
+<ul>
+<li><p>Ignores the <code>quality</code> parameter.</p></li>
+<li><p><code>Camera.DestinationType</code> is ignored and equals <code>1</code> (image file URI)</p></li>
+<li><p>Ignores the <code>allowEdit</code> parameter.</p></li>
+<li><p>Ignores the <code>PictureSourceType</code> parameter (user chooses it in a dialog window)</p></li>
+<li><p>Ignores the <code>encodingType</code></p></li>
+<li><p>Ignores the <code>targetWidth</code> and <code>targetHeight</code></p></li>
+<li><p><code>Camera.MediaType</code> is not supported.</p></li>
+<li><p>Ignores the <code>correctOrientation</code> parameter.</p></li>
+<li><p>Ignores the <code>cameraDirection</code> parameter.</p></li>
+</ul>
+
 <h4>iOS Quirks</h4>
 
 <ul>
@@ -3512,6 +3571,23 @@ start page from scratch and success and
 <li><p>When using <code>destinationType.NATIVE_URI</code> and <code>sourceType.PHOTOLIBRARY</code> or <code>sourceType.SAVEDPHOTOALBUM</code>, all editing options are ignored and link is returned to original picture.</p></li>
 </ul>
 
+<h4>Tizen Quirks</h4>
+
+<ul>
+<li><p>options not supported</p></li>
+<li><p>always returns a FILE URI</p></li>
+</ul>
+
+<h4>Windows Phone 7 and 8 Quirks</h4>
+
+<ul>
+<li><p>Ignores the <code>allowEdit</code> parameter.</p></li>
+<li><p>Ignores the <code>correctOrientation</code> parameter.</p></li>
+<li><p>Ignores the <code>cameraDirection</code> parameter.</p></li>
+<li><p>Ignores the <code>saveToPhotoAlbum</code> parameter.  IMPORTANT: All images taken with the WP8/8 Cordova camera API are always copied to the phone&#39;s camera roll.  Depending on the user&#39;s settings, this could also mean the image is auto-uploaded to their OneDrive.  This could potentially mean the image is available to a wider audience than your app intended. If this is a blocker for your application, you will need to implement the CameraCaptureTask as <a href="http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394006.aspx">documented on MSDN</a>. You may also comment or up-vote the related issue in the <a href="https://issues.apache.org/jira/browse/CB-2083">issue tracker</a>.</p></li>
+<li><p>Ignores the <code>mediaType</code> property of <code>cameraOptions</code> as the Windows Phone SDK does not provide a way to choose videos from PHOTOLIBRARY.</p></li>
+</ul>
+
 <h2>Sample: Take Pictures, Select Pictures from the Picture Library, and Get Thumbnails <a name="sample"></a></h2>
 
 <p>The Camera plugin allows you to do things like open the device&#39;s Camera app and take a picture, or open the file picker and select one. The code snippets in this section demonstrate different tasks including:</p>

Modified: cordova/site/public/feed.xml
URL: http://svn.apache.org/viewvc/cordova/site/public/feed.xml?rev=1818709&r1=1818708&r2=1818709&view=diff
==============================================================================
--- cordova/site/public/feed.xml (original)
+++ cordova/site/public/feed.xml Tue Dec 19 19:55:40 2017
@@ -6,11 +6,98 @@
 </description>
     <link>https://cordova.apache.org/</link>
     <atom:link href="https://cordova.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Thu, 14 Dec 2017 19:07:15 +0000</pubDate>
-    <lastBuildDate>Thu, 14 Dec 2017 19:07:15 +0000</lastBuildDate>
+    <pubDate>Tue, 19 Dec 2017 19:34:48 +0000</pubDate>
+    <lastBuildDate>Tue, 19 Dec 2017 19:34:48 +0000</lastBuildDate>
     <generator>Jekyll v2.5.3</generator>
     
       <item>
+        <title>Tools Released!</title>
+        <description>&lt;p&gt;We just released an update to our tools!&lt;/p&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/cordova&quot;&gt;cordova@8.0.0&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/cordova-lib&quot;&gt;cordova-lib@8.0.0&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/plugman&quot;&gt;cordova-plugman@2.0.0&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/cordova-fetch&quot;&gt;cordova-fetch@1.3.0&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/cordova-common&quot;&gt;cordova-common@2.2.1&lt;/a&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/cordova-create&quot;&gt;cordova-create@1.1.2&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;Release Highlights&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13056&quot;&gt;CB-13056&lt;/a&gt;: removed support for &lt;strong&gt;WebOS&lt;/strong&gt;, &lt;strong&gt;BlackBerry10&lt;/strong&gt;, and &lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13057&quot;&gt;CB-13057&lt;/a&gt;: removed &lt;code&gt;cordova save&lt;/code&gt; command. This command isn&amp;#39;t needed as cordova auto saves dependencies.&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13055&quot;&gt;CB-13055&lt;/a&gt;: removed &lt;code&gt;--nofetch&lt;/code&gt; flag. Now all of our dependency fetching happens via &lt;code&gt;cordova-fetch&lt;/code&gt;. This allowed us to drop the &lt;code&gt;npm@2&lt;/code&gt; dependency we were shipping with cordova. Instead, we now just use your system &lt;code&gt;npm&lt;/code&gt; to do all of our fetching. &lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;To update your cordova CLI:&lt;/p&gt;
+&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;npm install -g cordova@latest
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+&lt;p&gt;Please report any issues you find at &lt;a href=&quot;http://issues.cordova.io/&quot;&gt;issues.cordova.io&lt;/a&gt;!&lt;/p&gt;
+
+&lt;!--more--&gt;
+
+&lt;h1&gt;Changes include:&lt;/h1&gt;
+
+&lt;h2&gt;cordova-lib&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13057&quot;&gt;CB-13057&lt;/a&gt;: removed &lt;code&gt;cordova save&lt;/code&gt; command&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13056&quot;&gt;CB-13056&lt;/a&gt;: removed support for &lt;strong&gt;WebOS&lt;/strong&gt;, &lt;strong&gt;BlackBerry10&lt;/strong&gt;, and &lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13674&quot;&gt;CB-13674&lt;/a&gt;: updated cordova dependencies&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13055&quot;&gt;CB-13055&lt;/a&gt;: updated integration tests, removed &lt;code&gt;lazy_load.js&lt;/code&gt;, removed &lt;code&gt;gitclone.js&lt;/code&gt; and &lt;code&gt;--nofetch&lt;/code&gt; flag. This removes the need for us to include an npm dependency.&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13463&quot;&gt;CB-13463&lt;/a&gt;: prevent &lt;code&gt;package.json&lt;/code&gt; updating plugins with &lt;code&gt;--nosave&lt;/code&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;cordova-cli&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13055&quot;&gt;CB-13055&lt;/a&gt;: removed &lt;code&gt;--nofetch&lt;/code&gt; flag&lt;/li&gt;
+&lt;li&gt;Use native Promises instead of &lt;code&gt;Q&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-12853&quot;&gt;CB-12853&lt;/a&gt;: re-check version before notifying.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;cordova-plugman&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13674&quot;&gt;CB-13674&lt;/a&gt;: updated &lt;code&gt;cordova-lib&lt;/code&gt; dependency to &lt;code&gt;8.0.0&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-12762&quot;&gt;CB-12762&lt;/a&gt;: pointed &lt;code&gt;package.json&lt;/code&gt; repo items to github mirrors instead of apache repos site (#89)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;cordova-fetch&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13055&quot;&gt;CB-13055&lt;/a&gt;: added workaround for when &lt;code&gt;jsonDiff&lt;/code&gt; has more than one different key. &lt;/li&gt;
+&lt;li&gt;Support git shortlink package references&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;cordova-common&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13674&quot;&gt;CB-13674&lt;/a&gt;: updated dependencies&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2&gt;cordova-create&lt;/h2&gt;
+
+&lt;ul&gt;
+&lt;li&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-12807&quot;&gt;CB-12807&lt;/a&gt;: updated error message to follow the template guide&lt;/li&gt;
+&lt;/ul&gt;
+</description>
+        <pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate>
+        <link>https://cordova.apache.org/news/2017/12/18/tools-release.html</link>
+        <guid isPermaLink="true">https://cordova.apache.org/news/2017/12/18/tools-release.html</guid>
+        
+        <category>release</category>
+        
+        <category>tools</category>
+        
+        
+        <category>news</category>
+        
+      </item>
+    
+      <item>
         <title>Cordova Android 7.0.0 Released!</title>
         <description>&lt;p&gt;We are happy to announce that &lt;code&gt;Cordova Android 7.0.0&lt;/code&gt; has been released! &lt;/p&gt;
 
@@ -705,185 +792,5 @@ cordova platform update browser@5.0.1
         
       </item>
     
-      <item>
-        <title>Transition off of cordova-plugin-file-transfer</title>
-        <description>&lt;p&gt;Early on in Cordova&amp;#39;s existence, the &lt;a href=&quot;https://github.com/apache/cordova-plugin-file-transfer&quot;&gt;file-transfer plugin&lt;/a&gt;
-was created to solve the &lt;a href=&quot;https://issues.apache.org/jira/browse/CB-22&quot;&gt;problem of downloading binary files&lt;/a&gt;.
-At the time, there weren&amp;#39;t great options for solving this using standards-compliant
-web APIs. The web took a twisty path to get to a solution (see
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/sendAsBinary&quot;&gt;Firefox&amp;#39;s &lt;code&gt;sendAsBinary&lt;/code&gt;&lt;/a&gt;
-and the now-defunct &lt;a href=&quot;https://dev.w3.org/2009/dap/file-system/file-dir-sys.html&quot;&gt;FileSystem API&lt;/a&gt;&amp;#39;s
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/BlobBuilder&quot;&gt;BlobBuilder&lt;/a&gt;,
-among others), but today you can use our good friend &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest&quot;&gt;XMLHttpRequest&lt;/a&gt;&amp;#39;s
-newest features, combined with some newer JavaScript types and objects,
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data&quot;&gt;to solve this problem&lt;/a&gt;.
-This is an exciting moment for Cordova as the dream for this project was always
-to eventually reduce the surface area of APIs the project maintains, and instead
-see regular web APIs be able to handle these use cases.&lt;/p&gt;
-
-&lt;p&gt;As a result,
-&lt;a href=&quot;https://issues.apache.org/jira/browse/CB-13052&quot;&gt;Cordova is sunsetting the file-transfer plugin&lt;/a&gt;.
-What does &amp;quot;sunsetting&amp;quot; mean? In summary:&lt;/p&gt;
-
-&lt;ul&gt;
-&lt;li&gt;No more work will be done on the file-transfer plugin by the Cordova development
-community.&lt;/li&gt;
-&lt;li&gt;You can continue to use the file-transfer plugin if you wish - it should work
-fine as-is for the foreseeable future.&lt;/li&gt;
-&lt;li&gt;We highly suggest Cordova users transition to using the
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data&quot;&gt;standards-compliant way of sending and receiving binary data&lt;/a&gt;.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;All of us at Apache Cordova don&amp;#39;t want to leave y&amp;#39;all hanging, though, so we
-thought it&amp;#39;d be a good idea to show you how to use these newer XHR features to do
-what file-transfer lets you do, but in a way that will work in any modern web
-browser to boot!&lt;/p&gt;
-
-&lt;h2&gt;Requirements&lt;/h2&gt;
-
-&lt;p&gt;Based on how deeply you interact with the underlying device filesystem, and on
-which platforms, you may still need to rely on the
-&lt;a href=&quot;https://github.com/apache/cordova-plugin-file&quot;&gt;Cordova File plugin&lt;/a&gt;. If you
-still have references to &lt;code&gt;requestFileSystem&lt;/code&gt; or &lt;code&gt;root.fs&lt;/code&gt; in your application&amp;#39;s
-JavaScript, you will definitely need the File plugin because these are not
-standards-compliant APIs. Take note and care!&lt;/p&gt;
-
-&lt;h2&gt;Platform Support&lt;/h2&gt;
-
-&lt;p&gt;Binary types in JavaScript, as well as the extended XHR features, are available
-on the following Cordova-supported platforms without requiring any additional
-plugins:&lt;/p&gt;
-
-&lt;ul&gt;
-&lt;li&gt;Android 4.4 or newer.&lt;/li&gt;
-&lt;li&gt;iOS 10 or newer.&lt;/li&gt;
-&lt;li&gt;Windows UWP (8.1, 10 or newer all work).&lt;/li&gt;
-&lt;li&gt;Windows Phone 8 or newer.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;As always, check &lt;a href=&quot;https://caniuse.com&quot;&gt;caniuse.com&lt;/a&gt; for detailed support for the
-required bits, like &lt;a href=&quot;http://caniuse.com/#feat=blobbuilder&quot;&gt;&lt;code&gt;Blob&lt;/code&gt;&lt;/a&gt;,
-&lt;a href=&quot;http://caniuse.com/#feat=typedarrays&quot;&gt;Typed Arrays&lt;/a&gt;, and
-&lt;a href=&quot;http://caniuse.com/#feat=xhr2&quot;&gt;extended XHR features&lt;/a&gt;.&lt;/p&gt;
-
-&lt;h2&gt;TL;DR&lt;/h2&gt;
-
-&lt;p&gt;Standards are great and all, but what do you actually have to copy-paste to replace
-the previous FileTransfer examples? We have you covered:&lt;/p&gt;
-
-&lt;p&gt;Here&amp;#39;s a replacement for
-&lt;a href=&quot;https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/index.html#download-a-binary-file-to-the-application-cache&quot;&gt;FileTransfer&amp;#39;s &amp;quot;Download a Binary File&amp;quot; example&lt;/a&gt;:&lt;/p&gt;
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;requestFileSystem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;LocalFileSystem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;PERSISTENT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;fs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-    &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;file system open: &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;fs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-    &lt;span class=&quot;nx&quot;&gt;fs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getFile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;bot.png&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;exclusive&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;fileEntry&lt;/s
 pan&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-        &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;fileEntry is file? &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;fileEntry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;isFile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;());&lt;/span&gt;
-        &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;XMLHttpRequest&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
-        &lt;span class=&quot;c1&quot;&gt;// Make sure you add the domain name to the Content-Security-Policy &amp;lt;meta&amp;gt; element.&lt;/span&gt;
-        &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;GET&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://cordova.apache.org/static/img/cordova_bot.png&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-        &lt;span class=&quot;c1&quot;&gt;// Define how you want the XHR data to come back&lt;/span&gt;
-        &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;responseType&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;blob&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
-        &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;onload&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;oEvent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-            &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;blob&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Note: not oReq.responseText&lt;/span&gt;
-            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;blob&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-                &lt;span class=&quot;c1&quot;&gt;// Create a URL based on the blob, and set an &amp;lt;img&amp;gt; tag&#39;s src to it.&lt;/span&gt;
-                &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;createObjectURL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;blob&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-                &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;bot-img&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;src&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
-                &lt;span class=&quot;c1&quot;&gt;// Or read the data with a FileReader&lt;/span&gt;
-                &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;reader&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;FileReader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
-                &lt;span class=&quot;nx&quot;&gt;reader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;loadend&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-                   &lt;span class=&quot;c1&quot;&gt;// reader.result contains the contents of blob as text&lt;/span&gt;
-                &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-                &lt;span class=&quot;nx&quot;&gt;reader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;readAsText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;blob&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;we didnt get an XHR response!&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-        &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
-        &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;error getting file! &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;error getting persistent fs! &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;Here&amp;#39;s a similar replacement for
-&lt;a href=&quot;https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/index.html#uploadFile&quot;&gt;FileTransfer&amp;#39;s &amp;quot;Upload a File&amp;quot; example&lt;/a&gt;:&lt;/p&gt;
-&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&lt;span class=&quot;nb&quot;&gt;window&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;requestFileSystem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;LocalFileSystem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;PERSISTENT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;fs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-    &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;file system open: &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;fs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-    &lt;span class=&quot;nx&quot;&gt;fs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getFile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;bot.png&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;exclusive&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;fileEntry&lt;/s
 pan&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-        &lt;span class=&quot;nx&quot;&gt;fileEntry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-            &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;reader&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;FileReader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
-            &lt;span class=&quot;nx&quot;&gt;reader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;onloadend&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-                &lt;span class=&quot;c1&quot;&gt;// Create a blob based on the FileReader &quot;result&quot;, which we asked to be retrieved as an ArrayBuffer&lt;/span&gt;
-                &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;blob&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Blob&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;Uint8Array&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)],&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;image/png&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-                &lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;XMLHttpRequest&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
-                &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://mysweeturl.com/upload_handler&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-                &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;onload&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;oEvent&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
-                    &lt;span class=&quot;c1&quot;&gt;// all done!&lt;/span&gt;
-                &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
-                &lt;span class=&quot;c1&quot;&gt;// Pass the blob in to XHR&#39;s send method&lt;/span&gt;
-                &lt;span class=&quot;nx&quot;&gt;oReq&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;blob&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-            &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
-            &lt;span class=&quot;c1&quot;&gt;// Read the file as an ArrayBuffer&lt;/span&gt;
-            &lt;span class=&quot;nx&quot;&gt;reader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;readAsArrayBuffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
-        &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;error getting fileentry file!&#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;error getting file! &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;error getting persistent fs! &#39;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
-&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;Note that both the above examples rely on the File plugin, so if you remove the
-FileTransfer plugin from your app, make sure to add the File plugin!&lt;/p&gt;
-
-&lt;h2&gt;The Long Version&lt;/h2&gt;
-
-&lt;p&gt;If you want to understand some of the nuts and bolts enabling binary data transferring,
-you&amp;#39;ll need to grasp two (possibly three) concepts. MDN has an absolutely fantastic
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data&quot;&gt;article&lt;/a&gt;
-on the topic that is worth a quick read, but I&amp;#39;ll provide a summary here, too.&lt;/p&gt;
-
-&lt;h3&gt;Binary Types in JavaScript&lt;/h3&gt;
-
-&lt;p&gt;For the longest time, there was no way to directly represent binary data and
-access the underlying bytes in memory within JavaScript. We could encode this data
-in different formats (&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding&quot;&gt;base64&lt;/a&gt;,
-anyone?), and that was cool, but just let me play with the bytes already. For
-our purposes, we are interested in two objects in particular:
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays&quot;&gt;ArrayBuffer&lt;/a&gt;
-and &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Blob&quot;&gt;Blob&lt;/a&gt;.
-Why do we care about these two? Because we can have XHRs return downloaded data
-as these types, or pass these types directly to XHRs&amp;#39; &lt;code&gt;send&lt;/code&gt; method.&lt;/p&gt;
-
-&lt;h3&gt;XHR&lt;/h3&gt;
-
-&lt;p&gt;There are two newer XHR features, originally as part of what was referred to as
-&amp;quot;XHR2&amp;quot; during its &lt;a href=&quot;https://www.w3.org/TR/XMLHttpRequest2/&quot;&gt;development&lt;/a&gt;, that we
-need to leverage to tie this all together.&lt;/p&gt;
-
-&lt;p&gt;For downloading binary data, we need to set the
-&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType&quot;&gt;&lt;code&gt;responseType&lt;/code&gt;&lt;/a&gt;
-property to either &lt;code&gt;arraybuffer&lt;/code&gt; or &lt;code&gt;blob&lt;/code&gt; - this tells XHR what type we want
-the data we are retrieving back in. With &lt;code&gt;responseType&lt;/code&gt; set, we can then access
-the read-only &lt;code&gt;response&lt;/code&gt; property to get either the &lt;code&gt;ArrayBuffer&lt;/code&gt; or &lt;code&gt;Blob&lt;/code&gt;
-object representing the data retrieved by XHR.&lt;/p&gt;
-
-&lt;p&gt;For uploading binary data, it is simpler: pass a &lt;code&gt;Blob&lt;/code&gt; or &lt;code&gt;ArrayBuffer&lt;/code&gt; directly
-to XHR&amp;#39;s &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Sending_binary_data&quot;&gt;&lt;code&gt;send&lt;/code&gt;&lt;/a&gt;
-method. That&amp;#39;s it.&lt;/p&gt;
-
-&lt;h2&gt;Summary&lt;/h2&gt;
-
-&lt;p&gt;Binary types and extended XHR features are well supported in modern desktop
-browsers, and on recent-ish mobile browsers (and WebViews). For existing Cordova
-users, as long as your app targets the platform and OS version combinations listed
-above under Platform Support, you should be good to go! Remember that if you rely
-on certain File plugin APIs like &lt;code&gt;requestFileSystem&lt;/code&gt;, &lt;code&gt;root&lt;/code&gt;, or &lt;code&gt;getFile&lt;/code&gt;,
-you&amp;#39;ll need to ensure the File plugin is added to your app.&lt;/p&gt;
-
-&lt;p&gt;Happy standards-compliant coding!&lt;/p&gt;
-</description>
-        <pubDate>Wed, 18 Oct 2017 00:00:00 +0000</pubDate>
-        <link>https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html</link>
-        <guid isPermaLink="true">https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html</guid>
-        
-        <category>plugins</category>
-        
-        
-        <category>blog</category>
-        
-      </item>
-    
   </channel>
 </rss>

Added: cordova/site/public/news/2017/12/18/tools-release.html
URL: http://svn.apache.org/viewvc/cordova/site/public/news/2017/12/18/tools-release.html?rev=1818709&view=auto
==============================================================================
--- cordova/site/public/news/2017/12/18/tools-release.html (added)
+++ cordova/site/public/news/2017/12/18/tools-release.html Tue Dec 19 19:55:40 2017
@@ -0,0 +1,345 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <meta name="format-detection" content="telephone=no">
+    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
+    <meta name="description" content="We just released an update to our tools!cordova@8.0.0cordova-lib@8.0.0cordova-plugman@2.0.0cordova-fetch@1.3.0cordova-common@2.2.1cordova-create@1.1.2Release...">
+
+    <title>
+        
+            
+                Tools Released! - Apache Cordova
+            
+        
+    </title>
+
+    <link rel="SHORTCUT ICON" href="/favicon.ico"/>
+
+    
+
+    
+    
+
+    <link rel="canonical" href="https://cordova.apache.org/news/2017/12/18/tools-release.html">
+
+    <!-- CSS -->
+    <link rel="stylesheet" type="text/css" href="/static/css/main.css">
+    <link rel="stylesheet" type="text/css" href="/static/css/lib/syntax.css">
+    <!-- Algolia Search CSS -->
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css" />
+
+    <!-- Fonts -->
+    <!-- For attribution information, see www/attributions.html -->
+    <link href='https://fonts.googleapis.com/css?family=Raleway:700,400,300,700italic,400italic,300italic' rel='stylesheet' type='text/css'>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+    <!--[if lt IE 9]>
+        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+    <script type="text/javascript">
+        var disqus_developer = 1; // this would set it to developer mode
+    </script>
+
+    <!-- JS -->
+    <script defer type="text/javascript" src="/static/js/lib/jquery-2.1.1.min.js"></script>
+    <script defer type="text/javascript" src="/static/js/lib/bootstrap.min.js"></script>
+    <script defer type="text/javascript" src="/static/js/lib/ZeroClipboard.js"></script>
+
+    <script>
+    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+    ga('create', 'UA-64283057-3', 'auto');
+    ga('send', 'pageview');
+</script>
+
+</head>
+
+<body>
+    <header>
+    <a class="scroll-point pt-top" name="top"></a>
+    <nav class="navbar navbar-inverse navbar-fixed-top">
+        <div class="container-fluid">
+            <div class="navbar-header">
+                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+                    <span class="sr-only">Toggle navigation</span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                    <span class="icon-bar"></span>
+                </button>
+                <a class="navbar-brand" href="/"><img id="logo_top" src="/static/img/cordova-logo-newbrand.svg"/></a>
+            </div>
+            <div id="navbar" class="navbar-collapse collapse">
+                <div class="nav_bar_center">
+                    <ul class="nav navbar-nav">
+                        <li >
+                            <a href="/docs/en/latest/">Documentation</a>
+                        </li>
+                        <li >
+                            <a href="/plugins">Plugins</a>
+                        </li>
+                        <li class="active">
+                            <a href="/blog" id="blog_button">Blog<span class="badge" id="new_blog_count"></span></a>
+                        </li>
+                        <li >
+                            <a href="/contribute">Contribute</a>
+                        </li>
+                        <li>
+                            <a href="/#getstarted">Get Started</a>
+                        </li>
+                        <li>
+                            <form class="navbar-form navbar-right" id="header-search-form" role="search">
+                                <div class="input-group">
+                                    
+                                        
+                                    
+                                    <input id="header-search-field" type="text" placeholder="Search '7.x' docs..." class="form-control hidden-xs" autocomplete="off">
+                                </div>
+                            </form>
+                        </li>
+                    </ul>
+                </div>
+            </div><!--/.navbar-collapse -->
+        </div>
+    </nav>
+    <div id="_fixed_navbar_spacer" style="padding-top:50px"></div>
+</header>
+
+<div class="page container">
+    <div class="blog">
+    <h1 class="blogHeader">
+    Blog
+    <span class="rss">
+        <img src="/static/img/subscribe.png"><a href="/feed.xml">RSS Feed</a>
+    </span>
+</h1>
+
+<div class="post">
+    <header>
+        <div class="title">Tools Released!</div>
+        <div class="author">By:
+            
+              <a href="https://twitter.com/stevesgill">Steve Gill</a>
+            
+        </div>
+        <div class="date">18 Dec 2017</div>
+    </header>
+    <section>
+        <div>
+            <p>We just released an update to our tools!</p>
+
+<ul>
+<li><a href="https://www.npmjs.org/package/cordova">cordova@8.0.0</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-lib">cordova-lib@8.0.0</a></li>
+<li><a href="https://www.npmjs.org/package/plugman">cordova-plugman@2.0.0</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-fetch">cordova-fetch@1.3.0</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-common">cordova-common@2.2.1</a></li>
+<li><a href="https://www.npmjs.org/package/cordova-create">cordova-create@1.1.2</a></li>
+</ul>
+
+<h2>Release Highlights</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13056">CB-13056</a>: removed support for <strong>WebOS</strong>, <strong>BlackBerry10</strong>, and <strong>Ubuntu</strong></li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13057">CB-13057</a>: removed <code>cordova save</code> command. This command isn&#39;t needed as cordova auto saves dependencies.</li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13055">CB-13055</a>: removed <code>--nofetch</code> flag. Now all of our dependency fetching happens via <code>cordova-fetch</code>. This allowed us to drop the <code>npm@2</code> dependency we were shipping with cordova. Instead, we now just use your system <code>npm</code> to do all of our fetching. </li>
+</ul>
+
+<p>To update your cordova CLI:</p>
+<div class="highlight"><pre><code class="language-" data-lang="">npm install -g cordova@latest
+</code></pre></div>
+<p>Please report any issues you find at <a href="http://issues.cordova.io/">issues.cordova.io</a>!</p>
+
+<!--more-->
+
+<h1>Changes include:</h1>
+
+<h2>cordova-lib</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13057">CB-13057</a>: removed <code>cordova save</code> command</li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13056">CB-13056</a>: removed support for <strong>WebOS</strong>, <strong>BlackBerry10</strong>, and <strong>Ubuntu</strong></li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13674">CB-13674</a>: updated cordova dependencies</li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13055">CB-13055</a>: updated integration tests, removed <code>lazy_load.js</code>, removed <code>gitclone.js</code> and <code>--nofetch</code> flag. This removes the need for us to include an npm dependency.</li>
+<li><a href="https://issues.apache.org/jira/browse/CB-13463">CB-13463</a>: prevent <code>package.json</code> updating plugins with <code>--nosave</code></li>
+</ul>
+
+<h2>cordova-cli</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13055">CB-13055</a>: removed <code>--nofetch</code> flag</li>
+<li>Use native Promises instead of <code>Q</code></li>
+<li><a href="https://issues.apache.org/jira/browse/CB-12853">CB-12853</a>: re-check version before notifying.</li>
+</ul>
+
+<h2>cordova-plugman</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13674">CB-13674</a>: updated <code>cordova-lib</code> dependency to <code>8.0.0</code></li>
+<li><a href="https://issues.apache.org/jira/browse/CB-12762">CB-12762</a>: pointed <code>package.json</code> repo items to github mirrors instead of apache repos site (#89)</li>
+</ul>
+
+<h2>cordova-fetch</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13055">CB-13055</a>: added workaround for when <code>jsonDiff</code> has more than one different key. </li>
+<li>Support git shortlink package references</li>
+</ul>
+
+<h2>cordova-common</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-13674">CB-13674</a>: updated dependencies</li>
+</ul>
+
+<h2>cordova-create</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/CB-12807">CB-12807</a>: updated error message to follow the template guide</li>
+</ul>
+
+        </div>
+    </section>
+    <footer>
+        <div class="row">
+            <div class="col-sm-6">
+                
+                    <a href="/announcements/2017/12/04/cordova-android-7.0.0.html">Previous</a>
+                    <br>
+                    <br>
+                    <a class="title" href="/announcements/2017/12/04/cordova-android-7.0.0.html">Cordova Android 7.0.0 Released!</a>
+                    <div class="date"> 04 Dec 2017 - By Joe Bowser </div>
+                    <p class="content">
+                        We are happy to announce that Cordova Android 7.0.0 has been released!...
+                    </p>
+                
+            </div>
+            <div class="col-sm-6">
+                
+            </div>
+        </div>
+    </footer>
+    <div class="disqus">
+        <div id="disqus_thread"></div>
+<script type="text/javascript">
+    /* * * CONFIGURATION VARIABLES * * */
+    var disqus_shortname = 'cordovablogs';
+
+    /* * * DON'T EDIT BELOW THIS LINE * * */
+    (function() {
+        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+        dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+    })();
+</script>
+<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
+
+    </div>
+</div>
+
+</div>
+
+</div>
+
+<div class="blue-divider"></div>
+<footer>
+    <div class="container">
+        <div class="row">
+    <div class="col-sm-9">
+        <h1>More Resources</h1>
+        <div class="row">
+            <div class="col-sm-4">
+                <h2>General</h2>
+                <ul class="nav">
+                    <li>
+                        <a target="_blank" href="https://projects.apache.org/project.html?cordova">Apache Project Page</a>
+                    </li>
+                    <li>
+                        <a href="http://www.apache.org/dyn/closer.cgi/cordova">Source Distribution</a>
+                    </li>
+                    <li>
+                        <a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0">License</a>
+                    </li>
+                    <li>
+                        <a href="/artwork">Artwork</a>
+                    </li>
+                </ul>
+            </div>
+            <div class="col-sm-4">
+                <h2>Development</h2>
+                <ul class="nav">
+                    <li><a target="_blank" href="https://github.com/apache?utf8=%E2%9C%93&amp;q=cordova-">Source Code</a></li>
+                    <li><a target="_blank" href="https://issues.apache.org/jira/browse/CB/">Issue Tracker</a></li>
+                    <li><a target="_blank" href="http://stackoverflow.com/questions/tagged/cordova">Stack Overflow</a></li>
+                    <li><a href="/contact">Mailing List</a></li>
+                    <li><a href="/contribute/nightly_builds.html">Nightly builds</a></li>
+                </ul>
+            </div>
+            <div class="col-sm-4">
+                <h2>Apache Software Foundation</h2>
+                <ul class="nav">
+                    <li>
+                        <a target="_blank" href="http://www.apache.org/">About ASF</a>
+                    </li>
+                    <li>
+                        <a target="_blank" href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a>
+                    </li>
+                    <li>
+                        <a target="_blank" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+                    </li>
+                    <li>
+                        <a target="_blank" href="http://www.apache.org/security/">Security</a>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm-3">
+        <h1>Contribute</h1>
+        <p style="padding-top:20px"><strong>Help Cordova move forward!</strong></p>
+        <p>Report bugs, improve the docs, or contribute to the code.</p>
+        <a href="/contribute" class="btn btn-lg btn-primary">
+            Learn More
+        </a>
+        <p style="padding-top:20px"> <a href="https://twitter.com/apachecordova" class="twitter-follow-button" data-show-count="false">Follow @apachecordova</a></p>
+        <script async defer src="https://slack-cordova-io.herokuapp.com/slackin.js"></script>
+    </div>
+</div>
+<p class="copyright_text">
+    Copyright &copy; 2012, 2013, 2015 The Apache Software Foundation, Licensed under the <a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
+    Apache and the Apache feather logos are <a target="_blank" href="http://www.apache.org/foundation/marks/list/">trademarks</a> of The Apache Software Foundation.
+    <br/>
+    "Raleway" font used under license. For details see the <a href="/attributions/">attributions page</a>.
+</p>
+
+    </div>
+</footer>
+
+
+    <script defer type="text/javascript" src="/static/js/index.js"></script>
+    <script defer type="text/javascript" src="/static/js/twitter.js"></script>
+    
+    
+
+
+
+    
+
+
+<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script>
+<script type="text/javascript">
+    docsearch({
+        apiKey: '0a916ab198bd93d031aa70611271e42e',
+        indexName: 'cordova',
+        inputSelector: '#header-search-field',
+        algoliaOptions: { 'facetFilters': ["version:  7.x", "language: en"] }
+    });
+</script>
+
+</body>
+</html>

Modified: cordova/site/public/sitemap.xml
URL: http://svn.apache.org/viewvc/cordova/site/public/sitemap.xml?rev=1818709&r1=1818708&r2=1818709&view=diff
==============================================================================
--- cordova/site/public/sitemap.xml (original)
+++ cordova/site/public/sitemap.xml Tue Dec 19 19:55:40 2017
@@ -4,6 +4,11 @@
 <!-- posts -->
 
 <url>
+    <loc>https://cordova.apache.org/news/2017/12/18/tools-release.html</loc>
+</url>
+
+
+<url>
     <loc>https://cordova.apache.org/announcements/2017/12/04/cordova-android-7.0.0.html</loc>
 </url>
 

Modified: cordova/site/public/static/js/index.js
URL: http://svn.apache.org/viewvc/cordova/site/public/static/js/index.js?rev=1818709&r1=1818708&r2=1818709&view=diff
==============================================================================
--- cordova/site/public/static/js/index.js (original)
+++ cordova/site/public/static/js/index.js Tue Dec 19 19:55:40 2017
@@ -77,6 +77,7 @@ function checkNotification() {
     var dates = [];
     if (lastVisit != "") {
         
+        dates.push('Mon, 18 Dec 2017 00:00:00 +0000');
         dates.push('Mon, 04 Dec 2017 00:00:00 +0000');
         dates.push('Mon, 27 Nov 2017 00:00:00 +0000');
         dates.push('Tue, 21 Nov 2017 00:00:00 +0000');



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org