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

Unified Diff: content/browser/frame_host/interstitial_page_impl_browsertest.cc

Issue 2086423005: Using WebContents::UpdateTitleForEntry() instead of NavigationEntry::SetTitle() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Improving comment and removing the NOTREACHED. Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/interstitial_page_impl_browsertest.cc
diff --git a/content/browser/frame_host/interstitial_page_impl_browsertest.cc b/content/browser/frame_host/interstitial_page_impl_browsertest.cc
index 2fbdda35c986c6b0713dec2372b10bcd0c633447..ab7203d419b769024ddbb5c1c9b0d9d1a1da0059 100644
--- a/content/browser/frame_host/interstitial_page_impl_browsertest.cc
+++ b/content/browser/frame_host/interstitial_page_impl_browsertest.cc
@@ -64,61 +64,6 @@ class TestInterstitialPageDelegate : public InterstitialPageDelegate {
}
};
-// A title watcher for interstitial pages. The existing TitleWatcher does not
-// work for interstitial pages. Note that this title watcher waits for the
-// title update IPC message not the actual title update. So, the new title is
-// probably not propagated completely, yet.
-class InterstitialTitleUpdateWatcher : public BrowserMessageFilter {
- public:
- explicit InterstitialTitleUpdateWatcher(InterstitialPage* interstitial)
- : BrowserMessageFilter(FrameMsgStart) {
- interstitial->GetMainFrame()->GetProcess()->AddFilter(this);
- }
-
- void InitWait(const std::string& expected_title) {
- DCHECK(!run_loop_);
- expected_title_ = base::UTF8ToUTF16(expected_title);
- run_loop_.reset(new base::RunLoop());
- }
-
- void Wait() {
- DCHECK(run_loop_);
- run_loop_->Run();
- run_loop_.reset();
- }
-
- private:
- ~InterstitialTitleUpdateWatcher() override {}
-
- void OnTitleUpdateReceived(const base::string16& title) {
- DCHECK(run_loop_);
- if (title == expected_title_)
- run_loop_->Quit();
- }
-
- // BrowserMessageFilter:
- bool OnMessageReceived(const IPC::Message& message) override {
- if (!run_loop_)
- return false;
-
- if (message.type() == FrameHostMsg_UpdateTitle::ID) {
- FrameHostMsg_UpdateTitle::Param params;
- if (FrameHostMsg_UpdateTitle::Read(&message, &params)) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(&InterstitialTitleUpdateWatcher::OnTitleUpdateReceived,
- this, std::get<0>(params)));
- }
- }
- return false;
- }
-
- base::string16 expected_title_;
- std::unique_ptr<base::RunLoop> run_loop_;
-
- DISALLOW_COPY_AND_ASSIGN(InterstitialTitleUpdateWatcher);
-};
-
// A message filter that watches for WriteText and CommitWrite clipboard IPC
// messages to make sure cut/copy is working properly. It will mark these events
// as handled to prevent modification of the actual clipboard.
@@ -252,8 +197,6 @@ class InterstitialPageImplTest : public ContentBrowserTest {
clipboard_message_watcher_ =
new ClipboardMessageWatcher(interstitial_.get());
- title_update_watcher_ =
- new InterstitialTitleUpdateWatcher(interstitial_.get());
// Wait until page loads completely.
ASSERT_TRUE(WaitForRenderFrameReady(interstitial_->GetMainFrame()));
@@ -292,12 +235,14 @@ class InterstitialPageImplTest : public ContentBrowserTest {
std::string PerformCut() {
clipboard_message_watcher_->InitWait();
- title_update_watcher_->InitWait("TEXT_CHANGED");
+ const base::string16 expected_title = base::UTF8ToUTF16("TEXT_CHANGED");
+ content::TitleWatcher title_watcher(shell()->web_contents(),
+ expected_title);
RenderFrameHostImpl* rfh =
static_cast<RenderFrameHostImpl*>(interstitial_->GetMainFrame());
rfh->GetRenderWidgetHost()->delegate()->Cut();
clipboard_message_watcher_->WaitForWriteCommit();
- title_update_watcher_->Wait();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
return clipboard_message_watcher_->last_text();
}
@@ -311,19 +256,24 @@ class InterstitialPageImplTest : public ContentBrowserTest {
}
void PerformPaste() {
- title_update_watcher_->InitWait("TEXT_CHANGED");
+ const base::string16 expected_title = base::UTF8ToUTF16("TEXT_CHANGED");
+ content::TitleWatcher title_watcher(shell()->web_contents(),
+ expected_title);
RenderFrameHostImpl* rfh =
static_cast<RenderFrameHostImpl*>(interstitial_->GetMainFrame());
rfh->GetRenderWidgetHost()->delegate()->Paste();
- title_update_watcher_->Wait();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
void PerformSelectAll() {
- title_update_watcher_->InitWait("SELECTION_CHANGED");
+ const base::string16 expected_title =
+ base::UTF8ToUTF16("SELECTION_CHANGED");
+ content::TitleWatcher title_watcher(shell()->web_contents(),
+ expected_title);
RenderFrameHostImpl* rfh =
static_cast<RenderFrameHostImpl*>(interstitial_->GetMainFrame());
rfh->GetRenderWidgetHost()->delegate()->SelectAll();
- title_update_watcher_->Wait();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
private:
@@ -344,7 +294,6 @@ class InterstitialPageImplTest : public ContentBrowserTest {
std::unique_ptr<InterstitialPageImpl> interstitial_;
scoped_refptr<ClipboardMessageWatcher> clipboard_message_watcher_;
- scoped_refptr<InterstitialTitleUpdateWatcher> title_update_watcher_;
DISALLOW_COPY_AND_ASSIGN(InterstitialPageImplTest);
};

Powered by Google App Engine
This is Rietveld 408576698