Commit 768503cd authored by yoz's avatar yoz Committed by Commit bot

Get more useful LOG(FATAL) messages from ExtensionSyncData to help diagnose crashes.

BUG=359210

Review URL: https://codereview.chromium.org/947673002

Cr-Commit-Position: refs/heads/master@{#317751}
parent 403e5606
......@@ -5,6 +5,7 @@
#include "chrome/browser/extensions/extension_sync_data.h"
#include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/extensions/app_sync_data.h"
#include "chrome/browser/extensions/extension_service.h"
#include "components/crx_file/id_util.h"
......@@ -16,6 +17,18 @@
namespace extensions {
namespace {
std::string GetExtensionSpecificsLogMessage(
const sync_pb::ExtensionSpecifics& specifics) {
return base::StringPrintf("id: %s\nversion: %s\nupdate_url: %s",
specifics.id().c_str(),
specifics.version().c_str(),
specifics.update_url().c_str());
}
} // namespace
ExtensionSyncData::ExtensionSyncData()
: uninstalled_(false),
enabled_(false),
......@@ -96,17 +109,21 @@ void ExtensionSyncData::PopulateExtensionSpecifics(
void ExtensionSyncData::PopulateFromExtensionSpecifics(
const sync_pb::ExtensionSpecifics& specifics) {
if (!crx_file::id_util::IdIsValid(specifics.id())) {
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics.";
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad ID):\n"
<< GetExtensionSpecificsLogMessage(specifics);
}
Version specifics_version(specifics.version());
if (!specifics_version.IsValid())
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics.";
if (!specifics_version.IsValid()) {
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad version):\n"
<< GetExtensionSpecificsLogMessage(specifics);
}
// The update URL must be either empty or valid.
GURL specifics_update_url(specifics.update_url());
if (!specifics_update_url.is_empty() && !specifics_update_url.is_valid()) {
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics.";
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad update URL):\n"
<< GetExtensionSpecificsLogMessage(specifics);
}
id_ = specifics.id();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment