summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_host.h
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-15 20:56:47 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-15 20:56:47 +0000
commitea2a7b919337fb796c8602f1701b60d8fa2d7f42 (patch)
tree61ab4cb64a4aa0c64e94a5280a7d7f4e35062855 /webkit/appcache/appcache_host.h
parentc468f9498bcb426edb87cb803a03a63e793e8222 (diff)
downloadchromium_src-ea2a7b919337fb796c8602f1701b60d8fa2d7f42.zip
chromium_src-ea2a7b919337fb796c8602f1701b60d8fa2d7f42.tar.gz
chromium_src-ea2a7b919337fb796c8602f1701b60d8fa2d7f42.tar.bz2
Select a more appropiate appcache based on the opener or the parent or the target frame of the new document. The change determines a 'preferred manifest url' in these cases:
* <iframe> loading, we prefer the parent frame's manifest url * window.open() loading, we prefer the opener frame's manifest url * href clicking to navigate a frame in place, we prefer the manifest url of the document in the frame when the navigation starts BUG=68479 Review URL: http://codereview.chromium.org/6727006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81801 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_host.h')
-rw-r--r--webkit/appcache/appcache_host.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/webkit/appcache/appcache_host.h b/webkit/appcache/appcache_host.h
index c449982..6f25a57 100644
--- a/webkit/appcache/appcache_host.h
+++ b/webkit/appcache/appcache_host.h
@@ -71,6 +71,22 @@ class AppCacheHost : public AppCacheStorage::Delegate,
void SwapCacheWithCallback(SwapCacheCallback* callback,
void* callback_param);
+ // Called prior to the main resource load. When the system contains multiple
+ // candidates for a main resource load, the appcache preferred by the host
+ // that created this host is used to break ties.
+ void SetSpawningHostId(int spawning_process_id, int spawning_host_id);
+
+ // May return NULL if the spawning host context has been closed, or if a
+ // spawning host context was never identified.
+ const AppCacheHost* GetSpawningHost() const;
+
+ const GURL& preferred_manifest_url() const {
+ return preferred_manifest_url_;
+ }
+ void set_preferred_manifest_url(const GURL& url) {
+ preferred_manifest_url_ = url;
+ }
+
// Support for loading resources out of the appcache.
// May return NULL if the request isn't subject to retrieval from an appache.
AppCacheRequestHandler* CreateRequestHandler(
@@ -149,6 +165,13 @@ class AppCacheHost : public AppCacheStorage::Delegate,
// Identifies the corresponding appcache host in the child process.
int host_id_;
+ // Information about the host that created this one; the manifest
+ // preferred by our creator influences which cache our main resource
+ // should be loaded from.
+ int spawning_host_id_;
+ int spawning_process_id_;
+ GURL preferred_manifest_url_;
+
// Hosts for dedicated workers are special cased to shunt
// request handling off to the dedicated worker's parent.
// The scriptable api is not accessible in dedicated workers