[tbb-commits] [tor-browser/tor-browser-60.2.1esr-8.5-1] Bug 1448305 - Avoid disk cache for icons of private tabs. r=JanH
gk at torproject.org
gk at torproject.org
Thu Oct 18 18:48:43 UTC 2018
commit c04236287b17b1e8a3ca2a30344d2fe718cae788
Author: Rob Wu <rob at robwu.nl>
Date: Thu Jun 21 15:35:39 2018 +0200
Bug 1448305 - Avoid disk cache for icons of private tabs. r=JanH
---
.../mozilla/gecko/icons/TestIconRequestBuilder.java | 21 +++++++++++++++++++++
mobile/android/base/java/org/mozilla/gecko/Tab.java | 1 +
.../java/org/mozilla/gecko/icons/IconRequest.java | 9 +++++++++
.../org/mozilla/gecko/icons/IconRequestBuilder.java | 10 ++++++++++
.../gecko/icons/processing/DiskProcessor.java | 2 +-
5 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/mobile/android/app/src/test/java/org/mozilla/gecko/icons/TestIconRequestBuilder.java b/mobile/android/app/src/test/java/org/mozilla/gecko/icons/TestIconRequestBuilder.java
index 620caa9f70d0..066febaf2b93 100644
--- a/mobile/android/app/src/test/java/org/mozilla/gecko/icons/TestIconRequestBuilder.java
+++ b/mobile/android/app/src/test/java/org/mozilla/gecko/icons/TestIconRequestBuilder.java
@@ -85,6 +85,27 @@ public class TestIconRequestBuilder {
}
@Test
+ public void testPrivateMode() {
+ IconRequest request = Icons.with(RuntimeEnvironment.application)
+ .pageUrl(TEST_PAGE_URL_1)
+ .build();
+
+ Assert.assertFalse(request.isPrivateMode());
+
+ request.modify()
+ .setPrivateMode(true)
+ .deferBuild();
+
+ Assert.assertTrue(request.isPrivateMode());
+
+ request.modify()
+ .setPrivateMode(false)
+ .deferBuild();
+
+ Assert.assertFalse(request.isPrivateMode());
+ }
+
+ @Test
public void testSkipNetwork() {
IconRequest request = Icons.with(RuntimeEnvironment.application)
.pageUrl(TEST_PAGE_URL_1)
diff --git a/mobile/android/base/java/org/mozilla/gecko/Tab.java b/mobile/android/base/java/org/mozilla/gecko/Tab.java
index 8b84a2c7db66..91c1d1571435 100644
--- a/mobile/android/base/java/org/mozilla/gecko/Tab.java
+++ b/mobile/android/base/java/org/mozilla/gecko/Tab.java
@@ -443,6 +443,7 @@ public class Tab {
}
mRunningIconRequest = mIconRequestBuilder
+ .setPrivateMode(isPrivate())
.build()
.execute(new IconCallback() {
@Override
diff --git a/mobile/android/base/java/org/mozilla/gecko/icons/IconRequest.java b/mobile/android/base/java/org/mozilla/gecko/icons/IconRequest.java
index 8161b9510f3f..da74a8fb5318 100644
--- a/mobile/android/base/java/org/mozilla/gecko/icons/IconRequest.java
+++ b/mobile/android/base/java/org/mozilla/gecko/icons/IconRequest.java
@@ -23,6 +23,7 @@ public class IconRequest {
// Those values are written by the IconRequestBuilder class.
/* package-private */ String pageUrl;
/* package-private */ boolean privileged;
+ /* package-private */ boolean isPrivate;
/* package-private */ TreeSet<IconDescriptor> icons;
/* package-private */ boolean skipNetwork;
/* package-private */ boolean backgroundThread;
@@ -40,6 +41,7 @@ public class IconRequest {
// Setting some sensible defaults.
this.privileged = false;
+ this.isPrivate = false;
this.skipMemory = false;
this.skipDisk = false;
this.skipNetwork = false;
@@ -97,6 +99,13 @@ public class IconRequest {
}
/**
+ * Is this request initiated from a tab in private browsing mode?
+ */
+ public boolean isPrivateMode() {
+ return isPrivate;
+ }
+
+ /**
* Get the number of icon descriptors associated with this request.
*/
public int getIconCount() {
diff --git a/mobile/android/base/java/org/mozilla/gecko/icons/IconRequestBuilder.java b/mobile/android/base/java/org/mozilla/gecko/icons/IconRequestBuilder.java
index ddae3b64bc64..b2fb46e3a39f 100644
--- a/mobile/android/base/java/org/mozilla/gecko/icons/IconRequestBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/icons/IconRequestBuilder.java
@@ -62,6 +62,15 @@ public class IconRequestBuilder {
}
/**
+ * Set the private mode to avoid saving the result to the disk.
+ */
+ @CheckResult
+ public IconRequestBuilder setPrivateMode(boolean isPrivate) {
+ internal.isPrivate = isPrivate;
+ return this;
+ }
+
+ /**
* Skip the network and do not load an icon from a network connection.
*/
@CheckResult
@@ -165,6 +174,7 @@ public class IconRequestBuilder {
IconRequest request = new IconRequest(internal.getContext());
request.pageUrl = internal.pageUrl;
request.privileged = internal.privileged;
+ request.isPrivate = internal.isPrivate;
request.icons = new TreeSet<>(internal.icons);
request.skipNetwork = internal.skipNetwork;
request.backgroundThread = internal.backgroundThread;
diff --git a/mobile/android/base/java/org/mozilla/gecko/icons/processing/DiskProcessor.java b/mobile/android/base/java/org/mozilla/gecko/icons/processing/DiskProcessor.java
index 150aa503b83e..4923c6fc93c4 100644
--- a/mobile/android/base/java/org/mozilla/gecko/icons/processing/DiskProcessor.java
+++ b/mobile/android/base/java/org/mozilla/gecko/icons/processing/DiskProcessor.java
@@ -8,7 +8,7 @@ import org.mozilla.gecko.util.StringUtils;
public class DiskProcessor implements Processor {
@Override
public void process(IconRequest request, IconResponse response) {
- if (request.shouldSkipDisk()) {
+ if (request.shouldSkipDisk() || request.isPrivateMode()) {
return;
}
More information about the tbb-commits
mailing list