summaryrefslogtreecommitdiffstats
path: root/ios
diff options
context:
space:
mode:
authormarkusheintz <markusheintz@chromium.org>2016-02-19 07:58:00 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-19 15:59:18 +0000
commit03d42fb9406274498afdeb8e346573ca9364d423 (patch)
tree78cce0babcb5758fc92d627546ea8fd9c995b196 /ios
parent4f56799de0e3221ab0e15c8b5ae44cd2b00ec5a7 (diff)
downloadchromium_src-03d42fb9406274498afdeb8e346573ca9364d423.zip
chromium_src-03d42fb9406274498afdeb8e346573ca9364d423.tar.gz
chromium_src-03d42fb9406274498afdeb8e346573ca9364d423.tar.bz2
Revert of Release unused web views when under memory pressure. (patchset #5 id:100001 of https://codereview.chromium.org/1708643002/ )
Reason for revert: TypedUrlSyncableServiceTest.DeleteUrlAndVisits fails on Win and CROS ASAN: Win: https://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/46063/steps/components_unittests/logs/TypedUrlSyncableServiceTest.DeleteUrlAndVisits https://build.chromium.org/p/chromium.win/buildstatus?builder=Win7%20Tests%20%28dbg%29%281%29&number=46064 https://build.chromium.org/p/chromium.win/buildstatus?builder=Win7%20Tests%20%28dbg%29%281%29&number=46063 CROS ASAN: https://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/builds/9861/steps/components_unittests/logs/TypedUrlSyncableServiceTest.DeleteUrlAndVisits https://build.chromium.org/p/chromium.memory/buildstatus?builder=Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29&number=9861 Original issue's description: > Release unused web views when under memory pressure. > > AccountConsistencyService and GaiaAuthFetcherIOS both use web views > internally to manipulate cookies. Once allocated, those web views were > never released to avoid having to re-allocate them later (which is > expensive). > > Those web views are now released when they are unused and the app is > under memory pressure. > > BUG=587487 > > Committed: https://crrev.com/8a730bd4d690e5c9f9b3639cbedec5b5dc2bbe12 > Cr-Commit-Position: refs/heads/master@{#376431} TBR=msarda@chromium.org,zea@chromium.org,bzanotti@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=587487 Review URL: https://codereview.chromium.org/1713973003 Cr-Commit-Position: refs/heads/master@{#376445}
Diffstat (limited to 'ios')
-rw-r--r--ios/chrome/browser/signin/gaia_auth_fetcher_ios.mm14
-rw-r--r--ios/chrome/browser/signin/gaia_auth_fetcher_ios_private.h8
-rw-r--r--ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm33
3 files changed, 0 insertions, 55 deletions
diff --git a/ios/chrome/browser/signin/gaia_auth_fetcher_ios.mm b/ios/chrome/browser/signin/gaia_auth_fetcher_ios.mm
index 2790a68..a8c3da6 100644
--- a/ios/chrome/browser/signin/gaia_auth_fetcher_ios.mm
+++ b/ios/chrome/browser/signin/gaia_auth_fetcher_ios.mm
@@ -6,8 +6,6 @@
#import <WebKit/WebKit.h>
-#include "base/bind.h"
-#include "base/bind_helpers.h"
#include "base/json/string_escape.h"
#include "base/logging.h"
#import "base/mac/foundation_util.h"
@@ -212,8 +210,6 @@ GaiaAuthFetcherIOSBridge::GaiaAuthFetcherIOSBridge(
web::BrowserState* browser_state)
: browser_state_(browser_state), fetcher_(fetcher), request_() {
web::BrowserState::GetActiveStateManager(browser_state_)->AddObserver(this);
- memory_pressure_listener_.reset(new base::MemoryPressureListener(base::Bind(
- &GaiaAuthFetcherIOSBridge::OnMemoryPressure, base::Unretained(this))));
}
GaiaAuthFetcherIOSBridge::~GaiaAuthFetcherIOSBridge() {
@@ -315,16 +311,6 @@ void GaiaAuthFetcherIOSBridge::OnInactive() {
ResetWKWebView();
}
-void GaiaAuthFetcherIOSBridge::OnMemoryPressure(
- base::MemoryPressureListener::MemoryPressureLevel level) {
- bool is_memory_pressure_critical =
- (level == base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
- if (is_memory_pressure_critical && !request_.pending) {
- // |web_view_| isn't being used, release it.
- ResetWKWebView();
- }
-}
-
#pragma mark - GaiaAuthFetcherIOS definition
GaiaAuthFetcherIOS::GaiaAuthFetcherIOS(GaiaAuthConsumer* consumer,
diff --git a/ios/chrome/browser/signin/gaia_auth_fetcher_ios_private.h b/ios/chrome/browser/signin/gaia_auth_fetcher_ios_private.h
index d7097c6..0fd1a41 100644
--- a/ios/chrome/browser/signin/gaia_auth_fetcher_ios_private.h
+++ b/ios/chrome/browser/signin/gaia_auth_fetcher_ios_private.h
@@ -9,7 +9,6 @@
#import "base/mac/scoped_nsobject.h"
#include "base/macros.h"
-#include "base/memory/memory_pressure_listener.h"
#include "ios/web/public/active_state_manager.h"
class GaiaAuthFetcherIOS;
@@ -93,10 +92,6 @@ class GaiaAuthFetcherIOSBridge : web::ActiveStateManager::Observer {
void OnActive() override;
void OnInactive() override;
- // Memory pressure callback.
- void OnMemoryPressure(
- base::MemoryPressureListener::MemoryPressureLevel level);
-
// Browser state associated with the bridge, used to create WKWebViews.
web::BrowserState* browser_state_;
// Fetcher owning this bridge.
@@ -109,9 +104,6 @@ class GaiaAuthFetcherIOSBridge : web::ActiveStateManager::Observer {
// Web view used to do the network requests.
base::scoped_nsobject<WKWebView> web_view_;
- // Listens to memory pressure notifications.
- scoped_ptr<base::MemoryPressureListener> memory_pressure_listener_;
-
DISALLOW_COPY_AND_ASSIGN(GaiaAuthFetcherIOSBridge);
};
diff --git a/ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm b/ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm
index fea9c49..822ac27 100644
--- a/ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm
+++ b/ios/chrome/browser/signin/gaia_auth_fetcher_ios_unittest.mm
@@ -72,7 +72,6 @@ class GaiaAuthFetcherIOSTest : public PlatformTest {
return gaia_auth_fetcher_->bridge_.get();
}
- bool HasWKWebView() { return gaia_auth_fetcher_->bridge_->web_view_; }
id GetMockWKWebView() { return gaia_auth_fetcher_->bridge_->GetWKWebView(); }
web::TestWebThreadBundle thread_bundle_;
@@ -192,35 +191,3 @@ TEST_F(GaiaAuthFetcherIOSTest, StopOnInactiveReFetchOnActive) {
web::BrowserState::GetActiveStateManager(&browser_state_)->SetActive(true);
EXPECT_OCMOCK_VERIFY(GetMockWKWebView());
}
-
-// Tests that the web view is not released when receiving a memory pressure
-// notification if it is being used.
-TEST_F(GaiaAuthFetcherIOSTest, UsedWebViewNotReleasedOnMemoryPressure) {
- [static_cast<WKWebView*>([GetMockWKWebView() expect])
- loadRequest:[OCMArg any]];
- gaia_auth_fetcher_->StartMergeSession("uber_token", "");
-
- base::MemoryPressureListener::NotifyMemoryPressure(
- base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
- base::RunLoop().RunUntilIdle();
-
- EXPECT_TRUE(HasWKWebView());
- EXPECT_OCMOCK_VERIFY(GetMockWKWebView());
-}
-
-// Tests that the web view is correctly released when receiving a memory
-// pressure notification if it is not being used.
-TEST_F(GaiaAuthFetcherIOSTest, UnusedWebViewReleasedOnMemoryPressure) {
- EXPECT_CALL(consumer_, OnMergeSessionSuccess("data")).Times(1);
- [static_cast<WKWebView*>([[GetMockWKWebView() expect] andDo:^(NSInvocation*) {
- GetBridge()->URLFetchSuccess("data");
- }]) loadRequest:[OCMArg any]];
- gaia_auth_fetcher_->StartMergeSession("uber_token", "");
-
- base::MemoryPressureListener::NotifyMemoryPressure(
- base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL);
- base::RunLoop().RunUntilIdle();
-
- EXPECT_FALSE(HasWKWebView());
- EXPECT_OCMOCK_VERIFY(GetMockWKWebView());
-}