summaryrefslogtreecommitdiff
path: root/android_webview
diff options
context:
space:
mode:
authorHui Shu <hush@google.com>2014-09-10 18:38:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-10 18:38:43 +0000
commite47586f6ca96c635d5e15e7c0e6afc9b5cca3d3d (patch)
treec36e9207071259846fd743fab47ac5fb7683c123 /android_webview
parent2970d1e8b75bf6c163c4d201375649a9a6974e42 (diff)
parent603707ba509d3e29bf4b37f1132906364a2803eb (diff)
downloadchromium_org-e47586f6ca96c635d5e15e7c0e6afc9b5cca3d3d.tar.gz
Merge "Revert "Crash intentionally when requestTiles with invalid key."" into lmp-dev
Diffstat (limited to 'android_webview')
-rw-r--r--android_webview/browser/browser_view_renderer.cc7
-rw-r--r--android_webview/browser/global_tile_manager.cc11
-rw-r--r--android_webview/browser/global_tile_manager.h3
3 files changed, 6 insertions, 15 deletions
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
index 29d475c2d4..c29ccee34d 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -197,12 +197,7 @@ void BrowserViewRenderer::RequestMemoryPolicy(
GlobalTileManager* manager = GlobalTileManager::GetInstance();
// The following line will call BrowserViewRenderer::SetTilesNum().
- bool success =
- manager->RequestTiles(new_policy.num_resources_limit, tile_manager_key_);
- CHECK(success) << "tile_manager_key_ is invalid."
- << "\n Current memory policy: bytes_limit " << memory_policy_.bytes_limit
- << " num_resources_limit " << memory_policy_.num_resources_limit
- << "\n hardware enabled " << hardware_enabled_;
+ manager->RequestTiles(new_policy.num_resources_limit, tile_manager_key_);
}
void BrowserViewRenderer::SetNumTiles(size_t num_tiles,
diff --git a/android_webview/browser/global_tile_manager.cc b/android_webview/browser/global_tile_manager.cc
index 5fc5d07e98..a2fe4b6cd5 100644
--- a/android_webview/browser/global_tile_manager.cc
+++ b/android_webview/browser/global_tile_manager.cc
@@ -64,12 +64,9 @@ void GlobalTileManager::SetTileLimit(size_t num_tiles_limit) {
num_tiles_limit_ = num_tiles_limit;
}
-bool GlobalTileManager::RequestTiles(size_t new_num_of_tiles, Key key) {
+void GlobalTileManager::RequestTiles(size_t new_num_of_tiles, Key key) {
DCHECK(IsConsistent());
DCHECK(sequence_checker_.CalledOnValidSequencedThread());
- if (std::find(mru_list_.begin(), mru_list_.end(), *key) == mru_list_.end()) {
- return false;
- }
size_t old_num_of_tiles = (*key)->GetNumTiles();
size_t num_of_active_views = std::distance(mru_list_.begin(), key) + 1;
size_t tiles_per_view_limit;
@@ -84,7 +81,7 @@ bool GlobalTileManager::RequestTiles(size_t new_num_of_tiles, Key key) {
if (new_total_allocated_tiles <= num_tiles_limit_) {
total_allocated_tiles_ = new_total_allocated_tiles;
(*key)->SetNumTiles(new_num_of_tiles, false);
- return true;
+ return;
}
// Does not have enough tiles. Now evict other clients' tiles.
@@ -96,11 +93,11 @@ bool GlobalTileManager::RequestTiles(size_t new_num_of_tiles, Key key) {
new_total_allocated_tiles -= evicted_tiles;
total_allocated_tiles_ = new_total_allocated_tiles;
(*key)->SetNumTiles(new_num_of_tiles, false);
- return true;
+ return;
} else {
total_allocated_tiles_ = num_tiles_limit_;
(*key)->SetNumTiles(tiles_left + old_num_of_tiles + evicted_tiles, false);
- return true;
+ return;
}
}
diff --git a/android_webview/browser/global_tile_manager.h b/android_webview/browser/global_tile_manager.h
index 10d15e2d99..3473c20ead 100644
--- a/android_webview/browser/global_tile_manager.h
+++ b/android_webview/browser/global_tile_manager.h
@@ -36,8 +36,7 @@ class GlobalTileManager {
// tiles are available for the client. If the number of tiles left is not
// enough to satisfy the request, the manager will evict tiles allocated to
// other clients.
- // Returns false if the key cannot be found in |mru_list_|.
- bool RequestTiles(size_t new_num_of_tiles, Key key);
+ void RequestTiles(size_t new_num_of_tiles, Key key);
Key PushBack(GlobalTileManagerClient* client);