diff options
author | Chris Craik <ccraik@google.com> | 2011-09-23 14:54:03 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-09-23 14:54:03 -0700 |
commit | 7a93ab421d2efc4dbc1061e52cfb381ae59b7219 (patch) | |
tree | 85e59ad6c8de1d0765b7f537da95ff86799ee1e3 /Source/WebCore/platform/graphics/android/GLWebViewState.cpp | |
parent | c16143183b56f2047f9babebfe58092c609fbf32 (diff) | |
parent | 941349353627b11c3b9a4deeee6cd7ae831836c0 (diff) | |
download | external_webkit-7a93ab421d2efc4dbc1061e52cfb381ae59b7219.zip external_webkit-7a93ab421d2efc4dbc1061e52cfb381ae59b7219.tar.gz external_webkit-7a93ab421d2efc4dbc1061e52cfb381ae59b7219.tar.bz2 |
Merge "Avoid infinite prepare loop if bad scale provided"
Diffstat (limited to 'Source/WebCore/platform/graphics/android/GLWebViewState.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/GLWebViewState.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp index a7aae25..9e0b3a9 100644 --- a/Source/WebCore/platform/graphics/android/GLWebViewState.cpp +++ b/Source/WebCore/platform/graphics/android/GLWebViewState.cpp @@ -68,6 +68,10 @@ #define RING_COLOR_G 0xb5 #define RING_COLOR_B 0xe5 +// log warnings if scale goes outside this range +#define MIN_SCALE_WARNING 0.1 +#define MAX_SCALE_WARNING 10 + namespace WebCore { using namespace android; @@ -557,11 +561,17 @@ bool GLWebViewState::drawGL(IntRect& rect, SkRect& viewport, IntRect* invalRect, if (baseForComposited && baseForComposited->countChildren() >= 1) compositedRoot = static_cast<LayerAndroid*>(baseForComposited->getChild(0)); + if (scale < MIN_SCALE_WARNING || scale > MAX_SCALE_WARNING) + XLOGC("WARNING, scale seems corrupted before update: %e", scale); + // Here before we draw, update the BaseTile which has updated content. // Inside this function, just do GPU blits from the transfer queue into // the BaseTiles' texture. TilesManager::instance()->transferQueue()->updateDirtyBaseTiles(); + if (scale < MIN_SCALE_WARNING || scale > MAX_SCALE_WARNING) + XLOGC("WARNING, scale seems corrupted after update: %e", scale); + // gather the textures we can use TilesManager::instance()->gatherLayerTextures(); |