OLD | NEW |
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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
8 #include "content/browser/devtools/devtools_manager.h" | 8 #include "content/browser/devtools/devtools_manager.h" |
9 #include "content/browser/devtools/shared_worker_devtools_manager.h" | 9 #include "content/browser/devtools/shared_worker_devtools_manager.h" |
10 #include "content/browser/shared_worker/shared_worker_instance.h" | 10 #include "content/browser/shared_worker/shared_worker_instance.h" |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 EXPECT_TRUE(delegate.renderer_unresponsive_received()); | 160 EXPECT_TRUE(delegate.renderer_unresponsive_received()); |
161 | 161 |
162 contents()->SetDelegate(NULL); | 162 contents()->SetDelegate(NULL); |
163 } | 163 } |
164 | 164 |
165 TEST_F(DevToolsManagerTest, ReattachOnCancelPendingNavigation) { | 165 TEST_F(DevToolsManagerTest, ReattachOnCancelPendingNavigation) { |
166 // Navigate to URL. First URL should use first RenderViewHost. | 166 // Navigate to URL. First URL should use first RenderViewHost. |
167 const GURL url("http://www.google.com"); | 167 const GURL url("http://www.google.com"); |
168 controller().LoadURL( | 168 controller().LoadURL( |
169 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 169 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
170 int pending_id = controller().GetPendingEntry()->GetUniqueID(); | |
171 contents()->GetMainFrame()->PrepareForCommit(); | 170 contents()->GetMainFrame()->PrepareForCommit(); |
172 contents()->TestDidNavigate(contents()->GetMainFrame(), 1, pending_id, true, | 171 contents()->TestDidNavigate( |
173 url, ui::PAGE_TRANSITION_TYPED); | 172 contents()->GetMainFrame(), 1, url, ui::PAGE_TRANSITION_TYPED); |
174 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 173 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
175 | 174 |
176 TestDevToolsClientHost client_host; | 175 TestDevToolsClientHost client_host; |
177 client_host.InspectAgentHost( | 176 client_host.InspectAgentHost( |
178 DevToolsAgentHost::GetOrCreateFor(web_contents()).get()); | 177 DevToolsAgentHost::GetOrCreateFor(web_contents()).get()); |
179 | 178 |
180 // Navigate to new site which should get a new RenderViewHost. | 179 // Navigate to new site which should get a new RenderViewHost. |
181 const GURL url2("http://www.yahoo.com"); | 180 const GURL url2("http://www.yahoo.com"); |
182 controller().LoadURL( | 181 controller().LoadURL( |
183 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 182 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
184 contents()->GetMainFrame()->PrepareForCommit(); | 183 contents()->GetMainFrame()->PrepareForCommit(); |
185 EXPECT_TRUE(contents()->CrossProcessNavigationPending()); | 184 EXPECT_TRUE(contents()->CrossProcessNavigationPending()); |
186 EXPECT_EQ(client_host.agent_host(), | 185 EXPECT_EQ(client_host.agent_host(), |
187 DevToolsAgentHost::GetOrCreateFor(web_contents()).get()); | 186 DevToolsAgentHost::GetOrCreateFor(web_contents()).get()); |
188 | 187 |
189 // Interrupt pending navigation and navigate back to the original site. | 188 // Interrupt pending navigation and navigate back to the original site. |
190 controller().LoadURL( | 189 controller().LoadURL( |
191 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 190 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
192 pending_id = controller().GetPendingEntry()->GetUniqueID(); | |
193 contents()->GetMainFrame()->PrepareForCommit(); | 191 contents()->GetMainFrame()->PrepareForCommit(); |
194 contents()->TestDidNavigate(contents()->GetMainFrame(), 1, pending_id, false, | 192 contents()->TestDidNavigate( |
195 url, ui::PAGE_TRANSITION_TYPED); | 193 contents()->GetMainFrame(), 1, url, ui::PAGE_TRANSITION_TYPED); |
196 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); | 194 EXPECT_FALSE(contents()->CrossProcessNavigationPending()); |
197 EXPECT_EQ(client_host.agent_host(), | 195 EXPECT_EQ(client_host.agent_host(), |
198 DevToolsAgentHost::GetOrCreateFor(web_contents()).get()); | 196 DevToolsAgentHost::GetOrCreateFor(web_contents()).get()); |
199 client_host.Close(); | 197 client_host.Close(); |
200 } | 198 } |
201 | 199 |
202 class TestExternalAgentDelegate: public DevToolsExternalAgentProxyDelegate { | 200 class TestExternalAgentDelegate: public DevToolsExternalAgentProxyDelegate { |
203 std::map<std::string,int> event_counter_; | 201 std::map<std::string,int> event_counter_; |
204 | 202 |
205 void recordEvent(const std::string& name) { | 203 void recordEvent(const std::string& name) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 TestDevToolsClientHost client_host; | 240 TestDevToolsClientHost client_host; |
243 client_host.InspectAgentHost(agent_host.get()); | 241 client_host.InspectAgentHost(agent_host.get()); |
244 agent_host->DispatchProtocolMessage("message1"); | 242 agent_host->DispatchProtocolMessage("message1"); |
245 agent_host->DispatchProtocolMessage("message2"); | 243 agent_host->DispatchProtocolMessage("message2"); |
246 agent_host->DispatchProtocolMessage("message2"); | 244 agent_host->DispatchProtocolMessage("message2"); |
247 | 245 |
248 client_host.Close(); | 246 client_host.Close(); |
249 } | 247 } |
250 | 248 |
251 } // namespace content | 249 } // namespace content |
OLD | NEW |