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

Side by Side Diff: third_party/WebKit/Source/core/frame/LocalFrame.cpp

Issue 2883033003: Propagate inert state to OOPIFs when a modal dialog is active (Closed)
Patch Set: Trying to fix patch application problem Created 3 years, 7 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 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Simon Hausmann <hausmann@kde.org> 5 * 2000 Simon Hausmann <hausmann@kde.org>
6 * 2000 Stefan Schimanski <1Stein@gmx.de> 6 * 2000 Stefan Schimanski <1Stein@gmx.de>
7 * 2001 George Staikos <staikos@kde.org> 7 * 2001 George Staikos <staikos@kde.org>
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
9 * rights reserved. 9 * rights reserved.
10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> 10 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com>
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 return LayoutViewItem(ContentLayoutObject()); 566 return LayoutViewItem(ContentLayoutObject());
567 } 567 }
568 568
569 void LocalFrame::DidChangeVisibilityState() { 569 void LocalFrame::DidChangeVisibilityState() {
570 if (GetDocument()) 570 if (GetDocument())
571 GetDocument()->DidChangeVisibilityState(); 571 GetDocument()->DidChangeVisibilityState();
572 572
573 Frame::DidChangeVisibilityState(); 573 Frame::DidChangeVisibilityState();
574 } 574 }
575 575
576 void LocalFrame::SetIsInert(bool inert) {
577 is_inert_ = inert;
578 for (Frame* child = Tree().FirstChild(); child;
579 child = child->Tree().NextSibling()) {
580 if (child->Owner()) {
581 DCHECK(child->Owner()->IsLocal());
582 child->SetIsInert(inert ||
583 ToHTMLFrameOwnerElement(child->Owner())->IsInert());
584 }
585 }
586 }
587
576 LocalFrame& LocalFrame::LocalFrameRoot() const { 588 LocalFrame& LocalFrame::LocalFrameRoot() const {
577 const LocalFrame* cur_frame = this; 589 const LocalFrame* cur_frame = this;
578 while (cur_frame && cur_frame->Tree().Parent() && 590 while (cur_frame && cur_frame->Tree().Parent() &&
579 cur_frame->Tree().Parent()->IsLocalFrame()) 591 cur_frame->Tree().Parent()->IsLocalFrame())
580 cur_frame = ToLocalFrame(cur_frame->Tree().Parent()); 592 cur_frame = ToLocalFrame(cur_frame->Tree().Parent());
581 593
582 return const_cast<LocalFrame&>(*cur_frame); 594 return const_cast<LocalFrame&>(*cur_frame);
583 } 595 }
584 596
585 bool LocalFrame::IsCrossOriginSubframe() const { 597 bool LocalFrame::IsCrossOriginSubframe() const {
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 editor_(Editor::Create(*this)), 905 editor_(Editor::Create(*this)),
894 spell_checker_(SpellChecker::Create(*this)), 906 spell_checker_(SpellChecker::Create(*this)),
895 selection_(FrameSelection::Create(*this)), 907 selection_(FrameSelection::Create(*this)),
896 event_handler_(new EventHandler(*this)), 908 event_handler_(new EventHandler(*this)),
897 console_(FrameConsole::Create(*this)), 909 console_(FrameConsole::Create(*this)),
898 input_method_controller_(InputMethodController::Create(*this)), 910 input_method_controller_(InputMethodController::Create(*this)),
899 navigation_disable_count_(0), 911 navigation_disable_count_(0),
900 page_zoom_factor_(ParentPageZoomFactor(this)), 912 page_zoom_factor_(ParentPageZoomFactor(this)),
901 text_zoom_factor_(ParentTextZoomFactor(this)), 913 text_zoom_factor_(ParentTextZoomFactor(this)),
902 in_view_source_mode_(false), 914 in_view_source_mode_(false),
915 is_inert_(false),
903 interface_provider_(interface_provider), 916 interface_provider_(interface_provider),
904 interface_registry_(interface_registry) { 917 interface_registry_(interface_registry) {
905 if (IsLocalRoot()) { 918 if (IsLocalRoot()) {
906 probe_sink_ = new CoreProbeSink(); 919 probe_sink_ = new CoreProbeSink();
907 performance_monitor_ = new PerformanceMonitor(this); 920 performance_monitor_ = new PerformanceMonitor(this);
908 } else { 921 } else {
909 probe_sink_ = LocalFrameRoot().probe_sink_; 922 probe_sink_ = LocalFrameRoot().probe_sink_;
910 performance_monitor_ = LocalFrameRoot().performance_monitor_; 923 performance_monitor_ = LocalFrameRoot().performance_monitor_;
911 } 924 }
912 } 925 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
966 if (Client() && 979 if (Client() &&
967 Client()->ShouldUseClientLoFiForRequest(params.GetResourceRequest())) { 980 Client()->ShouldUseClientLoFiForRequest(params.GetResourceRequest())) {
968 params.MutableResourceRequest().SetPreviewsState( 981 params.MutableResourceRequest().SetPreviewsState(
969 params.GetResourceRequest().GetPreviewsState() | 982 params.GetResourceRequest().GetPreviewsState() |
970 WebURLRequest::kClientLoFiOn); 983 WebURLRequest::kClientLoFiOn);
971 params.SetAllowImagePlaceholder(); 984 params.SetAllowImagePlaceholder();
972 } 985 }
973 } 986 }
974 987
975 } // namespace blink 988 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698