Bug 1298968 - Add comment explaining why TOPSITES is handled outside of switch r?sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Tue, 06 Sep 2016 10:06:58 -0700
changeset 410345 56237533ee6dc8b335769e6aca74a3dce6b76954
parent 410344 37c9349b4e8167a61b08b7e119c21ea177b98942
child 530566 bba4085cdf21750a4657c0ecba6390467b5f27fa
push id28722
push userahunt@mozilla.com
push dateTue, 06 Sep 2016 17:09:35 +0000
reviewerssebastian
bugs1298968
milestone51.0a1
Bug 1298968 - Add comment explaining why TOPSITES is handled outside of switch r?sebastian MozReview-Commit-ID: BFvz2qTm4vL
mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
@@ -1206,16 +1206,20 @@ public class BrowserProvider extends Sha
         return db.rawQuery(query, null);
     }
 
     @Override
     public Cursor query(Uri uri, String[] projection, String selection,
             String[] selectionArgs, String sortOrder) {
         final int match = URI_MATCHER.match(uri);
 
+        // Handle only queries requiring a writable DB connection here: most queries need only a readable
+        // connection, hence we can get a readable DB once, and then handle most queries within a switch.
+        // TopSites requires a writable connection (because of the temporary tables it uses), hence
+        // we handle that separately, i.e. before retrieving a readable connection.
         if (match == TOPSITES) {
             if (uri.getBooleanQueryParameter(BrowserContract.PARAM_TOPSITES_DISABLE_PINNED, false)) {
                 return getPlainTopSites(uri);
             } else {
                 return getTopSites(uri);
             }
         }