Merge revision 561 changes:

- Fix problem with CefBrowser::GetMainFrame() clearing the frame URL value (issue #556).

git-svn-id: https://chromiumembedded.googlecode.com/svn/branches/1025@562 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2012-03-30 17:19:41 +00:00
parent 0d33fc8cd2
commit 7ab2a3b36a
2 changed files with 28 additions and 1 deletions

View File

@ -649,6 +649,7 @@ CefRefPtr<CefFrameImpl> CefBrowserImpl::GetMainCefFrame(int64 id,
if (id != 0)
main_frame_->set_id(id);
if (!url.is_empty())
main_frame_->set_url(url.spec());
return main_frame_;

View File

@ -127,6 +127,21 @@ class HistoryNavTestHandler : public TestHandler {
got_correct_can_go_forward_[nav_].yes();
}
virtual void OnLoadStart(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame) OVERRIDE {
if(browser->IsPopup() || !frame->IsMain())
return;
const NavListItem& item = kNavList[nav_];
got_load_start_[nav_].yes();
std::string url1 = browser->GetMainFrame()->GetURL();
std::string url2 = frame->GetURL();
if (url1 == item.target && url2 == item.target)
got_correct_load_start_url_[nav_].yes();
}
virtual void OnLoadEnd(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int httpStatusCode) OVERRIDE {
@ -137,6 +152,11 @@ class HistoryNavTestHandler : public TestHandler {
got_load_end_[nav_].yes();
std::string url1 = browser->GetMainFrame()->GetURL();
std::string url2 = frame->GetURL();
if (url1 == item.target && url2 == item.target)
got_correct_load_end_url_[nav_].yes();
if (item.can_go_back == browser->CanGoBack())
got_correct_can_go_back2_[nav_].yes();
if (item.can_go_forward == browser->CanGoForward())
@ -154,7 +174,10 @@ class HistoryNavTestHandler : public TestHandler {
TrackCallback got_nav_state_change_[NAV_LIST_SIZE()];
TrackCallback got_correct_can_go_back_[NAV_LIST_SIZE()];
TrackCallback got_correct_can_go_forward_[NAV_LIST_SIZE()];
TrackCallback got_load_start_[NAV_LIST_SIZE()];
TrackCallback got_correct_load_start_url_[NAV_LIST_SIZE()];
TrackCallback got_load_end_[NAV_LIST_SIZE()];
TrackCallback got_correct_load_end_url_[NAV_LIST_SIZE()];
TrackCallback got_correct_can_go_back2_[NAV_LIST_SIZE()];
TrackCallback got_correct_can_go_forward2_[NAV_LIST_SIZE()];
};
@ -172,6 +195,8 @@ TEST(NavigationTest, History) {
ASSERT_TRUE(handler->got_before_browse_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_correct_target_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_correct_nav_type_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_load_start_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_correct_load_start_url_[i]) << "i = " << i;
}
if (i == 0 || kNavList[i].can_go_back != kNavList[i-1].can_go_back ||
@ -188,6 +213,7 @@ TEST(NavigationTest, History) {
if (kNavList[i].action != NA_CLEAR) {
ASSERT_TRUE(handler->got_load_end_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_correct_load_end_url_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_correct_can_go_back2_[i]) << "i = " << i;
ASSERT_TRUE(handler->got_correct_can_go_forward2_[i]) << "i = " << i;
}