Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1747)

Unified Diff: android_webview/renderer/aw_render_frame_ext.cc

Issue 1785493002: Move cache clearing from AwRenderViewExt to AwRenderFrameExt. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/renderer/aw_render_frame_ext.h ('k') | android_webview/renderer/aw_render_view_ext.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/renderer/aw_render_frame_ext.cc
diff --git a/android_webview/renderer/aw_render_frame_ext.cc b/android_webview/renderer/aw_render_frame_ext.cc
index 69b06f05458d8f66dd32f89e7b9c987892e3d47e..61c8025b63d1e7b8518654b2ec7ffd8184670fd2 100644
--- a/android_webview/renderer/aw_render_frame_ext.cc
+++ b/android_webview/renderer/aw_render_frame_ext.cc
@@ -17,6 +17,7 @@
#include "third_party/WebKit/public/web/WebElementCollection.h"
#include "third_party/WebKit/public/web/WebFrameWidget.h"
#include "third_party/WebKit/public/web/WebHitTestResult.h"
+#include "third_party/WebKit/public/web/WebImageCache.h"
#include "third_party/WebKit/public/web/WebLocalFrame.h"
#include "third_party/WebKit/public/web/WebMeaningfulLayout.h"
#include "third_party/WebKit/public/web/WebNode.h"
@@ -146,6 +147,21 @@ void AwRenderFrameExt::DidCommitProvisionalLoad(bool is_new_navigation,
blink::WebSecurityOrigin origin = frame->document().getSecurityOrigin();
origin.grantLoadLocalResources();
}
+
+ // Clear the cache when we cross site boundaries in the main frame.
+ //
+ // We're trying to approximate what happens with a multi-process Chromium,
+ // where navigation across origins would cause a new render process to spin
+ // up, and thus start with a clear cache. Wiring up a signal from browser to
+ // renderer code to say "this navigation would have switched processes" would
+ // be disruptive, so this clearing of the cache is the compromise.
+ if (!frame->parent()) {
+ url::Origin new_origin(frame->document().url());
+ if (!new_origin.IsSameOriginWith(last_origin_)) {
+ last_origin_ = new_origin;
+ blink::WebImageCache::clear();
+ }
+ }
}
bool AwRenderFrameExt::OnMessageReceived(const IPC::Message& message) {
« no previous file with comments | « android_webview/renderer/aw_render_frame_ext.h ('k') | android_webview/renderer/aw_render_view_ext.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698