OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // This file contains the implementation of TestWebViewDelegate, which serves | 5 // This file contains the implementation of TestWebViewDelegate, which serves |
6 // as the WebViewDelegate for the TestShellWebHost. The host is expected to | 6 // as the WebViewDelegate for the TestShellWebHost. The host is expected to |
7 // have initialized a MessageLoop before these methods are called. | 7 // have initialized a MessageLoop before these methods are called. |
8 | 8 |
9 #include "config.h" | 9 #include "config.h" |
10 | 10 |
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 if (!dataSource) | 787 if (!dataSource) |
788 return; | 788 return; |
789 | 789 |
790 SetAddressBarURL(dataSource->GetRequest().GetMainDocumentURL()); | 790 SetAddressBarURL(dataSource->GetRequest().GetMainDocumentURL()); |
791 } | 791 } |
792 | 792 |
793 void TestWebViewDelegate::LocationChangeDone(WebFrame* frame) { | 793 void TestWebViewDelegate::LocationChangeDone(WebFrame* frame) { |
794 if (frame == top_loading_frame_) { | 794 if (frame == top_loading_frame_) { |
795 top_loading_frame_ = NULL; | 795 top_loading_frame_ = NULL; |
796 | 796 |
797 // It is important to update the content state for the current navigation | |
798 // entry in case we are done with the test and need to dump the back/ | |
799 // forward list. | |
800 std::string state; | |
801 if (shell_->webView()->GetMainFrame()->GetCurrentHistoryState(&state)) { | |
802 TestNavigationEntry* entry = | |
803 shell_->navigation_controller()->GetLastCommittedEntry(); | |
804 if (entry) | |
805 entry->SetContentState(state); | |
806 } | |
807 | |
808 if (shell_->layout_test_mode()) | 797 if (shell_->layout_test_mode()) |
809 shell_->layout_test_controller()->LocationChangeDone(); | 798 shell_->layout_test_controller()->LocationChangeDone(); |
810 } | 799 } |
811 } | 800 } |
812 | 801 |
813 WebWidgetHost* TestWebViewDelegate::GetHostForWidget(WebWidget* webwidget) { | 802 WebWidgetHost* TestWebViewDelegate::GetHostForWidget(WebWidget* webwidget) { |
814 if (webwidget == shell_->webView()) | 803 if (webwidget == shell_->webView()) |
815 return shell_->webViewHost(); | 804 return shell_->webViewHost(); |
816 if (webwidget == shell_->popup()) | 805 if (webwidget == shell_->popup()) |
817 return shell_->popupHost(); | 806 return shell_->popupHost(); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
857 | 846 |
858 // Bug 654101: the referrer will be empty on https->http transitions. It | 847 // Bug 654101: the referrer will be empty on https->http transitions. It |
859 // would be nice if we could get the real referrer from somewhere. | 848 // would be nice if we could get the real referrer from somewhere. |
860 entry->SetPageID(page_id_); | 849 entry->SetPageID(page_id_); |
861 if (ds->HasUnreachableURL()) { | 850 if (ds->HasUnreachableURL()) { |
862 entry->SetURL(GURL(ds->GetUnreachableURL())); | 851 entry->SetURL(GURL(ds->GetUnreachableURL())); |
863 } else { | 852 } else { |
864 entry->SetURL(GURL(request.GetURL())); | 853 entry->SetURL(GURL(request.GetURL())); |
865 } | 854 } |
866 | 855 |
| 856 std::string state; |
| 857 if (frame->GetCurrentHistoryState(&state)) |
| 858 entry->SetContentState(state); |
| 859 |
867 shell_->navigation_controller()->DidNavigateToEntry(entry.release()); | 860 shell_->navigation_controller()->DidNavigateToEntry(entry.release()); |
868 | 861 |
869 last_page_id_updated_ = std::max(last_page_id_updated_, page_id_); | 862 last_page_id_updated_ = std::max(last_page_id_updated_, page_id_); |
870 } | 863 } |
871 | 864 |
872 void TestWebViewDelegate::UpdateSessionHistory(WebFrame* frame) { | 865 void TestWebViewDelegate::UpdateSessionHistory(WebFrame* frame) { |
873 // If we have a valid page ID at this point, then it corresponds to the page | 866 // If we have a valid page ID at this point, then it corresponds to the page |
874 // we are navigating away from. Otherwise, this is the first navigation, so | 867 // we are navigating away from. Otherwise, this is the first navigation, so |
875 // there is no past session history to record. | 868 // there is no past session history to record. |
876 if (page_id_ == -1) | 869 if (page_id_ == -1) |
(...skipping 18 matching lines...) Expand all Loading... |
895 return L"main frame \"" + name + L"\""; | 888 return L"main frame \"" + name + L"\""; |
896 else | 889 else |
897 return L"main frame"; | 890 return L"main frame"; |
898 } else { | 891 } else { |
899 if (name.length()) | 892 if (name.length()) |
900 return L"frame \"" + name + L"\""; | 893 return L"frame \"" + name + L"\""; |
901 else | 894 else |
902 return L"frame (anonymous)"; | 895 return L"frame (anonymous)"; |
903 } | 896 } |
904 } | 897 } |
OLD | NEW |