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

Side by Side Diff: content/browser/frame_host/navigator_impl_unittest.cc

Issue 1549113002: Switch to standard integer types in content/browser/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 12 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 <stdint.h>
6
5 #include "base/macros.h" 7 #include "base/macros.h"
6 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "build/build_config.h"
7 #include "content/browser/frame_host/navigation_controller_impl.h" 10 #include "content/browser/frame_host/navigation_controller_impl.h"
8 #include "content/browser/frame_host/navigation_entry_impl.h" 11 #include "content/browser/frame_host/navigation_entry_impl.h"
9 #include "content/browser/frame_host/navigation_request.h" 12 #include "content/browser/frame_host/navigation_request.h"
10 #include "content/browser/frame_host/navigation_request_info.h" 13 #include "content/browser/frame_host/navigation_request_info.h"
11 #include "content/browser/frame_host/navigator.h" 14 #include "content/browser/frame_host/navigator.h"
12 #include "content/browser/frame_host/navigator_impl.h" 15 #include "content/browser/frame_host/navigator_impl.h"
13 #include "content/browser/frame_host/render_frame_host_manager.h" 16 #include "content/browser/frame_host/render_frame_host_manager.h"
14 #include "content/browser/site_instance_impl.h" 17 #include "content/browser/site_instance_impl.h"
15 #include "content/browser/streams/stream.h" 18 #include "content/browser/streams/stream.h"
16 #include "content/common/frame_messages.h" 19 #include "content/common/frame_messages.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 119
117 // PlzNavigate: Test a complete browser-initiated navigation starting with a 120 // PlzNavigate: Test a complete browser-initiated navigation starting with a
118 // non-live renderer. 121 // non-live renderer.
119 TEST_F(NavigatorTestWithBrowserSideNavigation, 122 TEST_F(NavigatorTestWithBrowserSideNavigation,
120 SimpleBrowserInitiatedNavigationFromNonLiveRenderer) { 123 SimpleBrowserInitiatedNavigationFromNonLiveRenderer) {
121 const GURL kUrl("http://chromium.org/"); 124 const GURL kUrl("http://chromium.org/");
122 125
123 EXPECT_FALSE(main_test_rfh()->IsRenderFrameLive()); 126 EXPECT_FALSE(main_test_rfh()->IsRenderFrameLive());
124 127
125 // Start a browser-initiated navigation. 128 // Start a browser-initiated navigation.
126 int32 site_instance_id = main_test_rfh()->GetSiteInstance()->GetId(); 129 int32_t site_instance_id = main_test_rfh()->GetSiteInstance()->GetId();
127 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 130 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
128 int entry_id = RequestNavigation(node, kUrl); 131 int entry_id = RequestNavigation(node, kUrl);
129 NavigationRequest* request = node->navigation_request(); 132 NavigationRequest* request = node->navigation_request();
130 ASSERT_TRUE(request); 133 ASSERT_TRUE(request);
131 EXPECT_EQ(kUrl, request->common_params().url); 134 EXPECT_EQ(kUrl, request->common_params().url);
132 EXPECT_TRUE(request->browser_initiated()); 135 EXPECT_TRUE(request->browser_initiated());
133 136
134 // As there's no live renderer the navigation should not wait for a 137 // As there's no live renderer the navigation should not wait for a
135 // beforeUnload ACK from the renderer and start right away. 138 // beforeUnload ACK from the renderer and start right away.
136 EXPECT_EQ(NavigationRequest::STARTED, request->state()); 139 EXPECT_EQ(NavigationRequest::STARTED, request->state());
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 // PlzNavigate: Test a complete renderer-initiated navigation that should be 215 // PlzNavigate: Test a complete renderer-initiated navigation that should be
213 // cross-site but does not result in a SiteInstance swap because its 216 // cross-site but does not result in a SiteInstance swap because its
214 // renderer-initiated. 217 // renderer-initiated.
215 TEST_F(NavigatorTestWithBrowserSideNavigation, 218 TEST_F(NavigatorTestWithBrowserSideNavigation,
216 SimpleRendererInitiatedCrossSiteNavigation) { 219 SimpleRendererInitiatedCrossSiteNavigation) {
217 const GURL kUrl1("http://www.chromium.org/"); 220 const GURL kUrl1("http://www.chromium.org/");
218 const GURL kUrl2("http://www.google.com"); 221 const GURL kUrl2("http://www.google.com");
219 222
220 contents()->NavigateAndCommit(kUrl1); 223 contents()->NavigateAndCommit(kUrl1);
221 EXPECT_TRUE(main_test_rfh()->IsRenderFrameLive()); 224 EXPECT_TRUE(main_test_rfh()->IsRenderFrameLive());
222 int32 site_instance_id_1 = main_test_rfh()->GetSiteInstance()->GetId(); 225 int32_t site_instance_id_1 = main_test_rfh()->GetSiteInstance()->GetId();
223 226
224 // Start a renderer-initiated non-user-initiated navigation. 227 // Start a renderer-initiated non-user-initiated navigation.
225 process()->sink().ClearMessages(); 228 process()->sink().ClearMessages();
226 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false); 229 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl2, false);
227 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 230 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
228 NavigationRequest* request = node->navigation_request(); 231 NavigationRequest* request = node->navigation_request();
229 ASSERT_TRUE(request); 232 ASSERT_TRUE(request);
230 233
231 // The navigation is immediately started as there's no need to wait for 234 // The navigation is immediately started as there's no need to wait for
232 // beforeUnload to be executed. 235 // beforeUnload to be executed.
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 ASSERT_TRUE(request1); 535 ASSERT_TRUE(request1);
533 EXPECT_EQ(kUrl1, request1->common_params().url); 536 EXPECT_EQ(kUrl1, request1->common_params().url);
534 EXPECT_TRUE(request1->browser_initiated()); 537 EXPECT_TRUE(request1->browser_initiated());
535 base::WeakPtr<TestNavigationURLLoader> loader1 = 538 base::WeakPtr<TestNavigationURLLoader> loader1 =
536 GetLoaderForNavigationRequest(request1)->AsWeakPtr(); 539 GetLoaderForNavigationRequest(request1)->AsWeakPtr();
537 EXPECT_TRUE(loader1); 540 EXPECT_TRUE(loader1);
538 541
539 // Confirm a speculative RenderFrameHost was created. 542 // Confirm a speculative RenderFrameHost was created.
540 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 543 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
541 ASSERT_TRUE(speculative_rfh); 544 ASSERT_TRUE(speculative_rfh);
542 int32 site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId(); 545 int32_t site_instance_id_1 = speculative_rfh->GetSiteInstance()->GetId();
543 EXPECT_EQ(kUrl1_site, speculative_rfh->GetSiteInstance()->GetSiteURL()); 546 EXPECT_EQ(kUrl1_site, speculative_rfh->GetSiteInstance()->GetSiteURL());
544 547
545 // Request navigation to the 2nd URL; the NavigationRequest must have been 548 // Request navigation to the 2nd URL; the NavigationRequest must have been
546 // replaced by a new one with a different URL. 549 // replaced by a new one with a different URL.
547 int entry_id = RequestNavigation(node, kUrl2); 550 int entry_id = RequestNavigation(node, kUrl2);
548 main_test_rfh()->SendBeforeUnloadACK(true); 551 main_test_rfh()->SendBeforeUnloadACK(true);
549 NavigationRequest* request2 = node->navigation_request(); 552 NavigationRequest* request2 = node->navigation_request();
550 ASSERT_TRUE(request2); 553 ASSERT_TRUE(request2);
551 EXPECT_EQ(kUrl2, request2->common_params().url); 554 EXPECT_EQ(kUrl2, request2->common_params().url);
552 EXPECT_TRUE(request2->browser_initiated()); 555 EXPECT_TRUE(request2->browser_initiated());
553 556
554 // Confirm that the first loader got destroyed. 557 // Confirm that the first loader got destroyed.
555 EXPECT_FALSE(loader1); 558 EXPECT_FALSE(loader1);
556 559
557 // Confirm that a new speculative RenderFrameHost was created. 560 // Confirm that a new speculative RenderFrameHost was created.
558 speculative_rfh = GetSpeculativeRenderFrameHost(node); 561 speculative_rfh = GetSpeculativeRenderFrameHost(node);
559 ASSERT_TRUE(speculative_rfh); 562 ASSERT_TRUE(speculative_rfh);
560 int32 site_instance_id_2 = speculative_rfh->GetSiteInstance()->GetId(); 563 int32_t site_instance_id_2 = speculative_rfh->GetSiteInstance()->GetId();
561 EXPECT_NE(site_instance_id_1, site_instance_id_2); 564 EXPECT_NE(site_instance_id_1, site_instance_id_2);
562 565
563 // Have the RenderFrameHost commit the navigation. 566 // Have the RenderFrameHost commit the navigation.
564 scoped_refptr<ResourceResponse> response(new ResourceResponse); 567 scoped_refptr<ResourceResponse> response(new ResourceResponse);
565 GetLoaderForNavigationRequest(request2)->CallOnResponseStarted( 568 GetLoaderForNavigationRequest(request2)->CallOnResponseStarted(
566 response, MakeEmptyStream()); 569 response, MakeEmptyStream());
567 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 570 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh));
568 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh())); 571 EXPECT_FALSE(DidRenderFrameHostRequestCommit(main_test_rfh()));
569 572
570 // Commit the navigation. 573 // Commit the navigation.
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 // canceled if a another similar request is issued in the meantime. 736 // canceled if a another similar request is issued in the meantime.
734 TEST_F(NavigatorTestWithBrowserSideNavigation, 737 TEST_F(NavigatorTestWithBrowserSideNavigation,
735 RendererNonUserInitiatedNavigationCancelSimilarNavigation) { 738 RendererNonUserInitiatedNavigationCancelSimilarNavigation) {
736 const GURL kUrl0("http://www.wikipedia.org/"); 739 const GURL kUrl0("http://www.wikipedia.org/");
737 const GURL kUrl1("http://www.chromium.org/"); 740 const GURL kUrl1("http://www.chromium.org/");
738 const GURL kUrl2("http://www.google.com/"); 741 const GURL kUrl2("http://www.google.com/");
739 742
740 // Initialization. 743 // Initialization.
741 contents()->NavigateAndCommit(kUrl0); 744 contents()->NavigateAndCommit(kUrl0);
742 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 745 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
743 int32 site_instance_id_0 = main_test_rfh()->GetSiteInstance()->GetId(); 746 int32_t site_instance_id_0 = main_test_rfh()->GetSiteInstance()->GetId();
744 747
745 // Start a renderer-initiated non-user-initiated navigation to the 1st URL. 748 // Start a renderer-initiated non-user-initiated navigation to the 1st URL.
746 process()->sink().ClearMessages(); 749 process()->sink().ClearMessages();
747 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false); 750 main_test_rfh()->SendRendererInitiatedNavigationRequest(kUrl1, false);
748 NavigationRequest* request1 = node->navigation_request(); 751 NavigationRequest* request1 = node->navigation_request();
749 ASSERT_TRUE(request1); 752 ASSERT_TRUE(request1);
750 EXPECT_EQ(kUrl1, request1->common_params().url); 753 EXPECT_EQ(kUrl1, request1->common_params().url);
751 EXPECT_FALSE(request1->browser_initiated()); 754 EXPECT_FALSE(request1->browser_initiated());
752 EXPECT_FALSE(request1->begin_params().has_user_gesture); 755 EXPECT_FALSE(request1->begin_params().has_user_gesture);
753 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 756 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 831 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
829 ASSERT_TRUE(speculative_rfh); 832 ASSERT_TRUE(speculative_rfh);
830 EXPECT_NE(speculative_rfh, main_test_rfh()); 833 EXPECT_NE(speculative_rfh, main_test_rfh());
831 834
832 // Receive the beforeUnload ACK. 835 // Receive the beforeUnload ACK.
833 main_test_rfh()->SendBeforeUnloadACK(true); 836 main_test_rfh()->SendBeforeUnloadACK(true);
834 EXPECT_EQ(speculative_rfh, GetSpeculativeRenderFrameHost(node)); 837 EXPECT_EQ(speculative_rfh, GetSpeculativeRenderFrameHost(node));
835 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl), 838 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl),
836 speculative_rfh->GetSiteInstance()->GetSiteURL()); 839 speculative_rfh->GetSiteInstance()->GetSiteURL());
837 EXPECT_FALSE(node->render_manager()->pending_frame_host()); 840 EXPECT_FALSE(node->render_manager()->pending_frame_host());
838 int32 site_instance_id = speculative_rfh->GetSiteInstance()->GetId(); 841 int32_t site_instance_id = speculative_rfh->GetSiteInstance()->GetId();
839 842
840 // Ask Navigator to commit the navigation by simulating a call to 843 // Ask Navigator to commit the navigation by simulating a call to
841 // OnResponseStarted. 844 // OnResponseStarted.
842 scoped_refptr<ResourceResponse> response(new ResourceResponse); 845 scoped_refptr<ResourceResponse> response(new ResourceResponse);
843 GetLoaderForNavigationRequest(node->navigation_request()) 846 GetLoaderForNavigationRequest(node->navigation_request())
844 ->CallOnResponseStarted(response, MakeEmptyStream()); 847 ->CallOnResponseStarted(response, MakeEmptyStream());
845 EXPECT_EQ(speculative_rfh, GetSpeculativeRenderFrameHost(node)); 848 EXPECT_EQ(speculative_rfh, GetSpeculativeRenderFrameHost(node));
846 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 849 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh));
847 EXPECT_EQ(site_instance_id, speculative_rfh->GetSiteInstance()->GetId()); 850 EXPECT_EQ(site_instance_id, speculative_rfh->GetSiteInstance()->GetId());
848 EXPECT_FALSE(node->render_manager()->pending_frame_host()); 851 EXPECT_FALSE(node->render_manager()->pending_frame_host());
849 852
850 // Invoke OnDidCommitProvisionalLoad. 853 // Invoke OnDidCommitProvisionalLoad.
851 speculative_rfh->SendNavigate(0, entry_id, true, kUrl); 854 speculative_rfh->SendNavigate(0, entry_id, true, kUrl);
852 EXPECT_EQ(site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 855 EXPECT_EQ(site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
853 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 856 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
854 EXPECT_FALSE(node->render_manager()->pending_frame_host()); 857 EXPECT_FALSE(node->render_manager()->pending_frame_host());
855 } 858 }
856 859
857 // PlzNavigate: Confirm that a speculative RenderFrameHost is thrown away when 860 // PlzNavigate: Confirm that a speculative RenderFrameHost is thrown away when
858 // the final URL's site differs from the initial one due to redirects. 861 // the final URL's site differs from the initial one due to redirects.
859 TEST_F(NavigatorTestWithBrowserSideNavigation, 862 TEST_F(NavigatorTestWithBrowserSideNavigation,
860 SpeculativeRendererDiscardedAfterRedirectToAnotherSite) { 863 SpeculativeRendererDiscardedAfterRedirectToAnotherSite) {
861 // Navigate to an initial site. 864 // Navigate to an initial site.
862 const GURL kUrlInit("http://wikipedia.org/"); 865 const GURL kUrlInit("http://wikipedia.org/");
863 contents()->NavigateAndCommit(kUrlInit); 866 contents()->NavigateAndCommit(kUrlInit);
864 FrameTreeNode* node = main_test_rfh()->frame_tree_node(); 867 FrameTreeNode* node = main_test_rfh()->frame_tree_node();
865 int32 init_site_instance_id = main_test_rfh()->GetSiteInstance()->GetId(); 868 int32_t init_site_instance_id = main_test_rfh()->GetSiteInstance()->GetId();
866 869
867 // Begin navigating to another site. 870 // Begin navigating to another site.
868 const GURL kUrl("http://google.com/"); 871 const GURL kUrl("http://google.com/");
869 process()->sink().ClearMessages(); 872 process()->sink().ClearMessages();
870 int entry_id = RequestNavigation(node, kUrl); 873 int entry_id = RequestNavigation(node, kUrl);
871 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node); 874 TestRenderFrameHost* speculative_rfh = GetSpeculativeRenderFrameHost(node);
872 ASSERT_TRUE(speculative_rfh); 875 ASSERT_TRUE(speculative_rfh);
873 int32 site_instance_id = speculative_rfh->GetSiteInstance()->GetId(); 876 int32_t site_instance_id = speculative_rfh->GetSiteInstance()->GetId();
874 RenderFrameDeletedObserver rfh_deleted_observer(speculative_rfh); 877 RenderFrameDeletedObserver rfh_deleted_observer(speculative_rfh);
875 EXPECT_NE(init_site_instance_id, site_instance_id); 878 EXPECT_NE(init_site_instance_id, site_instance_id);
876 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 879 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
877 EXPECT_NE(speculative_rfh, main_test_rfh()); 880 EXPECT_NE(speculative_rfh, main_test_rfh());
878 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl), 881 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrl),
879 speculative_rfh->GetSiteInstance()->GetSiteURL()); 882 speculative_rfh->GetSiteInstance()->GetSiteURL());
880 883
881 // Receive the beforeUnload ACK. 884 // Receive the beforeUnload ACK.
882 main_test_rfh()->SendBeforeUnloadACK(true); 885 main_test_rfh()->SendBeforeUnloadACK(true);
883 EXPECT_EQ(speculative_rfh, GetSpeculativeRenderFrameHost(node)); 886 EXPECT_EQ(speculative_rfh, GetSpeculativeRenderFrameHost(node));
(...skipping 22 matching lines...) Expand all
906 speculative_rfh = GetSpeculativeRenderFrameHost(node); 909 speculative_rfh = GetSpeculativeRenderFrameHost(node);
907 ASSERT_TRUE(speculative_rfh); 910 ASSERT_TRUE(speculative_rfh);
908 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh)); 911 EXPECT_TRUE(DidRenderFrameHostRequestCommit(speculative_rfh));
909 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId()); 912 EXPECT_EQ(init_site_instance_id, main_test_rfh()->GetSiteInstance()->GetId());
910 EXPECT_TRUE(rfh_deleted_observer.deleted()); 913 EXPECT_TRUE(rfh_deleted_observer.deleted());
911 914
912 // Once commit happens the speculative RenderFrameHost is updated to match the 915 // Once commit happens the speculative RenderFrameHost is updated to match the
913 // known final SiteInstance. 916 // known final SiteInstance.
914 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrlRedirect), 917 EXPECT_EQ(SiteInstanceImpl::GetSiteForURL(browser_context(), kUrlRedirect),
915 speculative_rfh->GetSiteInstance()->GetSiteURL()); 918 speculative_rfh->GetSiteInstance()->GetSiteURL());
916 int32 redirect_site_instance_id = speculative_rfh->GetSiteInstance()->GetId(); 919 int32_t redirect_site_instance_id =
920 speculative_rfh->GetSiteInstance()->GetId();
917 EXPECT_NE(init_site_instance_id, redirect_site_instance_id); 921 EXPECT_NE(init_site_instance_id, redirect_site_instance_id);
918 EXPECT_NE(site_instance_id, redirect_site_instance_id); 922 EXPECT_NE(site_instance_id, redirect_site_instance_id);
919 923
920 // Invoke OnDidCommitProvisionalLoad. 924 // Invoke OnDidCommitProvisionalLoad.
921 speculative_rfh->SendNavigate(0, entry_id, true, kUrlRedirect); 925 speculative_rfh->SendNavigate(0, entry_id, true, kUrlRedirect);
922 926
923 // Check that the speculative RenderFrameHost was swapped in. 927 // Check that the speculative RenderFrameHost was swapped in.
924 EXPECT_EQ(redirect_site_instance_id, 928 EXPECT_EQ(redirect_site_instance_id,
925 main_test_rfh()->GetSiteInstance()->GetId()); 929 main_test_rfh()->GetSiteInstance()->GetId());
926 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node)); 930 EXPECT_FALSE(GetSpeculativeRenderFrameHost(node));
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 1140
1137 SiteInstance* converted_instance_2 = 1141 SiteInstance* converted_instance_2 =
1138 ConvertToSiteInstance(rfhm, descriptor, unrelated_instance.get()); 1142 ConvertToSiteInstance(rfhm, descriptor, unrelated_instance.get());
1139 // Should return |unrelated_instance| because its site matches and it is 1143 // Should return |unrelated_instance| because its site matches and it is
1140 // unrelated to the current SiteInstance. 1144 // unrelated to the current SiteInstance.
1141 EXPECT_EQ(unrelated_instance.get(), converted_instance_2); 1145 EXPECT_EQ(unrelated_instance.get(), converted_instance_2);
1142 } 1146 }
1143 } 1147 }
1144 1148
1145 } // namespace content 1149 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/navigator_impl.h ('k') | content/browser/frame_host/popup_menu_helper_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698