Add the ability to trace methods in internal builds.

Currently only for internal builds. Use the @Trace annotation to trace
methods for viewing in Perfetto.
This commit is contained in:
Greyson Parrelli
2020-11-10 12:40:50 -05:00
committed by Cody Henthorne
parent c3b5323010
commit 0b77b33902
52 changed files with 720 additions and 4 deletions

View File

@@ -54,6 +54,7 @@ import org.thoughtcrime.securesms.mms.MediaStream;
import org.thoughtcrime.securesms.mms.MmsException;
import org.thoughtcrime.securesms.mms.PartAuthority;
import org.thoughtcrime.securesms.stickers.StickerLocator;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.FileUtils;
@@ -83,6 +84,7 @@ import java.util.Locale;
import java.util.Map;
import java.util.Set;
@Trace
public class AttachmentDatabase extends Database {
private static final String TAG = AttachmentDatabase.class.getSimpleName();

View File

@@ -12,11 +12,13 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.tracing.Trace;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
@Trace
public class DraftDatabase extends Database {
static final String TABLE_NAME = "drafts";

View File

@@ -27,6 +27,7 @@ import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.SqlUtil;
import org.whispersystems.libsignal.util.guava.Optional;
@@ -46,6 +47,7 @@ import java.util.List;
import java.util.Locale;
import java.util.UUID;
@Trace
public final class GroupDatabase extends Database {
private static final String TAG = Log.tag(GroupDatabase.class);

View File

@@ -11,12 +11,14 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.whispersystems.libsignal.util.Pair;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
@Trace
public class GroupReceiptDatabase extends Database {
public static final String TABLE_NAME = "group_receipts";

View File

@@ -30,6 +30,7 @@ import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.database.identity.IdentityRecordList;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.thoughtcrime.securesms.util.IdentityUtil;
import org.whispersystems.libsignal.IdentityKey;
@@ -40,6 +41,7 @@ import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
@Trace
public class IdentityDatabase extends Database {
@SuppressWarnings("unused")

View File

@@ -14,10 +14,12 @@ import org.thoughtcrime.securesms.jobmanager.persistence.ConstraintSpec;
import org.thoughtcrime.securesms.jobmanager.persistence.DependencySpec;
import org.thoughtcrime.securesms.jobmanager.persistence.FullSpec;
import org.thoughtcrime.securesms.jobmanager.persistence.JobSpec;
import org.thoughtcrime.securesms.tracing.Trace;
import java.util.LinkedList;
import java.util.List;
@Trace
public class JobDatabase extends Database {
public static String JOBS_TABLE_NAME = "job_spec";

View File

@@ -10,10 +10,12 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet;
import org.thoughtcrime.securesms.tracing.Trace;
import java.util.Collection;
import java.util.Map;
@Trace
public class KeyValueDatabase extends Database {
public static final String TABLE_NAME = "key_value";

View File

@@ -12,10 +12,12 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.attachments.DatabaseAttachment;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.MediaUtil;
import java.util.List;
@Trace
public class MediaDatabase extends Database {
public static final int ALL_THREADS = -1;

View File

@@ -12,6 +12,7 @@ import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.database.model.MegaphoneRecord;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.megaphone.Megaphones.Event;
import org.thoughtcrime.securesms.tracing.Trace;
import java.util.ArrayList;
import java.util.Collection;
@@ -22,6 +23,7 @@ import java.util.Set;
/**
* IMPORTANT: Writes should only be made through {@link org.thoughtcrime.securesms.megaphone.MegaphoneRepository}.
*/
@Trace
public class MegaphoneDatabase extends Database {
private static final String TAG = Log.tag(MegaphoneDatabase.class);

View File

@@ -15,6 +15,7 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.database.model.Mention;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.SqlUtil;
@@ -24,6 +25,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@Trace
public class MentionDatabase extends Database {
static final String TABLE_NAME = "mention";

View File

@@ -72,6 +72,7 @@ import org.thoughtcrime.securesms.revealable.ViewOnceExpirationInfo;
import org.thoughtcrime.securesms.revealable.ViewOnceUtil;
import org.thoughtcrime.securesms.sms.IncomingTextMessage;
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.JsonUtils;
import org.thoughtcrime.securesms.util.SqlUtil;
@@ -94,6 +95,7 @@ import java.util.Set;
import static org.thoughtcrime.securesms.contactshare.Contact.Avatar;
@Trace
public class MmsDatabase extends MessageDatabase {
private static final String TAG = MmsDatabase.class.getSimpleName();

View File

@@ -33,6 +33,7 @@ import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.whispersystems.libsignal.util.Pair;
import java.io.Closeable;
@@ -41,6 +42,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Trace
public class MmsSmsDatabase extends Database {
@SuppressWarnings("unused")

View File

@@ -10,6 +10,7 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
@@ -18,6 +19,7 @@ import org.whispersystems.signalservice.internal.util.Util;
import java.io.IOException;
@Trace
public class PushDatabase extends Database {
private static final String TAG = PushDatabase.class.getSimpleName();

View File

@@ -41,6 +41,7 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.thoughtcrime.securesms.storage.StorageSyncHelper.RecordUpdate;
import org.thoughtcrime.securesms.storage.StorageSyncModels;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.thoughtcrime.securesms.util.Bitmask;
import org.thoughtcrime.securesms.util.CursorUtil;
@@ -80,6 +81,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Trace
public class RecipientDatabase extends Database {
private static final String TAG = RecipientDatabase.class.getSimpleName();

View File

@@ -10,6 +10,7 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.CursorUtil;
import java.util.HashMap;
@@ -20,6 +21,7 @@ import java.util.Map;
/**
* The backing datastore for {@link RemappedRecords}. See that class for more details.
*/
@Trace
public class RemappedRecordsDatabase extends Database {
public static final String[] CREATE_TABLE = { Recipients.CREATE_TABLE,

View File

@@ -11,10 +11,12 @@ import net.sqlcipher.Cursor;
import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.tracing.Trace;
/**
* Contains all databases necessary for full-text search (FTS).
*/
@Trace
public class SearchDatabase extends Database {
public static final String SMS_FTS_TABLE_NAME = "sms_fts";

View File

@@ -12,6 +12,7 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.SqlUtil;
import org.whispersystems.libsignal.state.SessionRecord;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
@@ -20,6 +21,7 @@ import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
@Trace
public class SessionDatabase extends Database {
private static final String TAG = SessionDatabase.class.getSimpleName();

View File

@@ -11,6 +11,7 @@ import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.whispersystems.libsignal.InvalidKeyException;
import org.whispersystems.libsignal.ecc.Curve;
@@ -23,6 +24,7 @@ import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
@Trace
public class SignedPreKeyDatabase extends Database {
private static final String TAG = SignedPreKeyDatabase.class.getSimpleName();

View File

@@ -51,6 +51,7 @@ import org.thoughtcrime.securesms.revealable.ViewOnceExpirationInfo;
import org.thoughtcrime.securesms.sms.IncomingGroupUpdateMessage;
import org.thoughtcrime.securesms.sms.IncomingTextMessage;
import org.thoughtcrime.securesms.sms.OutgoingTextMessage;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.thoughtcrime.securesms.util.JsonUtils;
import org.thoughtcrime.securesms.util.SqlUtil;
@@ -74,6 +75,7 @@ import java.util.Set;
*
* @author Moxie Marlinspike
*/
@Trace
public class SmsDatabase extends MessageDatabase {
private static final String TAG = SmsDatabase.class.getSimpleName();

View File

@@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri;
import org.thoughtcrime.securesms.stickers.BlessedPacks;
import org.thoughtcrime.securesms.stickers.StickerPackInstallEvent;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.SqlUtil;
import org.thoughtcrime.securesms.util.Util;
@@ -36,6 +37,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Trace
public class StickerDatabase extends Database {
private static final String TAG = Log.tag(StickerDatabase.class);

View File

@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.Base64;
import org.whispersystems.signalservice.api.storage.SignalStorageRecord;
import org.whispersystems.signalservice.api.storage.StorageId;
@@ -23,6 +24,7 @@ import java.util.List;
* A list of storage keys whose types we do not currently have syncing logic for. We need to
* remember that these keys exist so that we don't blast any data away.
*/
@Trace
public class StorageKeyDatabase extends Database {
private static final String TABLE_NAME = "storage_key";

View File

@@ -52,6 +52,7 @@ import org.thoughtcrime.securesms.recipients.RecipientDetails;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.recipients.RecipientUtil;
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
import org.thoughtcrime.securesms.tracing.Trace;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.JsonUtils;
import org.thoughtcrime.securesms.util.SqlUtil;
@@ -76,6 +77,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
@Trace
public class ThreadDatabase extends Database {
private static final String TAG = ThreadDatabase.class.getSimpleName();