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

Side by Side Diff: chrome/browser/apps/guest_view/web_view_browsertest.cc

Issue 2780373002: Use observer pattern instead of sniffing SwapCompositorFrame IPC (Closed)
Patch Set: Addressed comments Created 3 years, 8 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
« no previous file with comments | « no previous file | content/browser/devtools/render_frame_devtools_agent_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <queue> 5 #include <queue>
6 #include <set> 6 #include <set>
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after
815 } 815 }
816 return manager; 816 return manager;
817 } 817 }
818 818
819 WebViewTestBase() : guest_web_contents_(NULL), embedder_web_contents_(NULL) { 819 WebViewTestBase() : guest_web_contents_(NULL), embedder_web_contents_(NULL) {
820 GuestViewManager::set_factory_for_testing(&factory_); 820 GuestViewManager::set_factory_for_testing(&factory_);
821 } 821 }
822 822
823 ~WebViewTestBase() override {} 823 ~WebViewTestBase() override {}
824 824
825 protected:
826 scoped_refptr<content::FrameWatcher> frame_watcher_;
827
828 private: 825 private:
829 bool UsesFakeSpeech() { 826 bool UsesFakeSpeech() {
830 const testing::TestInfo* const test_info = 827 const testing::TestInfo* const test_info =
831 testing::UnitTest::GetInstance()->current_test_info(); 828 testing::UnitTest::GetInstance()->current_test_info();
832 829
833 // SpeechRecognition test specific SetUp. 830 // SpeechRecognition test specific SetUp.
834 const char* name = "SpeechRecognitionAPI_HasPermissionAllow"; 831 const char* name = "SpeechRecognitionAPI_HasPermissionAllow";
835 return !strncmp(test_info->name(), name, strlen(name)); 832 return !strncmp(test_info->name(), name, strlen(name));
836 } 833 }
837 834
(...skipping 3034 matching lines...) Expand 10 before | Expand all | Expand 10 after
3872 3869
3873 void SetUpCommandLine(base::CommandLine* command_line) override { 3870 void SetUpCommandLine(base::CommandLine* command_line) override {
3874 WebViewTest::SetUpCommandLine(command_line); 3871 WebViewTest::SetUpCommandLine(command_line);
3875 3872
3876 command_line->AppendSwitchASCII( 3873 command_line->AppendSwitchASCII(
3877 switches::kTouchEventFeatureDetection, 3874 switches::kTouchEventFeatureDetection,
3878 switches::kTouchEventFeatureDetectionEnabled); 3875 switches::kTouchEventFeatureDetectionEnabled);
3879 } 3876 }
3880 3877
3881 void ForceCompositorFrame() { 3878 void ForceCompositorFrame() {
3882 if (!frame_watcher_) { 3879 frame_watcher_.Observe(GetEmbedderWebContents());
3883 frame_watcher_ = new content::FrameWatcher();
3884 frame_watcher_->AttachTo(GetEmbedderWebContents());
3885 }
3886 3880
3887 while (!RequestFrame(GetEmbedderWebContents())) { 3881 while (!RequestFrame(GetEmbedderWebContents())) {
3888 // RequestFrame failed because we were waiting on an ack ... wait a short 3882 // RequestFrame failed because we were waiting on an ack ... wait a short
3889 // time and retry. 3883 // time and retry.
3890 base::RunLoop run_loop; 3884 base::RunLoop run_loop;
3891 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( 3885 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
3892 FROM_HERE, run_loop.QuitClosure(), 3886 FROM_HERE, run_loop.QuitClosure(),
3893 base::TimeDelta::FromMilliseconds(10)); 3887 base::TimeDelta::FromMilliseconds(10));
3894 run_loop.Run(); 3888 run_loop.Run();
3895 } 3889 }
3896 frame_watcher_->WaitFrames(1); 3890 frame_watcher_.WaitFrames(1);
3897 } 3891 }
3898 3892
3899 private: 3893 private:
3900 scoped_refptr<content::FrameWatcher> frame_watcher_; 3894 content::FrameWatcher frame_watcher_;
3901 }; 3895 };
3902 INSTANTIATE_TEST_CASE_P(WebViewTests, WebViewFocusTest, testing::Values(false)); 3896 INSTANTIATE_TEST_CASE_P(WebViewTests, WebViewFocusTest, testing::Values(false));
3903 3897
3904 // The following test verifies that a views::WebView hosting an embedder 3898 // The following test verifies that a views::WebView hosting an embedder
3905 // gains focus on touchstart. 3899 // gains focus on touchstart.
3906 IN_PROC_BROWSER_TEST_P(WebViewFocusTest, TouchFocusesEmbedder) { 3900 IN_PROC_BROWSER_TEST_P(WebViewFocusTest, TouchFocusesEmbedder) {
3907 LoadAppWithGuest("web_view/accept_touch_events"); 3901 LoadAppWithGuest("web_view/accept_touch_events");
3908 3902
3909 content::WebContents* web_contents = GetEmbedderWebContents(); 3903 content::WebContents* web_contents = GetEmbedderWebContents();
3910 content::RenderViewHost* embedder_rvh = web_contents->GetRenderViewHost(); 3904 content::RenderViewHost* embedder_rvh = web_contents->GetRenderViewHost();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
4008 ClosingChromeSignInShouldNotCrash) { 4002 ClosingChromeSignInShouldNotCrash) {
4009 GURL signin_url{"chrome://chrome-signin"}; 4003 GURL signin_url{"chrome://chrome-signin"};
4010 4004
4011 AddTabAtIndex(0, signin_url, ui::PAGE_TRANSITION_TYPED); 4005 AddTabAtIndex(0, signin_url, ui::PAGE_TRANSITION_TYPED);
4012 AddTabAtIndex(1, signin_url, ui::PAGE_TRANSITION_TYPED); 4006 AddTabAtIndex(1, signin_url, ui::PAGE_TRANSITION_TYPED);
4013 WaitForWebViewInDom(); 4007 WaitForWebViewInDom();
4014 4008
4015 chrome::CloseTab(browser()); 4009 chrome::CloseTab(browser());
4016 } 4010 }
4017 #endif 4011 #endif
OLDNEW
« no previous file with comments | « no previous file | content/browser/devtools/render_frame_devtools_agent_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698