Filter out x-frame-options header on user's request.
This commit is contained in:
parent
0ad4c3ca93
commit
73262be2c2
1 changed files with 19 additions and 2 deletions
|
@ -5,11 +5,19 @@
|
||||||
#include "atom/browser/atom_resource_dispatcher_host_delegate.h"
|
#include "atom/browser/atom_resource_dispatcher_host_delegate.h"
|
||||||
|
|
||||||
#include "base/logging.h"
|
#include "base/logging.h"
|
||||||
|
#include "content/public/browser/render_frame_host.h"
|
||||||
|
#include "content/public/browser/resource_request_info.h"
|
||||||
#include "net/http/http_response_headers.h"
|
#include "net/http/http_response_headers.h"
|
||||||
#include "net/url_request/url_request.h"
|
#include "net/url_request/url_request.h"
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
const char* kDisableXFrameOptions = "disable-x-frame-options";
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
AtomResourceDispatcherHostDelegate::AtomResourceDispatcherHostDelegate() {
|
AtomResourceDispatcherHostDelegate::AtomResourceDispatcherHostDelegate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,11 +29,20 @@ void AtomResourceDispatcherHostDelegate::OnResponseStarted(
|
||||||
content::ResourceContext* resource_context,
|
content::ResourceContext* resource_context,
|
||||||
content::ResourceResponse* response,
|
content::ResourceResponse* response,
|
||||||
IPC::Sender* sender) {
|
IPC::Sender* sender) {
|
||||||
/*
|
// Check if frame's name contains "disable-x-frame-options"
|
||||||
|
int p, f;
|
||||||
|
if (!content::ResourceRequestInfo::GetRenderFrameForRequest(request, &p, &f))
|
||||||
|
return;
|
||||||
|
content::RenderFrameHost* frame = content::RenderFrameHost::FromID(p, f);
|
||||||
|
if (!frame)
|
||||||
|
return;
|
||||||
|
if (frame->GetFrameName().find(kDisableXFrameOptions) == std::string::npos)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Remove the "X-Frame-Options" from response headers.
|
||||||
net::HttpResponseHeaders* response_headers = request->response_headers();
|
net::HttpResponseHeaders* response_headers = request->response_headers();
|
||||||
if (response_headers && response_headers->HasHeader("x-frame-options"))
|
if (response_headers && response_headers->HasHeader("x-frame-options"))
|
||||||
response_headers->RemoveHeader("x-frame-options");
|
response_headers->RemoveHeader("x-frame-options");
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace atom
|
} // namespace atom
|
||||||
|
|
Loading…
Reference in a new issue