Fixes to Edge Navigation for missing bitmaps
- Show prominent color from favicon when bitmap capture of a
navigation entry is missing
- More active purging of bitmaps on navigation
Change-Id: I2c137385bd1b1179dbbb16c0c3e933783d499c34
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index f1444c8..ebeeadf 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -608,13 +608,16 @@
mTabHistoryUpdateObservable.set(index);
final int maxIdx = view.copyBackForwardList().getSize();
final WebView wv = view;
+ final int currIdx = index;
+ final int currentTabIdx = (int) mWebViewController.getTabControl().
+ getCurrentTab().getId();
view.getSnapshotIds(new ValueCallback <List<Integer>>() {
@Override
public void onReceiveValue(List<Integer> ids) {
- int currentTabIdx = mWebViewController.getTabControl().getCurrentPosition();
for (Integer id : ids) {
- if (getTabIdxFromCaptureIdx(id) == currentTabIdx &&
- getNavIdxFromCaptureIdx(id) >= maxIdx) {
+ int tabIdx = getTabIdxFromCaptureIdx(id);
+ int navIdx = getNavIdxFromCaptureIdx(id);
+ if (tabIdx == currentTabIdx && (navIdx >= maxIdx || navIdx == currIdx)) {
wv.deleteSnapshot(id);
}
}
@@ -1363,13 +1366,13 @@
final WebView webView = mMainView;
setWebView(null);
if (!mWebViewDestroyedByMemoryMonitor && !BaseUi.isUiLowPowerMode()) {
+ final int destroyedTabIdx = (int) mId;
// Tabs can be reused with new instance of WebView so delete the snapshots
webView.getSnapshotIds(new ValueCallback<List<Integer>>() {
@Override
public void onReceiveValue(List<Integer> ids) {
- int currentTabIdx = mWebViewController.getTabControl().getCurrentPosition();
for (Integer id : ids) {
- if (getTabIdxFromCaptureIdx(id) == currentTabIdx) {
+ if (getTabIdxFromCaptureIdx(id) == destroyedTabIdx) {
webView.deleteSnapshot(id);
}
}