Index: chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
diff --git a/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc b/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
index d02e0868aef4af6813370ed810ac5de6efd95502..e17d6c3a99a26a5704c30b619736843adbcc2ac7 100644 |
--- a/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
+++ b/chrome/browser/ui/app_list/search_answer_web_contents_delegate.cc |
@@ -95,6 +95,8 @@ SearchAnswerWebContentsDelegate::SearchAnswerWebContentsDelegate( |
web_contents_->SetDelegate(this); |
web_view_->set_owned_by_client(); |
web_view_->SetWebContents(web_contents_.get()); |
+ if (features::IsAnswerCardDarkRunEnabled()) |
+ web_view_->SetFocusBehavior(views::View::FocusBehavior::NEVER); |
model->AddObserver(this); |
} |
@@ -153,7 +155,8 @@ void SearchAnswerWebContentsDelegate::Update() { |
void SearchAnswerWebContentsDelegate::UpdatePreferredSize( |
content::WebContents* web_contents, |
const gfx::Size& pref_size) { |
- web_view_->SetPreferredSize(pref_size); |
+ if (!features::IsAnswerCardDarkRunEnabled()) |
+ web_view_->SetPreferredSize(pref_size); |
if (!answer_loaded_time_.is_null()) { |
UMA_HISTOGRAM_TIMES("SearchAnswer.ResizeAfterLoadTime", |
base::TimeTicks::Now() - answer_loaded_time_); |
@@ -209,12 +212,19 @@ void SearchAnswerWebContentsDelegate::DidFinishNavigation( |
return; |
} |
- const net::HttpResponseHeaders* headers = |
- navigation_handle->GetResponseHeaders(); |
- if (!headers || headers->response_code() != net::HTTP_OK || |
- !headers->HasHeaderValue("has_answer", "true")) { |
- RecordRequestResult(SearchAnswerRequestResult::REQUEST_RESULT_NO_ANSWER); |
- return; |
+ if (!features::IsAnswerCardDarkRunEnabled()) { |
+ const net::HttpResponseHeaders* headers = |
+ navigation_handle->GetResponseHeaders(); |
+ if (!headers || headers->response_code() != net::HTTP_OK || |
+ !headers->HasHeaderValue("has_answer", "true")) { |
+ RecordRequestResult(SearchAnswerRequestResult::REQUEST_RESULT_NO_ANSWER); |
+ return; |
+ } |
+ } else { |
+ // In the dark run mode, every other "server response" contains a card. |
+ dark_run_received_answer_ = !dark_run_received_answer_; |
+ if (!dark_run_received_answer_) |
+ return; |
} |
received_answer_ = true; |