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

Side by Side Diff: content/renderer/render_frame_proxy.cc

Issue 2625773002: Reenable framebusting (Closed)
Patch Set: Pass through FrameReplicationState Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_proxy.h" 5 #include "content/renderer/render_frame_proxy.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <map> 8 #include <map>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 DCHECK(web_frame_); 236 DCHECK(web_frame_);
237 web_frame_->setReplicatedOrigin(state.origin); 237 web_frame_->setReplicatedOrigin(state.origin);
238 web_frame_->setReplicatedSandboxFlags(state.sandbox_flags); 238 web_frame_->setReplicatedSandboxFlags(state.sandbox_flags);
239 web_frame_->setReplicatedName(blink::WebString::fromUTF8(state.name), 239 web_frame_->setReplicatedName(blink::WebString::fromUTF8(state.name),
240 blink::WebString::fromUTF8(state.unique_name)); 240 blink::WebString::fromUTF8(state.unique_name));
241 web_frame_->setReplicatedInsecureRequestPolicy(state.insecure_request_policy); 241 web_frame_->setReplicatedInsecureRequestPolicy(state.insecure_request_policy);
242 web_frame_->setReplicatedPotentiallyTrustworthyUniqueOrigin( 242 web_frame_->setReplicatedPotentiallyTrustworthyUniqueOrigin(
243 state.has_potentially_trustworthy_unique_origin); 243 state.has_potentially_trustworthy_unique_origin);
244 web_frame_->setReplicatedFeaturePolicyHeader( 244 web_frame_->setReplicatedFeaturePolicyHeader(
245 ToWebParsedFeaturePolicy(state.feature_policy_header)); 245 ToWebParsedFeaturePolicy(state.feature_policy_header));
246 if (state.has_received_user_gesture)
247 web_frame_->setHasReceivedUserGesture();
246 248
247 web_frame_->resetReplicatedContentSecurityPolicy(); 249 web_frame_->resetReplicatedContentSecurityPolicy();
248 for (const auto& header : state.accumulated_csp_headers) 250 for (const auto& header : state.accumulated_csp_headers)
249 OnAddContentSecurityPolicy(header); 251 OnAddContentSecurityPolicy(header);
250 } 252 }
251 253
252 // Update the proxy's SecurityContext and FrameOwner with new sandbox flags 254 // Update the proxy's SecurityContext and FrameOwner with new sandbox flags
253 // that were set by its parent in another process. 255 // that were set by its parent in another process.
254 // 256 //
255 // Normally, when a frame's sandbox attribute is changed dynamically, the 257 // Normally, when a frame's sandbox attribute is changed dynamically, the
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 IPC_MESSAGE_HANDLER(FrameMsg_ResetContentSecurityPolicy, 297 IPC_MESSAGE_HANDLER(FrameMsg_ResetContentSecurityPolicy,
296 OnResetContentSecurityPolicy) 298 OnResetContentSecurityPolicy)
297 IPC_MESSAGE_HANDLER(FrameMsg_EnforceInsecureRequestPolicy, 299 IPC_MESSAGE_HANDLER(FrameMsg_EnforceInsecureRequestPolicy,
298 OnEnforceInsecureRequestPolicy) 300 OnEnforceInsecureRequestPolicy)
299 IPC_MESSAGE_HANDLER(FrameMsg_SetFrameOwnerProperties, 301 IPC_MESSAGE_HANDLER(FrameMsg_SetFrameOwnerProperties,
300 OnSetFrameOwnerProperties) 302 OnSetFrameOwnerProperties)
301 IPC_MESSAGE_HANDLER(FrameMsg_DidUpdateOrigin, OnDidUpdateOrigin) 303 IPC_MESSAGE_HANDLER(FrameMsg_DidUpdateOrigin, OnDidUpdateOrigin)
302 IPC_MESSAGE_HANDLER(InputMsg_SetFocus, OnSetPageFocus) 304 IPC_MESSAGE_HANDLER(InputMsg_SetFocus, OnSetPageFocus)
303 IPC_MESSAGE_HANDLER(FrameMsg_SetFocusedFrame, OnSetFocusedFrame) 305 IPC_MESSAGE_HANDLER(FrameMsg_SetFocusedFrame, OnSetFocusedFrame)
304 IPC_MESSAGE_HANDLER(FrameMsg_WillEnterFullscreen, OnWillEnterFullscreen) 306 IPC_MESSAGE_HANDLER(FrameMsg_WillEnterFullscreen, OnWillEnterFullscreen)
307 IPC_MESSAGE_HANDLER(FrameMsg_SetHasReceivedUserGesture,
308 OnSetHasReceivedUserGesture)
305 IPC_MESSAGE_UNHANDLED(handled = false) 309 IPC_MESSAGE_UNHANDLED(handled = false)
306 IPC_END_MESSAGE_MAP() 310 IPC_END_MESSAGE_MAP()
307 311
308 // Note: If |handled| is true, |this| may have been deleted. 312 // Note: If |handled| is true, |this| may have been deleted.
309 return handled; 313 return handled;
310 } 314 }
311 315
312 bool RenderFrameProxy::Send(IPC::Message* message) { 316 bool RenderFrameProxy::Send(IPC::Message* message) {
313 return RenderThread::Get()->Send(message); 317 return RenderThread::Get()->Send(message);
314 } 318 }
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 void RenderFrameProxy::OnSetFocusedFrame() { 406 void RenderFrameProxy::OnSetFocusedFrame() {
403 // This uses focusDocumentView rather than setFocusedFrame so that blur 407 // This uses focusDocumentView rather than setFocusedFrame so that blur
404 // events are properly dispatched on any currently focused elements. 408 // events are properly dispatched on any currently focused elements.
405 render_view_->webview()->focusDocumentView(web_frame_); 409 render_view_->webview()->focusDocumentView(web_frame_);
406 } 410 }
407 411
408 void RenderFrameProxy::OnWillEnterFullscreen() { 412 void RenderFrameProxy::OnWillEnterFullscreen() {
409 web_frame_->willEnterFullscreen(); 413 web_frame_->willEnterFullscreen();
410 } 414 }
411 415
416 void RenderFrameProxy::OnSetHasReceivedUserGesture() {
417 web_frame_->setHasReceivedUserGesture();
418 }
419
412 void RenderFrameProxy::frameDetached(DetachType type) { 420 void RenderFrameProxy::frameDetached(DetachType type) {
413 if (type == DetachType::Remove && web_frame_->parent()) { 421 if (type == DetachType::Remove && web_frame_->parent()) {
414 web_frame_->parent()->removeChild(web_frame_); 422 web_frame_->parent()->removeChild(web_frame_);
415 423
416 // Let the browser process know this subframe is removed, so that it is 424 // Let the browser process know this subframe is removed, so that it is
417 // destroyed in its current process. 425 // destroyed in its current process.
418 Send(new FrameHostMsg_Detach(routing_id_)); 426 Send(new FrameHostMsg_Detach(routing_id_));
419 } 427 }
420 428
421 web_frame_->close(); 429 web_frame_->close();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 void RenderFrameProxy::updateRemoteViewportIntersection( 504 void RenderFrameProxy::updateRemoteViewportIntersection(
497 const blink::WebRect& viewportIntersection) { 505 const blink::WebRect& viewportIntersection) {
498 Send(new FrameHostMsg_UpdateViewportIntersection( 506 Send(new FrameHostMsg_UpdateViewportIntersection(
499 routing_id_, gfx::Rect(viewportIntersection))); 507 routing_id_, gfx::Rect(viewportIntersection)));
500 } 508 }
501 509
502 void RenderFrameProxy::visibilityChanged(bool visible) { 510 void RenderFrameProxy::visibilityChanged(bool visible) {
503 Send(new FrameHostMsg_VisibilityChanged(routing_id_, visible)); 511 Send(new FrameHostMsg_VisibilityChanged(routing_id_, visible));
504 } 512 }
505 513
506 void RenderFrameProxy::setHasReceivedUserGesture() {
507 Send(new FrameHostMsg_SetHasReceivedUserGesture(routing_id_));
508 }
509
510 void RenderFrameProxy::didChangeOpener(blink::WebFrame* opener) { 514 void RenderFrameProxy::didChangeOpener(blink::WebFrame* opener) {
511 // A proxy shouldn't normally be disowning its opener. It is possible to get 515 // A proxy shouldn't normally be disowning its opener. It is possible to get
512 // here when a proxy that is being detached clears its opener, in which case 516 // here when a proxy that is being detached clears its opener, in which case
513 // there is no need to notify the browser process. 517 // there is no need to notify the browser process.
514 if (!opener) 518 if (!opener)
515 return; 519 return;
516 520
517 // Only a LocalFrame (i.e., the caller of window.open) should be able to 521 // Only a LocalFrame (i.e., the caller of window.open) should be able to
518 // update another frame's opener. 522 // update another frame's opener.
519 DCHECK(opener->isWebLocalFrame()); 523 DCHECK(opener->isWebLocalFrame());
520 524
521 int opener_routing_id = 525 int opener_routing_id =
522 RenderFrameImpl::FromWebFrame(opener->toWebLocalFrame())->GetRoutingID(); 526 RenderFrameImpl::FromWebFrame(opener->toWebLocalFrame())->GetRoutingID();
523 Send(new FrameHostMsg_DidChangeOpener(routing_id_, opener_routing_id)); 527 Send(new FrameHostMsg_DidChangeOpener(routing_id_, opener_routing_id));
524 } 528 }
525 529
526 void RenderFrameProxy::advanceFocus(blink::WebFocusType type, 530 void RenderFrameProxy::advanceFocus(blink::WebFocusType type,
527 blink::WebLocalFrame* source) { 531 blink::WebLocalFrame* source) {
528 int source_routing_id = RenderFrameImpl::FromWebFrame(source)->GetRoutingID(); 532 int source_routing_id = RenderFrameImpl::FromWebFrame(source)->GetRoutingID();
529 Send(new FrameHostMsg_AdvanceFocus(routing_id_, type, source_routing_id)); 533 Send(new FrameHostMsg_AdvanceFocus(routing_id_, type, source_routing_id));
530 } 534 }
531 535
532 void RenderFrameProxy::frameFocused() { 536 void RenderFrameProxy::frameFocused() {
533 Send(new FrameHostMsg_FrameFocused(routing_id_)); 537 Send(new FrameHostMsg_FrameFocused(routing_id_));
534 } 538 }
535 539
536 } // namespace 540 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698