Index: chrome/browser/bookmarks/chrome_bookmark_client.cc |
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc |
index 34bb09d90925f23c31fa23502e7e03698e541a50..7bb830ea863dff754a97ff1a1e991a20fd6d21de 100644 |
--- a/chrome/browser/bookmarks/chrome_bookmark_client.cc |
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc |
@@ -7,6 +7,7 @@ |
#include "base/logging.h" |
#include "base/memory/ptr_util.h" |
#include "base/metrics/user_metrics.h" |
+#include "base/sys_info.h" |
#include "chrome/browser/favicon/favicon_service_factory.h" |
#include "chrome/browser/history/history_service_factory.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -23,6 +24,11 @@ |
#include "chrome/browser/android/offline_pages/offline_page_bookmark_observer.h" |
#endif |
+namespace { |
+// Optional keys present in MetaInfo maps in bookmark nodes to load in memory. |
+const char* const kOptionalMetakeys[] = {"imageData", "pageData"}; |
+} // namespace |
+ |
ChromeBookmarkClient::ChromeBookmarkClient( |
Profile* profile, |
bookmarks::ManagedBookmarkService* managed_bookmark_service) |
@@ -127,3 +133,13 @@ bool ChromeBookmarkClient::CanBeEditedByUser( |
? true |
: managed_bookmark_service_->CanBeEditedByUser(node); |
} |
+ |
+std::vector<std::string> ChromeBookmarkClient::ExecludedMetaKeys() { |
+ std::vector<std::string> optional_keys; |
+ // Do not load the image and page data into memory for low-end devices. |
+ if (base::SysInfo::IsLowEndDevice()) { |
+ optional_keys.insert(optional_keys.end(), std::begin(kOptionalMetakeys), |
+ std::end(kOptionalMetakeys)); |
+ } |
+ return optional_keys; |
+} |