Index: components/sessions/core/serialized_navigation_entry.cc |
diff --git a/components/sessions/core/serialized_navigation_entry.cc b/components/sessions/core/serialized_navigation_entry.cc |
index 08685eb36021a03d8ca5a10c96d00e145d5c45fb..79c54cf56280be627ac2b2e5749cdfe61290f0ee 100644 |
--- a/components/sessions/core/serialized_navigation_entry.cc |
+++ b/components/sessions/core/serialized_navigation_entry.cc |
@@ -8,10 +8,18 @@ |
#include "base/pickle.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/trace_event/estimate_memory_usage.h" |
#include "components/sessions/core/serialized_navigation_driver.h" |
#include "components/sync/base/time.h" |
#include "components/sync/protocol/session_specifics.pb.h" |
+// TODO(dskiba): move somemhere |
+size_t EstimateMemoryUsage(const GURL& url) { |
+ using base::trace_event::EstimateMemoryUsage; |
+ return EstimateMemoryUsage(url.possibly_invalid_spec()) + |
+ (url.inner_url() ? EstimateMemoryUsage(*url.inner_url()) : 0); |
+} |
+ |
namespace sessions { |
// TODO(treib): Remove, not needed anymore. crbug.com/627747 |
@@ -500,4 +508,19 @@ sync_pb::TabNavigation SerializedNavigationEntry::ToSyncData() const { |
return sync_data; |
} |
+size_t SerializedNavigationEntry::EstimateMemoryUsage() const { |
+ using base::trace_event::EstimateMemoryUsage; |
+ return |
+ EstimateMemoryUsage(referrer_url_) + |
+ EstimateMemoryUsage(virtual_url_) + |
+ EstimateMemoryUsage(title_) + |
+ EstimateMemoryUsage(encoded_page_state_) + |
+ EstimateMemoryUsage(original_request_url_) + |
+ EstimateMemoryUsage(search_terms_) + |
+ EstimateMemoryUsage(favicon_url_) + |
+ EstimateMemoryUsage(redirect_chain_) + |
+ EstimateMemoryUsage(content_pack_categories_) + |
+ EstimateMemoryUsage(extended_info_map_); |
+} |
+ |
} // namespace sessions |