Merge m-c to inbound

This commit is contained in:
Wes Kocher 2014-06-02 19:14:52 -07:00
commit 0735188ac2
16 changed files with 116 additions and 22 deletions

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="8e4420c0c5c8e8c8e58a000278a7129403769f96"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="600ef6ddc915ceffc1a89d51b7be8453fe709992"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="276ce45e78b09c4a4ee643646f691d22804754c1">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="librecovery" patch="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="8e4420c0c5c8e8c8e58a000278a7129403769f96"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="600ef6ddc915ceffc1a89d51b7be8453fe709992"/>
@ -118,7 +118,7 @@
<!-- Flame specific things -->
<project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="e8a318f7690092e639ba88891606f4183e846d3f"/>
<project name="device/qcom/common" path="device/qcom/common" revision="34ed8345250bb97262d70a052217a92e83444ede"/>
<project name="device-flame" path="device/t2m/flame" remote="b2g" revision="75c65fce94693c9b990a7b1dab751bd2a536559b"/>
<project name="device-flame" path="device/t2m/flame" remote="b2g" revision="95423152b66d4a41032414fc3fb8c3d9a0636c7d"/>
<project name="kernel/msm" path="kernel" revision="228d59147ff524e90774c566eef03260cc6857b8"/>
<project name="platform/bootable/recovery" path="bootable/recovery" revision="f2914eacee9120680a41463708bb6ee8291749fc"/>
<project name="platform/external/bluetooth/bluedroid" path="external/bluetooth/bluedroid" revision="81c4a859d75d413ad688067829d21b7ba9205f81"/>

View File

@ -4,6 +4,6 @@
"remote": "",
"branch": ""
},
"revision": "e204b914c3ddada45ae5ff5c9fc5e8f55f906ca7",
"revision": "fe1d2cacb28a6876729ebb4315432c9cce2eb797",
"repo_path": "/integration/gaia-central"
}

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -15,7 +15,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="600ef6ddc915ceffc1a89d51b7be8453fe709992"/>

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8341cddb04773957069ac1334692a888b8bb1091"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="61cd07a8b5fa017777db6d345e00afb4fb8789b7"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="531cf670e485649c69746e46d567929fcd54cbc5"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -4723,7 +4723,7 @@
<method name="_mouseenter">
<body><![CDATA[
if (this.closing)
if (this.hidden || this.closing)
return;
let tabContainer = this.parentNode;

View File

@ -6,6 +6,7 @@ package org.mozilla.gecko.db;
import java.lang.IllegalArgumentException;
import java.util.HashMap;
import org.mozilla.gecko.GeckoAppShell;
import org.mozilla.gecko.GeckoEvent;
import org.mozilla.gecko.db.BrowserContract.FormHistory;
@ -33,6 +34,7 @@ public class FormHistoryProvider extends SQLiteBridgeContentProvider {
// This should be kept in sync with the db version in toolkit/components/satchel/nsFormHistory.js
private static int DB_VERSION = 4;
private static String DB_FILENAME = "formhistory.sqlite";
private static final String TELEMETRY_TAG = "SQLITEBRIDGE_PROVIDER_FORMS";
private static final String WHERE_GUID_IS_NULL = BrowserContract.DeletedFormHistory.GUID + " IS NULL";
private static final String WHERE_GUID_IS_VALUE = BrowserContract.DeletedFormHistory.GUID + " = ?";
@ -153,6 +155,11 @@ public class FormHistoryProvider extends SQLiteBridgeContentProvider {
return DB_FILENAME;
}
@Override
protected String getTelemetryPrefix() {
return TELEMETRY_TAG;
}
@Override
protected int getDBVersion(){
return DB_VERSION;

View File

@ -29,6 +29,7 @@ public class HomeProvider extends SQLiteBridgeContentProvider {
// This should be kept in sync with the db version in mobile/android/modules/HomeProvider.jsm
private static int DB_VERSION = 2;
private static String DB_FILENAME = "home.sqlite";
private static final String TELEMETRY_TAG = "SQLITEBRIDGE_PROVIDER_HOME";
private static final String TABLE_ITEMS = "items";
@ -144,6 +145,11 @@ public class HomeProvider extends SQLiteBridgeContentProvider {
return DB_FILENAME;
}
@Override
protected String getTelemetryPrefix() {
return TELEMETRY_TAG;
}
@Override
protected int getDBVersion(){
return DB_VERSION;

View File

@ -29,6 +29,8 @@ public class PasswordsProvider extends SQLiteBridgeContentProvider {
static final String TABLE_PASSWORDS = "moz_logins";
static final String TABLE_DELETED_PASSWORDS = "moz_deleted_logins";
private static final String TELEMETRY_TAG = "SQLITEBRIDGE_PROVIDER_PASSWORDS";
private static final int PASSWORDS = 100;
private static final int DELETED_PASSWORDS = 101;
@ -91,6 +93,11 @@ public class PasswordsProvider extends SQLiteBridgeContentProvider {
return DB_FILENAME;
}
@Override
protected String getTelemetryPrefix() {
return TELEMETRY_TAG;
}
@Override
protected int getDBVersion(){
return DB_VERSION;

View File

@ -6,14 +6,14 @@ package org.mozilla.gecko.db;
import java.io.File;
import java.util.HashMap;
import java.util.Collection;
import java.util.Iterator;
import org.mozilla.gecko.GeckoProfile;
import org.mozilla.gecko.GeckoThread;
import org.mozilla.gecko.db.BrowserContract;
import org.mozilla.gecko.Telemetry;
import org.mozilla.gecko.mozglue.GeckoLoader;
import org.mozilla.gecko.sqlite.SQLiteBridge;
import org.mozilla.gecko.sqlite.SQLiteBridgeException;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
@ -35,6 +35,8 @@ import android.util.Log;
*/
public abstract class SQLiteBridgeContentProvider extends ContentProvider {
private static final String ERROR_MESSAGE_DATABASE_IS_LOCKED = "Can't step statement: (5) database is locked";
private HashMap<String, SQLiteBridge> mDatabasePerProfile;
protected Context mContext = null;
private final String mLogTag;
@ -43,6 +45,42 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
mLogTag = logTag;
}
/**
* Subclasses must override this to allow error reporting code to compose
* the correct histogram name.
*
* Ensure that you define the new histograms if you define a new class!
*/
protected abstract String getTelemetryPrefix();
/**
* Errors are recorded in telemetry using an enumerated histogram.
*
* <https://developer.mozilla.org/en-US/docs/Mozilla/Performance/
* Adding_a_new_Telemetry_probe#Choosing_a_Histogram_Type>
*
* These are the allowable enumeration values. Keep these in sync with the
* histogram definition!
*
*/
private static enum TelemetryErrorOp {
BULKINSERT (0),
DELETE (1),
INSERT (2),
QUERY (3),
UPDATE (4);
private final int bucket;
TelemetryErrorOp(final int bucket) {
this.bucket = bucket;
}
public int getBucket() {
return bucket;
}
}
@Override
public void shutdown() {
if (mDatabasePerProfile == null) {
@ -255,7 +293,7 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
try {
deleted = db.delete(getTable(uri), selection, selectionArgs);
} catch (SQLiteBridgeException ex) {
Log.e(mLogTag, "Error deleting record", ex);
reportError(ex, TelemetryErrorOp.DELETE);
throw ex;
}
@ -291,7 +329,7 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
db.setTransactionSuccessful();
}
} catch (SQLiteBridgeException ex) {
Log.e(mLogTag, "Error inserting in db", ex);
reportError(ex, TelemetryErrorOp.INSERT);
throw ex;
} finally {
if (useTransaction) {
@ -312,7 +350,6 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
return 0;
}
long id = -1;
int rowsAdded = 0;
String table = getTable(uri);
@ -323,12 +360,12 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
ContentValues values = new ContentValues(initialValues);
setupDefaults(uri, values);
onPreInsert(values, uri, db);
id = db.insert(table, null, values);
db.insert(table, null, values);
rowsAdded++;
}
db.setTransactionSuccessful();
} catch (SQLiteBridgeException ex) {
Log.e(mLogTag, "Error inserting in db", ex);
reportError(ex, TelemetryErrorOp.BULKINSERT);
throw ex;
} finally {
db.endTransaction();
@ -360,7 +397,7 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
try {
updated = db.update(getTable(uri), values, selection, selectionArgs);
} catch (SQLiteBridgeException ex) {
Log.e(mLogTag, "Error updating table", ex);
reportError(ex, TelemetryErrorOp.UPDATE);
throw ex;
}
@ -386,13 +423,32 @@ public abstract class SQLiteBridgeContentProvider extends ContentProvider {
cursor = db.query(getTable(uri), projection, selection, selectionArgs, null, null, sortOrder, null);
onPostQuery(cursor, uri, db);
} catch (SQLiteBridgeException ex) {
Log.e(mLogTag, "Error querying database", ex);
reportError(ex, TelemetryErrorOp.QUERY);
throw ex;
}
return cursor;
}
private String getHistogram(SQLiteBridgeException e) {
// If you add values here, make sure to update
// toolkit/components/telemetry/Histograms.json.
if (ERROR_MESSAGE_DATABASE_IS_LOCKED.equals(e.getMessage())) {
return getTelemetryPrefix() + "_LOCKED";
}
return null;
}
protected void reportError(SQLiteBridgeException e, TelemetryErrorOp op) {
Log.e(mLogTag, "Error in database " + op.name(), e);
final String histogram = getHistogram(e);
if (histogram == null) {
return;
}
Telemetry.HistogramAdd(histogram, op.getBucket());
}
protected abstract String getDBName();
protected abstract int getDBVersion();

View File

@ -5908,6 +5908,24 @@
"extended_statistics_ok": true,
"description": "Time spent to open an existing cache entry"
},
"SQLITEBRIDGE_PROVIDER_PASSWORDS_LOCKED": {
"expires_in_version": "never",
"kind": "enumerated",
"n_values": "10",
"description": "The number of errors using the PasswordsProvider due to a locked DB."
},
"SQLITEBRIDGE_PROVIDER_FORMS_LOCKED": {
"expires_in_version": "never",
"kind": "enumerated",
"n_values": "10",
"description": "The number of errors using the FormHistoryProvider due to a locked DB."
},
"SQLITEBRIDGE_PROVIDER_HOME_LOCKED": {
"expires_in_version": "never",
"kind": "enumerated",
"n_values": "10",
"description": "The number of errors using the HomeProvider due to a locked DB."
},
"SSL_TLS12_INTOLERANCE_REASON_PRE": {
"expires_in_version": "never",
"kind": "enumerated",