Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(978)

Unified Diff: ios/chrome/browser/snapshots/snapshot_cache.mm

Issue 1725533004: Enable iPad Tab Switcher by default on iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comment. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/browser/snapshots/OWNERS ('k') | ios/chrome/browser/snapshots/snapshot_cache_internal.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/snapshots/snapshot_cache.mm
diff --git a/ios/chrome/browser/snapshots/snapshot_cache.mm b/ios/chrome/browser/snapshots/snapshot_cache.mm
index d6537ccab69c7978fa77567e978f2fe7d6a3923b..8e85668ae48271691c70ad82cb1c9771ead3f9f6 100644
--- a/ios/chrome/browser/snapshots/snapshot_cache.mm
+++ b/ios/chrome/browser/snapshots/snapshot_cache.mm
@@ -18,13 +18,12 @@
#include "base/task_runner_util.h"
#include "base/threading/thread_restrictions.h"
#include "ios/chrome/browser/experimental_flags.h"
+#import "ios/chrome/browser/snapshots/snapshot_cache_internal.h"
#include "ios/chrome/browser/ui/ui_util.h"
#import "ios/chrome/browser/ui/uikit_ui_util.h"
#include "ios/web/public/web_thread.h"
@interface SnapshotCache ()
-+ (base::FilePath)imagePathForSessionID:(NSString*)sessionID;
-+ (base::FilePath)greyImagePathForSessionID:(NSString*)sessionID;
// Returns the directory where the thumbnails are saved.
+ (base::FilePath)cacheDirectory;
// Returns the directory where the thumbnails were stored in M28 and earlier.
@@ -144,52 +143,45 @@ void ConvertAndSaveGreyImage(
DCHECK_CURRENTLY_ON(web::WebThread::UI);
propertyReleaser_SnapshotCache_.Init(self, [SnapshotCache class]);
- // Always use the LRUCache when the tab switcher is enabled.
- if (experimental_flags::IsTabSwitcherEnabled() ||
- experimental_flags::IsLRUSnapshotCacheEnabled()) {
+ if ([self usesLRUCache]) {
lruCache_.reset(
[[LRUCache alloc] initWithCacheSize:kLRUCacheMaxCapacity]);
} else {
imageDictionary_.reset(
[[NSMutableDictionary alloc] initWithCapacity:kCacheInitialCapacity]);
}
-
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled()) {
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(handleLowMemory)
- name:UIApplicationDidReceiveMemoryWarningNotification
- object:nil];
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(handleEnterBackground)
- name:UIApplicationDidEnterBackgroundNotification
- object:nil];
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(handleBecomeActive)
- name:UIApplicationDidBecomeActiveNotification
- object:nil];
- }
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(handleLowMemory)
+ name:UIApplicationDidReceiveMemoryWarningNotification
+ object:nil];
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(handleEnterBackground)
+ name:UIApplicationDidEnterBackgroundNotification
+ object:nil];
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(handleBecomeActive)
+ name:UIApplicationDidBecomeActiveNotification
+ object:nil];
}
return self;
}
- (void)dealloc {
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled()) {
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:UIApplicationDidReceiveMemoryWarningNotification
- object:nil];
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:UIApplicationDidEnterBackgroundNotification
- object:nil];
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:UIApplicationDidBecomeActiveNotification
- object:nil];
- }
+ [[NSNotificationCenter defaultCenter]
+ removeObserver:self
+ name:UIApplicationDidReceiveMemoryWarningNotification
+ object:nil];
+ [[NSNotificationCenter defaultCenter]
+ removeObserver:self
+ name:UIApplicationDidEnterBackgroundNotification
+ object:nil];
+ [[NSNotificationCenter defaultCenter]
+ removeObserver:self
+ name:UIApplicationDidBecomeActiveNotification
+ object:nil];
[super dealloc];
}
@@ -210,9 +202,7 @@ void ConvertAndSaveGreyImage(
DCHECK_CURRENTLY_ON(web::WebThread::UI);
DCHECK(sessionID);
- // Cache on iPad is enabled only when the tab switcher is enabled.
- if ((IsIPadIdiom() && !experimental_flags::IsTabSwitcherEnabled()) &&
- !callback)
+ if (![self inMemoryCacheIsEnabled] && !callback)
return;
UIImage* img = nil;
@@ -236,9 +226,7 @@ void ConvertAndSaveGreyImage(
[SnapshotCache imagePathForSessionID:sessionID]) retain]);
}),
base::BindBlock(^(base::scoped_nsobject<UIImage> image) {
- // Cache on iPad is enabled only when the tab switcher is enabled.
- if ((!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled()) &&
- image) {
+ if ([self inMemoryCacheIsEnabled] && image) {
if (lruCache_)
[lruCache_ setObject:image forKey:sessionID];
else
@@ -254,8 +242,7 @@ void ConvertAndSaveGreyImage(
if (!img || !sessionID)
return;
- // Cache on iPad is enabled only when the tab switcher is enabled.
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled()) {
+ if ([self inMemoryCacheIsEnabled]) {
if (lruCache_)
[lruCache_ setObject:img forKey:sessionID];
else
@@ -386,8 +373,18 @@ void ConvertAndSaveGreyImage(
}
}
+- (BOOL)inMemoryCacheIsEnabled {
+ // In-memory cache on iPad is enabled only when the tab switcher is enabled.
+ return !IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled();
+}
+
+- (BOOL)usesLRUCache {
+ // Always use the LRUCache when the tab switcher is enabled.
+ return experimental_flags::IsTabSwitcherEnabled() ||
+ experimental_flags::IsLRUSnapshotCacheEnabled();
+}
+
- (void)handleLowMemory {
- DCHECK(!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled());
DCHECK_CURRENTLY_ON(web::WebThread::UI);
base::scoped_nsobject<NSMutableDictionary> dictionary(
[[NSMutableDictionary alloc] initWithCapacity:2]);
@@ -411,14 +408,12 @@ void ConvertAndSaveGreyImage(
}
- (void)handleEnterBackground {
- DCHECK(!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled());
DCHECK_CURRENTLY_ON(web::WebThread::UI);
[imageDictionary_ removeAllObjects];
[lruCache_ removeAllObjects];
}
- (void)handleBecomeActive {
- DCHECK(!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled());
DCHECK_CURRENTLY_ON(web::WebThread::UI);
for (NSString* sessionID in pinnedIDs_)
[self retrieveImageForSessionID:sessionID callback:nil];
@@ -569,11 +564,12 @@ void ConvertAndSaveGreyImage(
@implementation SnapshotCache (TestingAdditions)
- (BOOL)hasImageInMemory:(NSString*)sessionID {
- if (experimental_flags::IsLRUSnapshotCacheEnabled())
+ if ([self usesLRUCache])
return [lruCache_ objectForKey:sessionID] != nil;
else
return [imageDictionary_ objectForKey:sessionID] != nil;
}
+
- (BOOL)hasGreyImageInMemory:(NSString*)sessionID {
return [greyImageDictionary_ objectForKey:sessionID] != nil;
}
« no previous file with comments | « ios/chrome/browser/snapshots/OWNERS ('k') | ios/chrome/browser/snapshots/snapshot_cache_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698