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 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/extensions/extension_sync_data.h" #include "chrome/browser/extensions/extension_sync_data.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/extensions/app_sync_data.h" #include "chrome/browser/extensions/app_sync_data.h"
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
#include "components/crx_file/id_util.h" #include "components/crx_file/id_util.h"
...@@ -16,6 +17,18 @@ ...@@ -16,6 +17,18 @@
namespace extensions { 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() ExtensionSyncData::ExtensionSyncData()
: uninstalled_(false), : uninstalled_(false),
enabled_(false), enabled_(false),
...@@ -96,17 +109,21 @@ void ExtensionSyncData::PopulateExtensionSpecifics( ...@@ -96,17 +109,21 @@ void ExtensionSyncData::PopulateExtensionSpecifics(
void ExtensionSyncData::PopulateFromExtensionSpecifics( void ExtensionSyncData::PopulateFromExtensionSpecifics(
const sync_pb::ExtensionSpecifics& specifics) { const sync_pb::ExtensionSpecifics& specifics) {
if (!crx_file::id_util::IdIsValid(specifics.id())) { 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()); Version specifics_version(specifics.version());
if (!specifics_version.IsValid()) if (!specifics_version.IsValid()) {
LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics."; LOG(FATAL) << "Attempt to sync bad ExtensionSpecifics (bad version):\n"
<< GetExtensionSpecificsLogMessage(specifics);
}
// The update URL must be either empty or valid. // The update URL must be either empty or valid.
GURL specifics_update_url(specifics.update_url()); GURL specifics_update_url(specifics.update_url());
if (!specifics_update_url.is_empty() && !specifics_update_url.is_valid()) { 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(); 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