Propagate referrer to new windows (#12397)
* Propagate referrer to new windows Fixes #9205 * Rearrange -new-window event arguments for backwards-compatibility * Plumb referrer policy through guest-window-manager * Document the Referrer structure and its uses * Add tests for referrer in new windows * Docs nits
This commit is contained in:
parent
4316949a1d
commit
f0d08f4da1
14 changed files with 186 additions and 22 deletions
|
@ -481,4 +481,56 @@ v8::Local<v8::Value> Converter<blink::WebCache::ResourceTypeStats>::ToV8(
|
|||
return dict.GetHandle();
|
||||
}
|
||||
|
||||
// static
|
||||
v8::Local<v8::Value> Converter<blink::WebReferrerPolicy>::ToV8(
|
||||
v8::Isolate* isolate,
|
||||
const blink::WebReferrerPolicy& in) {
|
||||
switch (in) {
|
||||
case blink::kWebReferrerPolicyDefault:
|
||||
return mate::StringToV8(isolate, "default");
|
||||
case blink::kWebReferrerPolicyAlways:
|
||||
return mate::StringToV8(isolate, "unsafe-url");
|
||||
case blink::kWebReferrerPolicyNoReferrerWhenDowngrade:
|
||||
return mate::StringToV8(isolate, "no-referrer-when-downgrade");
|
||||
case blink::kWebReferrerPolicyNever:
|
||||
return mate::StringToV8(isolate, "no-referrer");
|
||||
case blink::kWebReferrerPolicyOrigin:
|
||||
return mate::StringToV8(isolate, "origin");
|
||||
case blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin:
|
||||
return mate::StringToV8(isolate, "strict-origin-when-cross-origin");
|
||||
case blink::kWebReferrerPolicySameOrigin:
|
||||
return mate::StringToV8(isolate, "same-origin");
|
||||
case blink::kWebReferrerPolicyStrictOrigin:
|
||||
return mate::StringToV8(isolate, "strict-origin");
|
||||
default:
|
||||
return mate::StringToV8(isolate, "no-referrer");
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
bool Converter<blink::WebReferrerPolicy>::FromV8(v8::Isolate* isolate,
|
||||
v8::Handle<v8::Value> val, blink::WebReferrerPolicy* out) {
|
||||
std::string policy = base::ToLowerASCII(V8ToString(val));
|
||||
if (policy == "default")
|
||||
*out = blink::kWebReferrerPolicyDefault;
|
||||
else if (policy == "unsafe-url")
|
||||
*out = blink::kWebReferrerPolicyAlways;
|
||||
else if (policy == "no-referrer-when-downgrade")
|
||||
*out = blink::kWebReferrerPolicyNoReferrerWhenDowngrade;
|
||||
else if (policy == "no-referrer")
|
||||
*out = blink::kWebReferrerPolicyNever;
|
||||
else if (policy == "origin")
|
||||
*out = blink::kWebReferrerPolicyOrigin;
|
||||
else if (policy == "strict-origin-when-cross-origin")
|
||||
*out =
|
||||
blink::kWebReferrerPolicyNoReferrerWhenDowngradeOriginWhenCrossOrigin;
|
||||
else if (policy == "same-origin")
|
||||
*out = blink::kWebReferrerPolicySameOrigin;
|
||||
else if (policy == "strict-origin")
|
||||
*out = blink::kWebReferrerPolicyStrictOrigin;
|
||||
else
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace mate
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue