Commit c1e8115d authored by horo@chromium.org's avatar horo@chromium.org

[ServiceWorker] Fills the referrer of WebServiceWorkerRequest.

This change depends on http://crrev.com/329853012 

The tests for this change will be added in the LayoutTests of Blink: http://crrev.com/373713004


BUG=373120

Review URL: https://codereview.chromium.org/373713003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282283 0039d316-1c4b-4281-b951-d872f2087c98
parent 9680d5de
......@@ -456,6 +456,7 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest {
embedded_test_server()->GetURL("/service_worker/empty.html"),
"GET",
std::map<std::string, std::string>(),
GURL(""),
false);
version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
version_->DispatchFetchEvent(
......
......@@ -24,6 +24,7 @@ ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher(
const net::HttpRequestHeaders& headers = request->extra_request_headers();
for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();)
request_.headers[it.name()] = it.value();
request_.referrer = GURL(request->referrer());
const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
if (info) {
request_.is_reload = PageTransitionCoreTypeIs(info->GetPageTransition(),
......
......@@ -31,6 +31,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::ServiceWorkerFetchRequest)
IPC_STRUCT_TRAITS_MEMBER(url)
IPC_STRUCT_TRAITS_MEMBER(method)
IPC_STRUCT_TRAITS_MEMBER(headers)
IPC_STRUCT_TRAITS_MEMBER(referrer)
IPC_STRUCT_TRAITS_MEMBER(is_reload)
IPC_STRUCT_TRAITS_END()
......
......@@ -13,8 +13,13 @@ ServiceWorkerFetchRequest::ServiceWorkerFetchRequest(
const GURL& url,
const std::string& method,
const std::map<std::string, std::string>& headers,
const GURL& referrer,
bool is_reload)
: url(url), method(method), headers(headers), is_reload(is_reload) {
: url(url),
method(method),
headers(headers),
referrer(referrer),
is_reload(is_reload) {
}
ServiceWorkerFetchRequest::~ServiceWorkerFetchRequest() {}
......
......@@ -48,12 +48,14 @@ struct CONTENT_EXPORT ServiceWorkerFetchRequest {
ServiceWorkerFetchRequest(const GURL& url,
const std::string& method,
const std::map<std::string, std::string>& headers,
const GURL& referrer,
bool is_reload);
~ServiceWorkerFetchRequest();
GURL url;
std::string method;
std::map<std::string, std::string> headers;
GURL referrer;
bool is_reload;
};
......
......@@ -10,6 +10,7 @@
#include "content/common/service_worker/service_worker_messages.h"
#include "content/renderer/service_worker/embedded_worker_context_client.h"
#include "ipc/ipc_message.h"
#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
#include "third_party/WebKit/public/platform/WebServiceWorkerRequest.h"
#include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/platform/WebURL.h"
......@@ -135,6 +136,8 @@ void ServiceWorkerScriptContext::OnFetchEvent(
webRequest.setHeader(blink::WebString::fromUTF8(it->first),
blink::WebString::fromUTF8(it->second));
}
webRequest.setReferrer(blink::WebString::fromUTF8(request.referrer.spec()),
blink::WebReferrerPolicyDefault);
webRequest.setIsReload(request.is_reload);
proxy_->dispatchFetchEvent(request_id, webRequest);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment