| Index: content/browser/notifications/notification_id_generator.cc
|
| diff --git a/content/browser/notifications/notification_id_generator.cc b/content/browser/notifications/notification_id_generator.cc
|
| index 04f34f757939acfb5979db64ff9ba2ac3c6bf50a..254c83efdfdfc1d08933273f025aeaa6e515aae3 100644
|
| --- a/content/browser/notifications/notification_id_generator.cc
|
| +++ b/content/browser/notifications/notification_id_generator.cc
|
| @@ -6,9 +6,11 @@
|
|
|
| #include <sstream>
|
|
|
| +#include "base/base64.h"
|
| #include "base/files/file_path.h"
|
| #include "base/logging.h"
|
| #include "base/sha1.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "build/build_config.h"
|
| #include "content/public/browser/browser_context.h"
|
| @@ -29,10 +31,12 @@ std::string ComputeBrowserContextHash(BrowserContext* browser_context) {
|
| const base::FilePath path = browser_context->GetPath();
|
|
|
| #if defined(OS_WIN)
|
| - return base::SHA1HashString(base::WideToUTF8(path.value()));
|
| + std::string path_hash = base::SHA1HashString(base::WideToUTF8(path.value()));
|
| #else
|
| - return base::SHA1HashString(path.value());
|
| + std::string path_hash = base::SHA1HashString(path.value());
|
| #endif
|
| +
|
| + return base::HexEncode(path_hash.c_str(), path_hash.length());
|
| }
|
|
|
| } // namespace
|
| @@ -68,17 +72,17 @@ std::string NotificationIdGenerator::GenerateForPersistentNotification(
|
|
|
| stream << kPersistentPrefix;
|
| stream << ComputeBrowserContextHash(browser_context_);
|
| - stream << browser_context_->IsOffTheRecord();
|
| + stream << base::IntToString(browser_context_->IsOffTheRecord());
|
| stream << origin;
|
|
|
| // Persistent notification ids are unique for the lifetime of the notification
|
| // database, orthogonal to the renderer that created the notification.
|
|
|
| - stream << !!tag.size();
|
| + stream << base::IntToString(!tag.empty());
|
| if (tag.size())
|
| stream << tag;
|
| else
|
| - stream << persistent_notification_id;
|
| + stream << base::Int64ToString(persistent_notification_id);
|
|
|
| return stream.str();
|
| }
|
| @@ -94,18 +98,18 @@ std::string NotificationIdGenerator::GenerateForNonPersistentNotification(
|
|
|
| stream << kNonPersistentPrefix;
|
| stream << ComputeBrowserContextHash(browser_context_);
|
| - stream << browser_context_->IsOffTheRecord();
|
| + stream << base::IntToString(browser_context_->IsOffTheRecord());
|
| stream << origin;
|
|
|
| // Non-persistent notification ids are unique per renderer process when no
|
| // tag is being used. Tags still identify uniqueness for the given origin.
|
|
|
| - stream << !!tag.size();
|
| + stream << base::IntToString(!tag.empty());
|
| if (!tag.size()) {
|
| - stream << render_process_id_;
|
| + stream << base::IntToString(render_process_id_);
|
| stream << kSeparator;
|
|
|
| - stream << non_persistent_notification_id;
|
| + stream << base::IntToString(non_persistent_notification_id);
|
| } else {
|
| stream << tag;
|
| }
|
|
|