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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1658003002: Enable range-based for loops to loop over a WebContents' frame hosts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More stuff. Created 4 years, 10 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <utility> 10 #include <utility>
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 } 178 }
179 179
180 bool HasMatchingProcess(FrameTree* tree, int render_process_id) { 180 bool HasMatchingProcess(FrameTree* tree, int render_process_id) {
181 for (FrameTreeNode* node : tree->Nodes()) { 181 for (FrameTreeNode* node : tree->Nodes()) {
182 if (node->current_frame_host()->GetProcess()->GetID() == render_process_id) 182 if (node->current_frame_host()->GetProcess()->GetID() == render_process_id)
183 return true; 183 return true;
184 } 184 }
185 return false; 185 return false;
186 } 186 }
187 187
188 void SendToAllFramesInternal(int* number_of_messages,
189 IPC::Message* message,
190 RenderFrameHost* rfh) {
191 *number_of_messages = *number_of_messages + 1;
192 IPC::Message* message_copy = new IPC::Message(*message);
193 message_copy->set_routing_id(rfh->GetRoutingID());
194 rfh->Send(message_copy);
195 }
196
197 void AddRenderWidgetHostViewToSet(std::set<RenderWidgetHostView*>* set,
198 RenderFrameHost* rfh) {
199 RenderWidgetHostView* rwhv = static_cast<RenderFrameHostImpl*>(rfh)
200 ->frame_tree_node()
201 ->render_manager()
202 ->GetRenderWidgetHostView();
203 set->insert(rwhv);
204 }
205
206 void SetAccessibilityModeOnFrame(AccessibilityMode mode, 188 void SetAccessibilityModeOnFrame(AccessibilityMode mode,
207 RenderFrameHost* frame_host) { 189 RenderFrameHost* frame_host) {
208 static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode); 190 static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode);
209 } 191 }
210 192
211 void ResetAccessibility(RenderFrameHost* rfh) { 193 void ResetAccessibility(RenderFrameHost* rfh) {
212 static_cast<RenderFrameHostImpl*>(rfh)->AccessibilityReset(); 194 static_cast<RenderFrameHostImpl*>(rfh)->AccessibilityReset();
213 } 195 }
214 196
215 } // namespace 197 } // namespace
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 return frame ? frame->current_frame_host() : nullptr; 762 return frame ? frame->current_frame_host() : nullptr;
781 } 763 }
782 764
783 void WebContentsImpl::ForEachFrame( 765 void WebContentsImpl::ForEachFrame(
784 const base::Callback<void(RenderFrameHost*)>& on_frame) { 766 const base::Callback<void(RenderFrameHost*)>& on_frame) {
785 for (FrameTreeNode* node : frame_tree_.Nodes()) { 767 for (FrameTreeNode* node : frame_tree_.Nodes()) {
786 on_frame.Run(node->current_frame_host()); 768 on_frame.Run(node->current_frame_host());
787 } 769 }
788 } 770 }
789 771
772 std::vector<RenderFrameHost*> WebContentsImpl::FrameHosts() {
773 std::vector<RenderFrameHost*> frame_hosts;
774 for (FrameTreeNode* node : frame_tree_.Nodes())
775 frame_hosts.push_back(node->current_frame_host());
776 return frame_hosts;
777 }
778
790 int WebContentsImpl::SendToAllFrames(IPC::Message* message) { 779 int WebContentsImpl::SendToAllFrames(IPC::Message* message) {
791 int number_of_messages = 0; 780 int number_of_messages = 0;
792 ForEachFrame( 781 for (RenderFrameHost* rfh : FrameHosts()) {
793 base::Bind(&SendToAllFramesInternal, &number_of_messages, message)); 782 ++number_of_messages;
783 IPC::Message* message_copy = new IPC::Message(*message);
784 message_copy->set_routing_id(rfh->GetRoutingID());
785 rfh->Send(message_copy);
786 }
794 delete message; 787 delete message;
795 return number_of_messages; 788 return number_of_messages;
796 } 789 }
797 790
798 RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() const { 791 RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() const {
799 return GetRenderManager()->current_host(); 792 return GetRenderManager()->current_host();
800 } 793 }
801 794
802 int WebContentsImpl::GetRoutingID() const { 795 int WebContentsImpl::GetRoutingID() const {
803 if (!GetRenderViewHost()) 796 if (!GetRenderViewHost())
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 899
907 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 900 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
908 UserAgentOverrideSet(override)); 901 UserAgentOverrideSet(override));
909 } 902 }
910 903
911 const std::string& WebContentsImpl::GetUserAgentOverride() const { 904 const std::string& WebContentsImpl::GetUserAgentOverride() const {
912 return renderer_preferences_.user_agent_override; 905 return renderer_preferences_.user_agent_override;
913 } 906 }
914 907
915 void WebContentsImpl::EnableTreeOnlyAccessibilityMode() { 908 void WebContentsImpl::EnableTreeOnlyAccessibilityMode() {
916 if (GetAccessibilityMode() != AccessibilityModeOff) 909 if (GetAccessibilityMode() != AccessibilityModeOff) {
917 ForEachFrame(base::Bind(&ResetAccessibility)); 910 for (RenderFrameHost* rfh : FrameHosts())
918 else 911 ResetAccessibility(rfh);
912 } else {
919 AddAccessibilityMode(AccessibilityModeTreeOnly); 913 AddAccessibilityMode(AccessibilityModeTreeOnly);
914 }
920 } 915 }
921 916
922 bool WebContentsImpl::IsTreeOnlyAccessibilityModeForTesting() const { 917 bool WebContentsImpl::IsTreeOnlyAccessibilityModeForTesting() const {
923 return accessibility_mode_ == AccessibilityModeTreeOnly; 918 return accessibility_mode_ == AccessibilityModeTreeOnly;
924 } 919 }
925 920
926 bool WebContentsImpl::IsFullAccessibilityModeForTesting() const { 921 bool WebContentsImpl::IsFullAccessibilityModeForTesting() const {
927 return accessibility_mode_ == AccessibilityModeComplete; 922 return accessibility_mode_ == AccessibilityModeComplete;
928 } 923 }
929 924
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
1498 void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) { 1493 void WebContentsImpl::RemoveObserver(WebContentsObserver* observer) {
1499 observers_.RemoveObserver(observer); 1494 observers_.RemoveObserver(observer);
1500 } 1495 }
1501 1496
1502 std::set<RenderWidgetHostView*> 1497 std::set<RenderWidgetHostView*>
1503 WebContentsImpl::GetRenderWidgetHostViewsInTree() { 1498 WebContentsImpl::GetRenderWidgetHostViewsInTree() {
1504 std::set<RenderWidgetHostView*> set; 1499 std::set<RenderWidgetHostView*> set;
1505 if (ShowingInterstitialPage()) { 1500 if (ShowingInterstitialPage()) {
1506 set.insert(GetRenderWidgetHostView()); 1501 set.insert(GetRenderWidgetHostView());
1507 } else { 1502 } else {
1508 ForEachFrame( 1503 for (RenderFrameHost* rfh : FrameHosts()) {
1509 base::Bind(&AddRenderWidgetHostViewToSet, base::Unretained(&set))); 1504 RenderWidgetHostView* rwhv = static_cast<RenderFrameHostImpl*>(rfh)
1505 ->frame_tree_node()
1506 ->render_manager()
1507 ->GetRenderWidgetHostView();
1508 set.insert(rwhv);
1509 }
1510 } 1510 }
1511 return set; 1511 return set;
1512 } 1512 }
1513 1513
1514 void WebContentsImpl::Activate() { 1514 void WebContentsImpl::Activate() {
1515 if (delegate_) 1515 if (delegate_)
1516 delegate_->ActivateContents(this); 1516 delegate_->ActivateContents(this);
1517 } 1517 }
1518 1518
1519 void WebContentsImpl::LostCapture(RenderWidgetHostImpl* render_widget_host) { 1519 void WebContentsImpl::LostCapture(RenderWidgetHostImpl* render_widget_host) {
(...skipping 3231 matching lines...) Expand 10 before | Expand all | Expand 10 after
4751 const WebContentsObserver::MediaPlayerId& id) { 4751 const WebContentsObserver::MediaPlayerId& id) {
4752 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id)); 4752 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStartedPlaying(id));
4753 } 4753 }
4754 4754
4755 void WebContentsImpl::MediaStoppedPlaying( 4755 void WebContentsImpl::MediaStoppedPlaying(
4756 const WebContentsObserver::MediaPlayerId& id) { 4756 const WebContentsObserver::MediaPlayerId& id) {
4757 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id)); 4757 FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id));
4758 } 4758 }
4759 4759
4760 } // namespace content 4760 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698