author | Wes Kocher <wkocher@mozilla.com> |
Tue, 07 Feb 2017 14:46:18 -0800 | |
changeset 341300 | 4f8438e85c6570fca29038044f8f602853029d3f |
parent 341299 | 81bd515bd9d9ced06f98ca7fdaf761713618cc81 |
child 341301 | 6b96621c61513ae5e929a6b21ebd0b7dd1b76d3f |
push id | 86684 |
push user | cbook@mozilla.com |
push date | Wed, 08 Feb 2017 10:31:03 +0000 |
treeherder | mozilla-inbound@c5b88e4e70f4 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | backout |
bugs | 1252960 |
milestone | 54.0a1 |
backs out | 7038e10280b2905704687ea6d74020c6c437e114 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserDatabaseHelper.java +++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserDatabaseHelper.java @@ -2073,17 +2073,17 @@ public final class BrowserDatabaseHelper case 25: upgradeDatabaseFrom24to25(db); break; case 26: upgradeDatabaseFrom25to26(db); break; - // case 27 occurs in URLImageDataTable.onUpgrade + // case 27 occurs in UrlMetadataTable.onUpgrade case 28: upgradeDatabaseFrom27to28(db); break; case 29: upgradeDatabaseFrom28to29(db); break;
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java +++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java @@ -159,18 +159,18 @@ public class BrowserProvider extends Sha static final Map<String, String> THUMBNAILS_PROJECTION_MAP; static final Map<String, String> URL_ANNOTATIONS_PROJECTION_MAP; static final Map<String, String> VISIT_PROJECTION_MAP; static final Map<String, String> PAGE_METADATA_PROJECTION_MAP; static final Table[] sTables; static { sTables = new Table[] { - // See awful shortcut assumption hack in getURLImageDataTable. - new URLImageDataTable() + // See awful shortcut assumption hack in getURLMetadataTable. + new URLMetadataTable() }; // We will reuse this. HashMap<String, String> map; // Bookmarks URI_MATCHER.addURI(BrowserContract.AUTHORITY, "bookmarks", BOOKMARKS); URI_MATCHER.addURI(BrowserContract.AUTHORITY, "bookmarks/#", BOOKMARKS_ID); URI_MATCHER.addURI(BrowserContract.AUTHORITY, "bookmarks/parents", BOOKMARKS_PARENT); @@ -365,18 +365,18 @@ public class BrowserProvider extends Sha public void shutdown() { LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mShrinkMemoryReceiver); super.shutdown(); } // Convenience accessor. // Assumes structure of sTables! - private URLImageDataTable getURLImageDataTable() { - return (URLImageDataTable) sTables[0]; + private URLMetadataTable getURLMetadataTable() { + return (URLMetadataTable) sTables[0]; } private static boolean hasFaviconsInProjection(String[] projection) { if (projection == null) return true; for (int i = 0; i < projection.length; ++i) { if (projection[i].equals(FaviconColumns.FAVICON) || projection[i].equals(FaviconColumns.FAVICON_URL)) return true; @@ -2199,17 +2199,17 @@ public class BrowserProvider extends Sha + " AND " + History.URL + " IS NOT NULL" + " UNION ALL SELECT " + Bookmarks.URL + " FROM " + TABLE_BOOKMARKS + " WHERE " + Bookmarks.IS_DELETED + " = 0" + " AND " + Bookmarks.URL + " IS NOT NULL)"; return deleteFavicons(uri, faviconSelection, null) + deleteThumbnails(uri, thumbnailSelection, null) + - getURLImageDataTable().deleteUnused(getWritableDatabase(uri)); + getURLMetadataTable().deleteUnused(getWritableDatabase(uri)); } @Override public ContentProviderResult[] applyBatch (ArrayList<ContentProviderOperation> operations) throws OperationApplicationException { final int numOperations = operations.size(); final ContentProviderResult[] results = new ContentProviderResult[numOperations];
--- a/mobile/android/base/java/org/mozilla/gecko/db/LocalURLMetadata.java +++ b/mobile/android/base/java/org/mozilla/gecko/db/LocalURLMetadata.java @@ -29,27 +29,27 @@ import android.util.Log; import android.util.LruCache; // Holds metadata info about URLs. Supports some helper functions for getting back a HashMap of key value data. public class LocalURLMetadata implements URLMetadata { private static final String LOGTAG = "GeckoURLMetadata"; private final Uri uriWithProfile; public LocalURLMetadata(String mProfile) { - uriWithProfile = DBUtils.appendProfileWithDefault(mProfile, URLImageDataTable.CONTENT_URI); + uriWithProfile = DBUtils.appendProfileWithDefault(mProfile, URLMetadataTable.CONTENT_URI); } // A list of columns in the table. It's used to simplify some loops for reading/writing data. private static final Set<String> COLUMNS; static { final HashSet<String> tempModel = new HashSet<>(4); - tempModel.add(URLImageDataTable.URL_COLUMN); - tempModel.add(URLImageDataTable.TILE_IMAGE_URL_COLUMN); - tempModel.add(URLImageDataTable.TILE_COLOR_COLUMN); - tempModel.add(URLImageDataTable.TOUCH_ICON_COLUMN); + tempModel.add(URLMetadataTable.URL_COLUMN); + tempModel.add(URLMetadataTable.TILE_IMAGE_URL_COLUMN); + tempModel.add(URLMetadataTable.TILE_COLOR_COLUMN); + tempModel.add(URLMetadataTable.TOUCH_ICON_COLUMN); COLUMNS = Collections.unmodifiableSet(tempModel); } // Store a cache of recent results. This number is chosen to match the max number of tiles on about:home private static final int CACHE_SIZE = 9; // Note: Members of this cache are unmodifiable. private final LruCache<String, Map<String, Object>> cache = new LruCache<String, Map<String, Object>>(CACHE_SIZE); @@ -83,17 +83,17 @@ public class LocalURLMetadata implements ArrayList<Integer> sizes = new ArrayList<Integer>(icons.length()); while (keys.hasNext()) { sizes.add(new Integer(keys.next())); } final int bestSize = LoadFaviconResult.selectBestSizeFromList(sizes, preferredSize); final String iconURL = icons.getString(Integer.toString(bestSize)); - data.put(URLImageDataTable.TOUCH_ICON_COLUMN, iconURL); + data.put(URLMetadataTable.TOUCH_ICON_COLUMN, iconURL); } } catch (JSONException e) { Log.w(LOGTAG, "Exception processing touchIconList for LocalURLMetadata; ignoring.", e); } return Collections.unmodifiableMap(data); } @@ -164,39 +164,39 @@ public class LocalURLMetadata implements } } // If everything was in the cache, we're done! if (urlsToQuery.size() == 0) { return Collections.unmodifiableMap(data); } - final String selection = DBUtils.computeSQLInClause(urlsToQuery.size(), URLImageDataTable.URL_COLUMN); + final String selection = DBUtils.computeSQLInClause(urlsToQuery.size(), URLMetadataTable.URL_COLUMN); List<String> columns = requestedColumns; // We need the url to build our final HashMap, so we force it to be included in the query. - if (!columns.contains(URLImageDataTable.URL_COLUMN)) { + if (!columns.contains(URLMetadataTable.URL_COLUMN)) { // The requestedColumns may be immutable (e.g. if the caller used Collections.singletonList), hence // we have to create a copy. columns = new ArrayList<String>(columns); - columns.add(URLImageDataTable.URL_COLUMN); + columns.add(URLMetadataTable.URL_COLUMN); } final Cursor cursor = cr.query(uriWithProfile, columns.toArray(new String[columns.size()]), // columns, selection, // selection urlsToQuery.toArray(new String[urlsToQuery.size()]), // selectionargs null); try { if (!cursor.moveToFirst()) { return Collections.unmodifiableMap(data); } do { final Map<String, Object> metadata = fromCursor(cursor); - final String url = cursor.getString(cursor.getColumnIndexOrThrow(URLImageDataTable.URL_COLUMN)); + final String url = cursor.getString(cursor.getColumnIndexOrThrow(URLMetadataTable.URL_COLUMN)); data.put(url, metadata); cache.put(url, metadata); } while (cursor.moveToNext()); } finally { cursor.close(); } @@ -225,16 +225,16 @@ public class LocalURLMetadata implements if (values.size() == 0) { return; } Uri uri = uriWithProfile.buildUpon() .appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true") .build(); - cr.update(uri, values, URLImageDataTable.URL_COLUMN + "=?", new String[] { - (String) data.get(URLImageDataTable.URL_COLUMN) + cr.update(uri, values, URLMetadataTable.URL_COLUMN + "=?", new String[] { + (String) data.get(URLMetadataTable.URL_COLUMN) }); } catch (Exception ex) { Log.e(LOGTAG, "error saving", ex); } } }
rename from mobile/android/base/java/org/mozilla/gecko/db/URLImageDataTable.java rename to mobile/android/base/java/org/mozilla/gecko/db/URLMetadataTable.java --- a/mobile/android/base/java/org/mozilla/gecko/db/URLImageDataTable.java +++ b/mobile/android/base/java/org/mozilla/gecko/db/URLMetadataTable.java @@ -8,33 +8,33 @@ package org.mozilla.gecko.db; import org.mozilla.gecko.db.BrowserContract.Bookmarks; import org.mozilla.gecko.db.BrowserContract.History; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; // Holds metadata info about urls. Supports some helper functions for getting back a HashMap of key value data. -public class URLImageDataTable extends BaseTable { - private static final String LOGTAG = "GeckoURLImageDataTable"; +public class URLMetadataTable extends BaseTable { + private static final String LOGTAG = "GeckoURLMetadataTable"; private static final String TABLE = "metadata"; // Name of the table in the db private static final int TABLE_ID_NUMBER = BrowserProvider.METADATA; // Uri for querying this table public static final Uri CONTENT_URI = Uri.withAppendedPath(BrowserContract.AUTHORITY_URI, "metadata"); // Columns in the table public static final String ID_COLUMN = "id"; public static final String URL_COLUMN = "url"; public static final String TILE_IMAGE_URL_COLUMN = "tileImage"; public static final String TILE_COLOR_COLUMN = "tileColor"; public static final String TOUCH_ICON_COLUMN = "touchIcon"; - URLImageDataTable() { } + URLMetadataTable() { } @Override protected String getTable() { return TABLE; } @Override public void onCreate(SQLiteDatabase db) {
--- a/mobile/android/base/java/org/mozilla/gecko/home/TopSitesPanel.java +++ b/mobile/android/base/java/org/mozilla/gecko/home/TopSitesPanel.java @@ -1,17 +1,17 @@ /* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.gecko.home; -import static org.mozilla.gecko.db.URLImageDataTable.TILE_COLOR_COLUMN; -import static org.mozilla.gecko.db.URLImageDataTable.TILE_IMAGE_URL_COLUMN; +import static org.mozilla.gecko.db.URLMetadataTable.TILE_COLOR_COLUMN; +import static org.mozilla.gecko.db.URLMetadataTable.TILE_IMAGE_URL_COLUMN; import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Future;
--- a/mobile/android/base/moz.build +++ b/mobile/android/base/moz.build @@ -377,18 +377,18 @@ gbjar.sources += ['java/org/mozilla/geck 'db/SearchHistoryProvider.java', 'db/SharedBrowserDatabaseProvider.java', 'db/SQLiteBridgeContentProvider.java', 'db/SuggestedSites.java', 'db/Table.java', 'db/TabsAccessor.java', 'db/TabsProvider.java', 'db/UrlAnnotations.java', - 'db/URLImageDataTable.java', 'db/URLMetadata.java', + 'db/URLMetadataTable.java', 'delegates/BookmarkStateChangeDelegate.java', 'delegates/BrowserAppDelegate.java', 'delegates/BrowserAppDelegateWithReference.java', 'delegates/OfflineTabStatusDelegate.java', 'delegates/ScreenshotDelegate.java', 'delegates/TabsTrayVisibilityAwareDelegate.java', 'DevToolsAuthHelper.java', 'distribution/Distribution.java',
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testBrowserProvider.java +++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testBrowserProvider.java @@ -11,17 +11,17 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import org.mozilla.gecko.db.BrowserContract; import org.mozilla.gecko.db.BrowserContract.UrlAnnotations.SyncStatus; import org.mozilla.gecko.db.BrowserDB; import org.mozilla.gecko.db.URLMetadata; -import org.mozilla.gecko.db.URLImageDataTable; +import org.mozilla.gecko.db.URLMetadataTable; import android.content.ContentProviderOperation; import android.content.ContentProviderResult; import android.content.ContentUris; import android.content.ContentValues; import android.content.OperationApplicationException; import android.database.Cursor; import android.net.Uri; @@ -193,20 +193,20 @@ public class testBrowserProvider extends thumbnailEntry.put(BrowserContract.Thumbnails.DATA, data.getBytes("UTF8")); return thumbnailEntry; } private ContentValues createUrlMetadataEntry(final String url, final String tileImage, final String tileColor, final String touchIcon) { final ContentValues values = new ContentValues(); - values.put(URLImageDataTable.URL_COLUMN, url); - values.put(URLImageDataTable.TILE_IMAGE_URL_COLUMN, tileImage); - values.put(URLImageDataTable.TILE_COLOR_COLUMN, tileColor); - values.put(URLImageDataTable.TOUCH_ICON_COLUMN, touchIcon); + values.put(URLMetadataTable.URL_COLUMN, url); + values.put(URLMetadataTable.TILE_IMAGE_URL_COLUMN, tileImage); + values.put(URLMetadataTable.TILE_COLOR_COLUMN, tileColor); + values.put(URLMetadataTable.TOUCH_ICON_COLUMN, touchIcon); return values; } private ContentValues createUrlAnnotationEntry(final String url, final String key, final String value, final long dateCreated) { final ContentValues values = new ContentValues(); values.put(BrowserContract.UrlAnnotations.URL, url); values.put(BrowserContract.UrlAnnotations.KEY, key); @@ -256,18 +256,18 @@ public class testBrowserProvider extends private Cursor getUrlAnnotationByUrl(final String url) throws Exception { return mProvider.query(BrowserContract.UrlAnnotations.CONTENT_URI, null, BrowserContract.UrlAnnotations.URL + " = ?", new String[] { url }, null); } private Cursor getUrlMetadataByUrl(final String url) throws Exception { - return mProvider.query(URLImageDataTable.CONTENT_URI, null, - URLImageDataTable.URL_COLUMN + " = ?", + return mProvider.query(URLMetadataTable.CONTENT_URI, null, + URLMetadataTable.URL_COLUMN + " = ?", new String[] { url }, null); } @Override public void setUp() throws Exception { super.setUp(sBrowserProviderCallable, BrowserContract.AUTHORITY, "browser.db"); @@ -1530,19 +1530,19 @@ public class testBrowserProvider extends final String url2 = "http://hello.org"; private void testInsertionViaContentProvider() throws Exception { final String tileImage = "http://mozilla.org/tileImage.png"; final String tileColor = "#FF0000"; final String touchIcon = "http://mozilla.org/touchIcon.png"; // We can only use update since the redirection machinery doesn't exist for insert - mProvider.update(URLImageDataTable.CONTENT_URI.buildUpon().appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true").build(), + mProvider.update(URLMetadataTable.CONTENT_URI.buildUpon().appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true").build(), createUrlMetadataEntry(url1, tileImage, tileColor, touchIcon), - URLImageDataTable.URL_COLUMN + "=?", + URLMetadataTable.URL_COLUMN + "=?", new String[] {url1} ); final Cursor c = getUrlMetadataByUrl(url1); try { mAsserter.is(c.getCount(), 1, "URL metadata inserted via Content Provider not found"); } finally { c.close(); @@ -1550,20 +1550,20 @@ public class testBrowserProvider extends } private void testInsertionViaUrlMetadata() throws Exception { final String tileImage = "http://hello.org/tileImage.png"; final String tileColor = "#FF0000"; final String touchIcon = "http://hello.org/touchIcon.png"; final Map<String, Object> data = new HashMap<>(); - data.put(URLImageDataTable.URL_COLUMN, url2); - data.put(URLImageDataTable.TILE_IMAGE_URL_COLUMN, tileImage); - data.put(URLImageDataTable.TILE_COLOR_COLUMN, tileColor); - data.put(URLImageDataTable.TOUCH_ICON_COLUMN, touchIcon); + data.put(URLMetadataTable.URL_COLUMN, url2); + data.put(URLMetadataTable.TILE_IMAGE_URL_COLUMN, tileImage); + data.put(URLMetadataTable.TILE_COLOR_COLUMN, tileColor); + data.put(URLMetadataTable.TOUCH_ICON_COLUMN, touchIcon); BrowserDB.from(getTestProfile()).getURLMetadata().save(mResolver, data); final Cursor c = getUrlMetadataByUrl(url2); try { mAsserter.is(c.moveToFirst(), true, "URL metadata inserted via UrlMetadata not found"); } finally { c.close(); @@ -1581,53 +1581,53 @@ public class testBrowserProvider extends URLMetadata metadata = BrowserDB.from(getTestProfile()).getURLMetadata(); Map<String, Map<String, Object>> results; Map<String, Object> urlData; // 1: retrieve just touch Icons for URL 1 results = metadata.getForURLs(mResolver, Collections.singletonList(url1), - Collections.singletonList(URLImageDataTable.TOUCH_ICON_COLUMN)); + Collections.singletonList(URLMetadataTable.TOUCH_ICON_COLUMN)); mAsserter.is(results.containsKey(url1), true, "URL 1 not found in results"); urlData = results.get(url1); - mAsserter.is(urlData.containsKey(URLImageDataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results"); + mAsserter.is(urlData.containsKey(URLMetadataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results"); // 2: retrieve just tile color for URL 2 results = metadata.getForURLs(mResolver, Collections.singletonList(url2), - Collections.singletonList(URLImageDataTable.TILE_COLOR_COLUMN)); + Collections.singletonList(URLMetadataTable.TILE_COLOR_COLUMN)); mAsserter.is(results.containsKey(url2), true, "URL 2 not found in results"); urlData = results.get(url2); - mAsserter.is(urlData.containsKey(URLImageDataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results"); + mAsserter.is(urlData.containsKey(URLMetadataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results"); // 3: retrieve all columns for both URLs final List<String> urls = Arrays.asList(url1, url2); results = metadata.getForURLs(mResolver, urls, - Arrays.asList(URLImageDataTable.TILE_IMAGE_URL_COLUMN, - URLImageDataTable.TILE_COLOR_COLUMN, - URLImageDataTable.TOUCH_ICON_COLUMN + Arrays.asList(URLMetadataTable.TILE_IMAGE_URL_COLUMN, + URLMetadataTable.TILE_COLOR_COLUMN, + URLMetadataTable.TOUCH_ICON_COLUMN )); mAsserter.is(results.containsKey(url1), true, "URL 1 not found in results"); mAsserter.is(results.containsKey(url2), true, "URL 2 not found in results"); for (final String url : urls) { urlData = results.get(url); - mAsserter.is(urlData.containsKey(URLImageDataTable.TILE_IMAGE_URL_COLUMN), true, "touchIcon column missing in UrlMetadata results"); - mAsserter.is(urlData.containsKey(URLImageDataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results"); - mAsserter.is(urlData.containsKey(URLImageDataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results"); + mAsserter.is(urlData.containsKey(URLMetadataTable.TILE_IMAGE_URL_COLUMN), true, "touchIcon column missing in UrlMetadata results"); + mAsserter.is(urlData.containsKey(URLMetadataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results"); + mAsserter.is(urlData.containsKey(URLMetadataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results"); } } } private class TestCombinedView extends TestCase { @Override public void test() throws Exception { final String TITLE_1 = "Test Page 1";