diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-01-06 16:29:20 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-01-06 16:29:20 +0100 |
commit | 6300a96eca9f152b379f1bcf3d9efdc5572d989a (patch) | |
tree | 7846dd5390cafcdfe12a110f5e8b95ac8c4c725a /Source/WebKit | |
parent | 40736c5763bf61337c8c14e16d8587db021a87d4 (diff) | |
download | qtwebkit-6300a96eca9f152b379f1bcf3d9efdc5572d989a.tar.gz |
Imported WebKit commit e5cf15db144eb534fdd94be50a07fc2026e967c3 (http://svn.webkit.org/repository/webkit/trunk@104291)
Diffstat (limited to 'Source/WebKit')
-rw-r--r-- | Source/WebKit/ChangeLog | 12 | ||||
-rw-r--r-- | Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.cpp | 70 | ||||
-rw-r--r-- | Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.h | 38 |
3 files changed, 120 insertions, 0 deletions
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog index eefe7f931..3284277df 100644 --- a/Source/WebKit/ChangeLog +++ b/Source/WebKit/ChangeLog @@ -1,3 +1,15 @@ +2012-01-06 Jacky Jiang <zhajiang@rim.com> + + [BlackBerry] Upstream BlackBerry WebCoreSupport cache client + https://bugs.webkit.org/show_bug.cgi?id=75649 + + Reviewed by Antonio Gomes. + + Initial upstream, no new tests. + + * blackberry/WebCoreSupport/CacheClientBlackBerry.cpp: Added. + * blackberry/WebCoreSupport/CacheClientBlackBerry.h: Added. + 2012-01-03 Jon Lee <jonlee@apple.com> Leak of WebNotificationClient when page is destroyed diff --git a/Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.cpp new file mode 100644 index 000000000..c203a1822 --- /dev/null +++ b/Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "CacheClientBlackBerry.h" + +#include "MemoryCache.h" +#include <BlackBerryPlatformMisc.h> +#include <BlackBerryPlatformSettings.h> + +namespace WebCore { + +CacheClientBlackBerry* CacheClientBlackBerry::get() +{ + static CacheClientBlackBerry s_cacheClient; + return &s_cacheClient; +} + +CacheClientBlackBerry::CacheClientBlackBerry() + : m_lastCapacity(0) +{ +} + +void CacheClientBlackBerry::initialize() +{ +#if ENABLE(BLACKBERRY_DEBUG_MEMORY) + bool isDisabled = true; +#else + bool isDisabled = false; +#endif + memoryCache()->setDisabled(isDisabled); + if (!isDisabled) { + // We have to set a non-zero interval to schedule cache pruning after a CachedImage becoming dead. + memoryCache()->setDeadDecodedDataDeletionInterval(0.01); + updateCacheCapacity(); + } +} + +void CacheClientBlackBerry::updateCacheCapacity() +{ +#if ENABLE(BLACKBERRY_DEBUG_MEMORY) + // We're debugging memory usage. So keep it disabled. +#else + unsigned cacheCapacity = BlackBerry::Platform::Settings::get()->getSuggestedCacheCapacity(memoryCache()->totalSize()); + if (m_lastCapacity == cacheCapacity) { + // Suggested capacity hasn't been changed. + return; + } + + m_lastCapacity = cacheCapacity; + memoryCache()->setCapacities(0, m_lastCapacity, m_lastCapacity); +#endif +} + +} // WebCore diff --git a/Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.h new file mode 100644 index 000000000..e022311ee --- /dev/null +++ b/Source/WebKit/blackberry/WebCoreSupport/CacheClientBlackBerry.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef CacheClientBlackBerry_h +#define CacheClientBlackBerry_h + +namespace WebCore { + +class CacheClientBlackBerry { +public: + static CacheClientBlackBerry* get(); + + void initialize(); + void updateCacheCapacity(); + +private: + CacheClientBlackBerry(); + unsigned m_lastCapacity; +}; + +} // WebCore + +#endif // CacheClientBlackBerry_h |