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

Side by Side Diff: content/test/content_browser_test_utils_internal.cc

Issue 1685213002: Propagate window coordinates to out-of-process iframes renderers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sendscreenrects
Patch Set: fixing ordering in DepictFrameTree 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 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/test/content_browser_test_utils_internal.h" 5 #include "content/test/content_browser_test_utils_internal.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // Traversal 3: Assign names to the proxies and add them to |legend| too. 80 // Traversal 3: Assign names to the proxies and add them to |legend| too.
81 // Typically, only openers should have their names assigned this way. 81 // Typically, only openers should have their names assigned this way.
82 for (to_explore.push(root); !to_explore.empty();) { 82 for (to_explore.push(root); !to_explore.empty();) {
83 FrameTreeNode* node = to_explore.top(); 83 FrameTreeNode* node = to_explore.top();
84 to_explore.pop(); 84 to_explore.pop();
85 for (size_t i = node->child_count(); i-- != 0;) { 85 for (size_t i = node->child_count(); i-- != 0;) {
86 to_explore.push(node->child_at(i)); 86 to_explore.push(node->child_at(i));
87 } 87 }
88 88
89 // Sort the proxies by SiteInstance ID to avoid hash_map ordering. 89 // Sort the proxies by SiteInstance ID to avoid hash_map ordering.
90 std::map<int, RenderFrameProxyHost*> sorted_proxy_hosts = 90 std::vector<SiteInstance*> site_instances;
91 node->render_manager()->GetAllProxyHostsForTesting(); 91 for (const auto& proxy_pair : node->render_manager()->GetAllProxyHosts())
92 for (auto& proxy_pair : sorted_proxy_hosts) { 92 site_instances.push_back(proxy_pair.second->GetSiteInstance());
93 RenderFrameProxyHost* proxy = proxy_pair.second; 93 std::sort(site_instances.begin(), site_instances.end(),
94 legend[GetName(proxy->GetSiteInstance())] = proxy->GetSiteInstance(); 94 [](const SiteInstance* lhs, const SiteInstance* rhs) {
95 } 95 return lhs->GetId() < rhs->GetId();
96 });
97
98 for (SiteInstance* site_instance : site_instances)
99 legend[GetName(site_instance)] = site_instance;
96 } 100 }
97 101
98 // Traversal 4: Now that all names are assigned, make a big loop to pretty- 102 // Traversal 4: Now that all names are assigned, make a big loop to pretty-
99 // print the tree. Each iteration produces exactly one line of format. 103 // print the tree. Each iteration produces exactly one line of format.
100 std::string result; 104 std::string result;
101 for (to_explore.push(root); !to_explore.empty();) { 105 for (to_explore.push(root); !to_explore.empty();) {
102 FrameTreeNode* node = to_explore.top(); 106 FrameTreeNode* node = to_explore.top();
103 to_explore.pop(); 107 to_explore.pop();
104 for (size_t i = node->child_count(); i-- != 0;) { 108 for (size_t i = node->child_count(); i-- != 0;) {
105 to_explore.push(node->child_at(i)); 109 to_explore.push(node->child_at(i));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 if (pending) { 152 if (pending) {
149 base::StringAppendF(&line, " (%s pending)", 153 base::StringAppendF(&line, " (%s pending)",
150 GetName(pending->GetSiteInstance()).c_str()); 154 GetName(pending->GetSiteInstance()).c_str());
151 } 155 }
152 if (spec) { 156 if (spec) {
153 base::StringAppendF(&line, " (%s speculative)", 157 base::StringAppendF(&line, " (%s speculative)",
154 GetName(spec->GetSiteInstance()).c_str()); 158 GetName(spec->GetSiteInstance()).c_str());
155 } 159 }
156 160
157 // Show the SiteInstances of the RenderFrameProxyHosts of this node. 161 // Show the SiteInstances of the RenderFrameProxyHosts of this node.
158 std::map<int, RenderFrameProxyHost*> sorted_proxy_host_map = 162 const auto& proxy_host_map = node->render_manager()->GetAllProxyHosts();
159 node->render_manager()->GetAllProxyHostsForTesting(); 163 if (!proxy_host_map.empty()) {
160 if (!sorted_proxy_host_map.empty()) {
161 // Show a dashed line of variable length before the proxy list. Always at 164 // Show a dashed line of variable length before the proxy list. Always at
162 // least two dashes. 165 // least two dashes.
163 line.append(" --"); 166 line.append(" --");
164 167
165 // To make proxy lists align vertically for the first three tree levels, 168 // To make proxy lists align vertically for the first three tree levels,
166 // pad with dashes up to a first tab stop at column 19 (which works out to 169 // pad with dashes up to a first tab stop at column 19 (which works out to
167 // text editor column 28 in the typical diagram fed to EXPECT_EQ as a 170 // text editor column 28 in the typical diagram fed to EXPECT_EQ as a
168 // string literal). Lining the lists up vertically makes differences in 171 // string literal). Lining the lists up vertically makes differences in
169 // the proxy sets easier to spot visually. We choose not to use the 172 // the proxy sets easier to spot visually. We choose not to use the
170 // *actual* tree height here, because that would make the diagram's 173 // *actual* tree height here, because that would make the diagram's
171 // appearance less stable as the tree's shape evolves. 174 // appearance less stable as the tree's shape evolves.
172 while (line.length() < 20) { 175 while (line.length() < 20) {
173 line.append("-"); 176 line.append("-");
174 } 177 }
175 line.append(" proxies for"); 178 line.append(" proxies for");
176 179
177 // Sort these alphabetically, to avoid hash_map ordering dependency. 180 // Sort these alphabetically, to avoid hash_map ordering dependency.
178 std::vector<std::string> sorted_proxy_hosts; 181 std::vector<std::string> sorted_proxy_hosts;
179 for (auto& proxy_pair : sorted_proxy_host_map) { 182 for (const auto& proxy_pair : proxy_host_map) {
180 sorted_proxy_hosts.push_back( 183 sorted_proxy_hosts.push_back(
181 GetName(proxy_pair.second->GetSiteInstance())); 184 GetName(proxy_pair.second->GetSiteInstance()));
182 } 185 }
183 std::sort(sorted_proxy_hosts.begin(), sorted_proxy_hosts.end()); 186 std::sort(sorted_proxy_hosts.begin(), sorted_proxy_hosts.end());
184 for (std::string& proxy_name : sorted_proxy_hosts) { 187 for (std::string& proxy_name : sorted_proxy_hosts) {
185 base::StringAppendF(&line, " %s", proxy_name.c_str()); 188 base::StringAppendF(&line, " %s", proxy_name.c_str());
186 } 189 }
187 } 190 }
188 if (node != root) 191 if (node != root)
189 result.append("\n"); 192 result.append("\n");
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 content::ResourceContext* resource_context, 266 content::ResourceContext* resource_context,
264 content::AppCacheService* appcache_service, 267 content::AppCacheService* appcache_service,
265 ResourceType resource_type, 268 ResourceType resource_type,
266 ScopedVector<content::ResourceThrottle>* throttles) { 269 ScopedVector<content::ResourceThrottle>* throttles) {
267 DCHECK_CURRENTLY_ON(content::BrowserThread::IO); 270 DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
268 if (request->url() == url_) 271 if (request->url() == url_)
269 throttles->push_back(new HttpRequestStallThrottle); 272 throttles->push_back(new HttpRequestStallThrottle);
270 } 273 }
271 274
272 } // namespace content 275 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698