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/bind.h" | 6 #include "base/bind.h" |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/memory/shared_memory.h" | 8 #include "base/memory/shared_memory.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
361 view()->NotifyOnClose(); | 361 view()->NotifyOnClose(); |
362 } | 362 } |
363 | 363 |
364 private: | 364 private: |
365 DevToolsAgent* agent() { | 365 DevToolsAgent* agent() { |
366 return frame()->devtools_agent(); | 366 return frame()->devtools_agent(); |
367 } | 367 } |
368 }; | 368 }; |
369 | 369 |
370 // Test for https://crbug.com/461191. | 370 // Test for https://crbug.com/461191. |
371 TEST_F(RenderViewImplTest, RenderFrameMessageAfterDetach) { | 371 TEST_F(RenderViewImplTest, RenderFrameMessageAfterDetach) { |
lfg
2015/05/08 19:42:27
After the changes the test is not testing for the
nasko
2015/05/11 16:12:33
I was looking around for a way to rewrite the test
| |
372 // Create a new main frame RenderFrame so that we don't interfere with the | 372 // Create a new main frame RenderFrame so that we don't interfere with the |
373 // shutdown of frame() in RenderViewTest.TearDown. | 373 // shutdown of frame() in RenderViewTest.TearDown. |
374 blink::WebURLRequest popup_request(GURL("http://foo.com")); | 374 blink::WebURLRequest popup_request(GURL("http://foo.com")); |
375 blink::WebView* new_web_view = view()->createView( | 375 blink::WebView* new_web_view = view()->createView( |
376 GetMainFrame(), popup_request, blink::WebWindowFeatures(), "foo", | 376 GetMainFrame(), popup_request, blink::WebWindowFeatures(), "foo", |
377 blink::WebNavigationPolicyNewForegroundTab, false); | 377 blink::WebNavigationPolicyNewForegroundTab, false); |
378 RenderViewImpl* new_view = RenderViewImpl::FromWebView(new_web_view); | 378 RenderViewImpl* new_view = RenderViewImpl::FromWebView(new_web_view); |
379 RenderFrameImpl* new_frame = | |
380 static_cast<RenderFrameImpl*>(new_view->GetMainRenderFrame()); | |
381 | 379 |
382 // Detach the main frame. | 380 // Detach the main frame. |
383 new_view->Close(); | 381 new_view->Close(); |
384 | 382 |
385 // Before the frame is asynchronously deleted, it may receive a message. | 383 // Deleted RenderFrame cannot receive IPCs. |
386 // We should not crash here, and the message should not be processed. | 384 EXPECT_FALSE(new_view->GetMainRenderFrame()); |
387 scoped_ptr<const IPC::Message> msg( | |
388 new FrameMsg_Stop(frame()->GetRoutingID())); | |
389 EXPECT_FALSE(new_frame->OnMessageReceived(*msg)); | |
390 | 385 |
391 // Clean up after the new view so we don't leak it. | 386 // Clean up after the new view so we don't leak it. |
392 new_view->Release(); | 387 new_view->Release(); |
393 } | 388 } |
394 | 389 |
395 TEST_F(RenderViewImplTest, SaveImageFromDataURL) { | 390 TEST_F(RenderViewImplTest, SaveImageFromDataURL) { |
396 const IPC::Message* msg1 = render_thread_->sink().GetFirstMessageMatching( | 391 const IPC::Message* msg1 = render_thread_->sink().GetFirstMessageMatching( |
397 ViewHostMsg_SaveImageFromDataURL::ID); | 392 ViewHostMsg_SaveImageFromDataURL::ID); |
398 EXPECT_FALSE(msg1); | 393 EXPECT_FALSE(msg1); |
399 render_thread_->sink().ClearMessages(); | 394 render_thread_->sink().ClearMessages(); |
(...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2007 // expected result. | 2002 // expected result. |
2008 const int kMaxOutputCharacters = 256; | 2003 const int kMaxOutputCharacters = 256; |
2009 std::string output = base::UTF16ToUTF8( | 2004 std::string output = base::UTF16ToUTF8( |
2010 GetMainFrame()->contentAsText(kMaxOutputCharacters)); | 2005 GetMainFrame()->contentAsText(kMaxOutputCharacters)); |
2011 EXPECT_EQ(output, "hello \n\nworld"); | 2006 EXPECT_EQ(output, "hello \n\nworld"); |
2012 } | 2007 } |
2013 | 2008 |
2014 // This test ensures that a RenderFrame object is created for the top level | 2009 // This test ensures that a RenderFrame object is created for the top level |
2015 // frame in the RenderView. | 2010 // frame in the RenderView. |
2016 TEST_F(RenderViewImplTest, BasicRenderFrame) { | 2011 TEST_F(RenderViewImplTest, BasicRenderFrame) { |
2017 EXPECT_TRUE(view()->main_render_frame_.get()); | 2012 EXPECT_TRUE(view()->main_render_frame_); |
2018 } | 2013 } |
2019 | 2014 |
2020 TEST_F(RenderViewImplTest, GetSSLStatusOfFrame) { | 2015 TEST_F(RenderViewImplTest, GetSSLStatusOfFrame) { |
2021 LoadHTML("<!DOCTYPE html><html><body></body></html>"); | 2016 LoadHTML("<!DOCTYPE html><html><body></body></html>"); |
2022 | 2017 |
2023 WebLocalFrame* frame = GetMainFrame(); | 2018 WebLocalFrame* frame = GetMainFrame(); |
2024 SSLStatus ssl_status = view()->GetSSLStatusOfFrame(frame); | 2019 SSLStatus ssl_status = view()->GetSSLStatusOfFrame(frame); |
2025 EXPECT_FALSE(net::IsCertStatusError(ssl_status.cert_status)); | 2020 EXPECT_FALSE(net::IsCertStatusError(ssl_status.cert_status)); |
2026 | 2021 |
2027 const_cast<blink::WebURLResponse&>(frame->dataSource()->response()). | 2022 const_cast<blink::WebURLResponse&>(frame->dataSource()->response()). |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2434 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind( | 2429 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind( |
2435 &DevToolsAgentTest::CloseWhilePaused, base::Unretained(this))); | 2430 &DevToolsAgentTest::CloseWhilePaused, base::Unretained(this))); |
2436 ExecuteJavaScript("debugger;"); | 2431 ExecuteJavaScript("debugger;"); |
2437 | 2432 |
2438 // CloseWhilePaused should resume execution and continue here. | 2433 // CloseWhilePaused should resume execution and continue here. |
2439 EXPECT_FALSE(IsPaused()); | 2434 EXPECT_FALSE(IsPaused()); |
2440 Detach(); | 2435 Detach(); |
2441 } | 2436 } |
2442 | 2437 |
2443 } // namespace content | 2438 } // namespace content |
OLD | NEW |