Commit f8764e40 authored by derat@chromium.org's avatar derat@chromium.org

TabFirstRenderWatcher -> TabRenderWatcher.

Page content often isn't completely loaded or laid out when
the tab is first rendered.  This makes the class
additionally notify about subsequent renders so the delegate
can hold off until it sees one after it's e.g. received
notification via a WebUI message that the page is truly
ready.

BUG=chromium-os:26210
TEST=manual; also un-disabled the tests and checked that they still pass
TBR=ben@chromium.org

Review URL: http://codereview.chromium.org/9582012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124765 0039d316-1c4b-4281-b951-d872f2087c98
parent 0ad80742
...@@ -158,7 +158,7 @@ void WebUILoginView::Init(views::Widget* login_window) { ...@@ -158,7 +158,7 @@ void WebUILoginView::Init(views::Widget* login_window) {
WebContents* web_contents = webui_login_->dom_contents()->web_contents(); WebContents* web_contents = webui_login_->dom_contents()->web_contents();
web_contents->SetDelegate(this); web_contents->SetDelegate(this);
tab_watcher_.reset(new TabFirstRenderWatcher(web_contents, this)); tab_watcher_.reset(new TabRenderWatcher(web_contents, this));
} }
std::string WebUILoginView::GetClassName() const { std::string WebUILoginView::GetClassName() const {
...@@ -289,8 +289,9 @@ void WebUILoginView::OnTabMainFrameLoaded() { ...@@ -289,8 +289,9 @@ void WebUILoginView::OnTabMainFrameLoaded() {
VLOG(1) << "WebUI login main frame loaded."; VLOG(1) << "WebUI login main frame loaded.";
} }
void WebUILoginView::OnTabMainFrameFirstRender() { void WebUILoginView::OnTabMainFrameRender() {
VLOG(1) << "WebUI login main frame rendered."; VLOG(1) << "WebUI login main frame rendered.";
tab_watcher_.reset();
StatusAreaViewChromeos::SetScreenMode(GetScreenMode()); StatusAreaViewChromeos::SetScreenMode(GetScreenMode());
// In aura there's a global status area shown already. // In aura there's a global status area shown already.
#if defined(USE_AURA) #if defined(USE_AURA)
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "chrome/browser/chromeos/login/login_html_dialog.h" #include "chrome/browser/chromeos/login/login_html_dialog.h"
#include "chrome/browser/chromeos/status/status_area_button.h" #include "chrome/browser/chromeos/status/status_area_button.h"
#include "chrome/browser/chromeos/status/status_area_view_chromeos.h" #include "chrome/browser/chromeos/status/status_area_view_chromeos.h"
#include "chrome/browser/tab_first_render_watcher.h" #include "chrome/browser/tab_render_watcher.h"
#include "chrome/browser/ui/views/unhandled_keyboard_event_handler.h" #include "chrome/browser/ui/views/unhandled_keyboard_event_handler.h"
#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_delegate.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
...@@ -39,7 +39,7 @@ namespace chromeos { ...@@ -39,7 +39,7 @@ namespace chromeos {
class WebUILoginView : public views::WidgetDelegateView, class WebUILoginView : public views::WidgetDelegateView,
public StatusAreaButton::Delegate, public StatusAreaButton::Delegate,
public content::WebContentsDelegate, public content::WebContentsDelegate,
public TabFirstRenderWatcher::Delegate { public TabRenderWatcher::Delegate {
public: public:
static const int kStatusAreaCornerPadding; static const int kStatusAreaCornerPadding;
...@@ -93,10 +93,10 @@ class WebUILoginView : public views::WidgetDelegateView, ...@@ -93,10 +93,10 @@ class WebUILoginView : public views::WidgetDelegateView,
virtual StatusAreaButton::TextStyle GetStatusAreaTextStyle() const OVERRIDE; virtual StatusAreaButton::TextStyle GetStatusAreaTextStyle() const OVERRIDE;
virtual void ButtonVisibilityChanged(views::View* button_view) OVERRIDE; virtual void ButtonVisibilityChanged(views::View* button_view) OVERRIDE;
// TabFirstRenderWatcher::Delegate implementation. // TabRenderWatcher::Delegate implementation.
virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE; virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE;
virtual void OnTabMainFrameLoaded() OVERRIDE; virtual void OnTabMainFrameLoaded() OVERRIDE;
virtual void OnTabMainFrameFirstRender() OVERRIDE; virtual void OnTabMainFrameRender() OVERRIDE;
// Creates and adds the status area (separate window). // Creates and adds the status area (separate window).
virtual void InitStatusArea(); virtual void InitStatusArea();
...@@ -147,7 +147,7 @@ class WebUILoginView : public views::WidgetDelegateView, ...@@ -147,7 +147,7 @@ class WebUILoginView : public views::WidgetDelegateView,
scoped_ptr<LoginHtmlDialog> proxy_settings_dialog_; scoped_ptr<LoginHtmlDialog> proxy_settings_dialog_;
// Watches webui_login_'s TabContents rendering. // Watches webui_login_'s TabContents rendering.
scoped_ptr<TabFirstRenderWatcher> tab_watcher_; scoped_ptr<TabRenderWatcher> tab_watcher_;
// Whether the host window is frozen. // Whether the host window is frozen.
bool host_window_frozen_; bool host_window_frozen_;
......
// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/tab_first_render_watcher.h" #include "chrome/browser/tab_render_watcher.h"
#include "content/browser/renderer_host/render_widget_host.h" #include "content/browser/renderer_host/render_widget_host.h"
#include "content/browser/renderer_host/render_view_host.h" #include "content/browser/renderer_host/render_view_host.h"
...@@ -13,9 +13,8 @@ ...@@ -13,9 +13,8 @@
using content::WebContents; using content::WebContents;
TabFirstRenderWatcher::TabFirstRenderWatcher(WebContents* tab, TabRenderWatcher::TabRenderWatcher(WebContents* tab, Delegate* delegate)
Delegate* delegate) : loaded_(false),
: state_(NONE),
web_contents_(tab), web_contents_(tab),
delegate_(delegate) { delegate_(delegate) {
registrar_.Add(this, registrar_.Add(this,
...@@ -26,9 +25,9 @@ TabFirstRenderWatcher::TabFirstRenderWatcher(WebContents* tab, ...@@ -26,9 +25,9 @@ TabFirstRenderWatcher::TabFirstRenderWatcher(WebContents* tab,
content::Source<WebContents>(web_contents_)); content::Source<WebContents>(web_contents_));
} }
void TabFirstRenderWatcher::Observe(int type, void TabRenderWatcher::Observe(int type,
const content::NotificationSource& source, const content::NotificationSource& source,
const content::NotificationDetails& details) { const content::NotificationDetails& details) {
switch (type) { switch (type) {
case content::NOTIFICATION_RENDER_VIEW_HOST_CREATED_FOR_TAB: { case content::NOTIFICATION_RENDER_VIEW_HOST_CREATED_FOR_TAB: {
RenderWidgetHost* rwh = content::Details<RenderWidgetHost>(details).ptr(); RenderWidgetHost* rwh = content::Details<RenderWidgetHost>(details).ptr();
...@@ -40,18 +39,16 @@ void TabFirstRenderWatcher::Observe(int type, ...@@ -40,18 +39,16 @@ void TabFirstRenderWatcher::Observe(int type,
break; break;
} }
case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME: case content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME:
if (state_ == NONE) { if (!loaded_) {
state_ = LOADED; loaded_ = true;
delegate_->OnTabMainFrameLoaded(); delegate_->OnTabMainFrameLoaded();
} }
break; break;
case content::NOTIFICATION_RENDER_WIDGET_HOST_DID_PAINT: case content::NOTIFICATION_RENDER_WIDGET_HOST_DID_PAINT:
if (state_ == LOADED) { if (loaded_)
state_ = FIRST_PAINT; delegate_->OnTabMainFrameRender();
delegate_->OnTabMainFrameFirstRender();
}
break; break;
default: default:
NOTREACHED() << "unknown type" << type; NOTREACHED() << "Unknown notification " << type;
} }
} }
// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_TAB_FIRST_RENDER_WATCHER_H_ #ifndef CHROME_BROWSER_TAB_RENDER_WATCHER_H_
#define CHROME_BROWSER_TAB_FIRST_RENDER_WATCHER_H_ #define CHROME_BROWSER_TAB_RENDER_WATCHER_H_
#pragma once #pragma once
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
...@@ -17,16 +17,16 @@ class WebContents; ...@@ -17,16 +17,16 @@ class WebContents;
} }
// This class watches given TabContent's loading and rendering state change. // This class watches given TabContent's loading and rendering state change.
class TabFirstRenderWatcher : public content::NotificationObserver { class TabRenderWatcher : public content::NotificationObserver {
public: public:
class Delegate { class Delegate {
public: public:
virtual void OnRenderHostCreated(RenderViewHost* host) = 0; virtual void OnRenderHostCreated(RenderViewHost* host) = 0;
virtual void OnTabMainFrameLoaded() = 0; virtual void OnTabMainFrameLoaded() = 0;
virtual void OnTabMainFrameFirstRender() = 0; virtual void OnTabMainFrameRender() = 0;
}; };
TabFirstRenderWatcher(content::WebContents* tab, Delegate* delegate); TabRenderWatcher(content::WebContents* tab, Delegate* delegate);
private: private:
// Overridden from content::NotificationObserver // Overridden from content::NotificationObserver
...@@ -34,12 +34,8 @@ class TabFirstRenderWatcher : public content::NotificationObserver { ...@@ -34,12 +34,8 @@ class TabFirstRenderWatcher : public content::NotificationObserver {
const content::NotificationSource& source, const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE; const content::NotificationDetails& details) OVERRIDE;
enum State { // Has the renderer loaded the page yet?
NONE, bool loaded_;
LOADED, // Renderer loaded the page.
FIRST_PAINT, // 1st paint event after the page is loaded.
};
State state_;
// WebContents that this class watches. // WebContents that this class watches.
content::WebContents* web_contents_; content::WebContents* web_contents_;
...@@ -49,7 +45,7 @@ class TabFirstRenderWatcher : public content::NotificationObserver { ...@@ -49,7 +45,7 @@ class TabFirstRenderWatcher : public content::NotificationObserver {
content::NotificationRegistrar registrar_; content::NotificationRegistrar registrar_;
DISALLOW_COPY_AND_ASSIGN(TabFirstRenderWatcher); DISALLOW_COPY_AND_ASSIGN(TabRenderWatcher);
}; };
#endif // CHROME_BROWSER_TAB_FIRST_RENDER_WATCHER_H_ #endif // CHROME_BROWSER_TAB_RENDER_WATCHER_H_
// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "base/message_loop.h" #include "base/message_loop.h"
#include "chrome/browser/tab_first_render_watcher.h" #include "chrome/browser/tab_render_watcher.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/dom_view.h" #include "chrome/browser/ui/views/dom_view.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
...@@ -26,16 +26,16 @@ views::Widget* CreateWindowForContents(views::View* contents) { ...@@ -26,16 +26,16 @@ views::Widget* CreateWindowForContents(views::View* contents) {
} // namespace } // namespace
class TabFirstRenderWatcherTest : public InProcessBrowserTest, class TabRenderWatcherTest : public InProcessBrowserTest,
public TabFirstRenderWatcher::Delegate { public TabRenderWatcher::Delegate {
public: public:
TabFirstRenderWatcherTest() TabRenderWatcherTest()
: host_created_(false), : host_created_(false),
main_frame_loaded_(false), main_frame_loaded_(false),
main_frame_rendered_(false) { main_frame_rendered_(false) {
} }
// TabFirstRenderWatcher::Delegate implementation. // TabRenderWatcher::Delegate implementation.
virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE { virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE {
host_created_ = true; host_created_ = true;
} }
...@@ -45,7 +45,7 @@ class TabFirstRenderWatcherTest : public InProcessBrowserTest, ...@@ -45,7 +45,7 @@ class TabFirstRenderWatcherTest : public InProcessBrowserTest,
MessageLoop::current()->Quit(); MessageLoop::current()->Quit();
} }
virtual void OnTabMainFrameFirstRender() OVERRIDE { virtual void OnTabMainFrameRender() OVERRIDE {
main_frame_rendered_ = true; main_frame_rendered_ = true;
MessageLoop::current()->Quit(); MessageLoop::current()->Quit();
} }
...@@ -58,16 +58,14 @@ class TabFirstRenderWatcherTest : public InProcessBrowserTest, ...@@ -58,16 +58,14 @@ class TabFirstRenderWatcherTest : public InProcessBrowserTest,
// Migrated from HtmlDialogBrowserTest.TestStateTransition, which times out // Migrated from HtmlDialogBrowserTest.TestStateTransition, which times out
// about 5~10% of runs. See crbug.com/86059. // about 5~10% of runs. See crbug.com/86059.
IN_PROC_BROWSER_TEST_F(TabFirstRenderWatcherTest, IN_PROC_BROWSER_TEST_F(TabRenderWatcherTest, DISABLED_TestStateTransition) {
DISABLED_TestStateTransition) {
DOMView* dom_view = new DOMView; DOMView* dom_view = new DOMView;
dom_view->Init(browser()->profile(), NULL); dom_view->Init(browser()->profile(), NULL);
CreateWindowForContents(dom_view); CreateWindowForContents(dom_view);
dom_view->GetWidget()->Show(); dom_view->GetWidget()->Show();
scoped_ptr<TabFirstRenderWatcher> watcher( scoped_ptr<TabRenderWatcher> watcher(
new TabFirstRenderWatcher(dom_view->dom_contents()->web_contents(), new TabRenderWatcher(dom_view->dom_contents()->web_contents(), this));
this));
EXPECT_FALSE(host_created_); EXPECT_FALSE(host_created_);
EXPECT_FALSE(main_frame_loaded_); EXPECT_FALSE(main_frame_loaded_);
...@@ -80,7 +78,7 @@ IN_PROC_BROWSER_TEST_F(TabFirstRenderWatcherTest, ...@@ -80,7 +78,7 @@ IN_PROC_BROWSER_TEST_F(TabFirstRenderWatcherTest,
MessageLoopForUI::current()->Run(); MessageLoopForUI::current()->Run();
EXPECT_TRUE(main_frame_loaded_); EXPECT_TRUE(main_frame_loaded_);
// OnTabMainFrameFirstRender() will Quit(). // OnTabMainFrameRender() will Quit().
MessageLoopForUI::current()->Run(); MessageLoopForUI::current()->Run();
EXPECT_TRUE(main_frame_rendered_); EXPECT_TRUE(main_frame_rendered_);
......
...@@ -300,7 +300,7 @@ void HtmlDialogView::InitDialog() { ...@@ -300,7 +300,7 @@ void HtmlDialogView::InitDialog() {
// the comment above HtmlDialogUI in its header file for why. // the comment above HtmlDialogUI in its header file for why.
HtmlDialogUI::GetPropertyAccessor().SetProperty( HtmlDialogUI::GetPropertyAccessor().SetProperty(
web_contents->GetPropertyBag(), this); web_contents->GetPropertyBag(), this);
tab_watcher_.reset(new TabFirstRenderWatcher(web_contents, this)); tab_watcher_.reset(new TabRenderWatcher(web_contents, this));
DOMView::LoadURL(GetDialogContentURL()); DOMView::LoadURL(GetDialogContentURL());
} }
...@@ -316,7 +316,8 @@ void HtmlDialogView::OnRenderHostCreated(RenderViewHost* host) { ...@@ -316,7 +316,8 @@ void HtmlDialogView::OnRenderHostCreated(RenderViewHost* host) {
void HtmlDialogView::OnTabMainFrameLoaded() { void HtmlDialogView::OnTabMainFrameLoaded() {
} }
void HtmlDialogView::OnTabMainFrameFirstRender() { void HtmlDialogView::OnTabMainFrameRender() {
tab_watcher_.reset();
#if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK) #if defined(OS_CHROMEOS) && defined(TOOLKIT_USES_GTK)
if (initialized_) { if (initialized_) {
views::NativeWidgetGtk::UpdateFreezeUpdatesProperty( views::NativeWidgetGtk::UpdateFreezeUpdatesProperty(
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "base/gtest_prod_util.h" #include "base/gtest_prod_util.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "chrome/browser/tab_first_render_watcher.h" #include "chrome/browser/tab_render_watcher.h"
#include "chrome/browser/ui/views/dom_view.h" #include "chrome/browser/ui/views/dom_view.h"
#include "chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h" #include "chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h"
#include "chrome/browser/ui/webui/html_dialog_ui.h" #include "chrome/browser/ui/webui/html_dialog_ui.h"
...@@ -40,7 +40,7 @@ class HtmlDialogView ...@@ -40,7 +40,7 @@ class HtmlDialogView
public HtmlDialogTabContentsDelegate, public HtmlDialogTabContentsDelegate,
public HtmlDialogUIDelegate, public HtmlDialogUIDelegate,
public views::WidgetDelegate, public views::WidgetDelegate,
public TabFirstRenderWatcher::Delegate { public TabRenderWatcher::Delegate {
public: public:
HtmlDialogView(Profile* profile, HtmlDialogView(Profile* profile,
Browser* browser, Browser* browser,
...@@ -103,10 +103,10 @@ class HtmlDialogView ...@@ -103,10 +103,10 @@ class HtmlDialogView
// Register accelerators for this dialog. // Register accelerators for this dialog.
virtual void RegisterDialogAccelerators(); virtual void RegisterDialogAccelerators();
// TabFirstRenderWatcher::Delegate implementation. // TabRenderWatcher::Delegate implementation.
virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE; virtual void OnRenderHostCreated(RenderViewHost* host) OVERRIDE;
virtual void OnTabMainFrameLoaded() OVERRIDE; virtual void OnTabMainFrameLoaded() OVERRIDE;
virtual void OnTabMainFrameFirstRender() OVERRIDE; virtual void OnTabMainFrameRender() OVERRIDE;
private: private:
FRIEND_TEST_ALL_PREFIXES(HtmlDialogBrowserTest, WebContentRendered); FRIEND_TEST_ALL_PREFIXES(HtmlDialogBrowserTest, WebContentRendered);
...@@ -117,7 +117,7 @@ class HtmlDialogView ...@@ -117,7 +117,7 @@ class HtmlDialogView
bool initialized_; bool initialized_;
// Watches for TabContents rendering. // Watches for TabContents rendering.
scoped_ptr<TabFirstRenderWatcher> tab_watcher_; scoped_ptr<TabRenderWatcher> tab_watcher_;
// This view is a delegate to the HTML content since it needs to get notified // This view is a delegate to the HTML content since it needs to get notified
// about when the dialog is closing. For all other actions (besides dialog // about when the dialog is closing. For all other actions (besides dialog
......
...@@ -69,8 +69,8 @@ class TestHtmlDialogView: public HtmlDialogView { ...@@ -69,8 +69,8 @@ class TestHtmlDialogView: public HtmlDialogView {
HtmlDialogView::OnDialogClosed(json_retval); HtmlDialogView::OnDialogClosed(json_retval);
} }
virtual void OnTabMainFrameFirstRender() OVERRIDE { virtual void OnTabMainFrameRender() OVERRIDE {
HtmlDialogView::OnTabMainFrameFirstRender(); HtmlDialogView::OnTabMainFrameRender();
painted_ = true; painted_ = true;
MessageLoop::current()->Quit(); MessageLoop::current()->Quit();
} }
...@@ -200,7 +200,7 @@ IN_PROC_BROWSER_TEST_F(HtmlDialogBrowserTest, DISABLED_WebContentRendered) { ...@@ -200,7 +200,7 @@ IN_PROC_BROWSER_TEST_F(HtmlDialogBrowserTest, DISABLED_WebContentRendered) {
html_view->InitDialog(); html_view->InitDialog();
html_view->GetWidget()->Show(); html_view->GetWidget()->Show();
// TestHtmlDialogView::OnTabMainFrameFirstRender() will Quit(). // TestHtmlDialogView::OnTabMainFrameRender() will Quit().
MessageLoopForUI::current()->Run(); MessageLoopForUI::current()->Run();
EXPECT_TRUE(html_view->painted()); EXPECT_TRUE(html_view->painted());
......
...@@ -2503,8 +2503,6 @@ ...@@ -2503,8 +2503,6 @@
'browser/sync/user_selectable_sync_type.h', 'browser/sync/user_selectable_sync_type.h',
'browser/tab_closeable_state_watcher.cc', 'browser/tab_closeable_state_watcher.cc',
'browser/tab_closeable_state_watcher.h', 'browser/tab_closeable_state_watcher.h',
'browser/tab_first_render_watcher.cc',
'browser/tab_first_render_watcher.h',
'browser/tab_contents/background_contents.cc', 'browser/tab_contents/background_contents.cc',
'browser/tab_contents/background_contents.h', 'browser/tab_contents/background_contents.h',
'browser/tab_contents/chrome_web_contents_view_gtk_delegate.cc', 'browser/tab_contents/chrome_web_contents_view_gtk_delegate.cc',
...@@ -2549,6 +2547,8 @@ ...@@ -2549,6 +2547,8 @@
'browser/tab_contents/web_drag_bookmark_handler_mac.mm', 'browser/tab_contents/web_drag_bookmark_handler_mac.mm',
'browser/tab_contents/web_drag_bookmark_handler_win.cc', 'browser/tab_contents/web_drag_bookmark_handler_win.cc',
'browser/tab_contents/web_drag_bookmark_handler_win.h', 'browser/tab_contents/web_drag_bookmark_handler_win.h',
'browser/tab_render_watcher.cc',
'browser/tab_render_watcher.h',
'browser/tabs/default_tab_handler.cc', 'browser/tabs/default_tab_handler.cc',
'browser/tabs/default_tab_handler.h', 'browser/tabs/default_tab_handler.h',
'browser/tabs/pinned_tab_codec.cc', 'browser/tabs/pinned_tab_codec.cc',
......
...@@ -2749,7 +2749,7 @@ ...@@ -2749,7 +2749,7 @@
'browser/ssl/ssl_browser_tests.cc', 'browser/ssl/ssl_browser_tests.cc',
'browser/tab_contents/render_view_context_menu_browsertest.cc', 'browser/tab_contents/render_view_context_menu_browsertest.cc',
'browser/tab_contents/spelling_menu_observer_browsertest.cc', 'browser/tab_contents/spelling_menu_observer_browsertest.cc',
'browser/tab_first_render_watcher_browsertest.cc', 'browser/tab_render_watcher_browsertest.cc',
'browser/task_manager/task_manager_browsertest.cc', 'browser/task_manager/task_manager_browsertest.cc',
'browser/task_manager/task_manager_browsertest_util.cc', 'browser/task_manager/task_manager_browsertest_util.cc',
'browser/task_manager/task_manager_browsertest_util.h', 'browser/task_manager/task_manager_browsertest_util.h',
...@@ -3155,7 +3155,7 @@ ...@@ -3155,7 +3155,7 @@
'sources!': [ 'sources!': [
'browser/extensions/browser_action_test_util_views.cc', 'browser/extensions/browser_action_test_util_views.cc',
'browser/extensions/extension_input_apitest.cc', 'browser/extensions/extension_input_apitest.cc',
'browser/tab_first_render_watcher_browsertest.cc', 'browser/tab_render_watcher_browsertest.cc',
'browser/ui/panels/panel_browser_view_browsertest.cc', 'browser/ui/panels/panel_browser_view_browsertest.cc',
'browser/ui/views/browser_actions_container_browsertest.cc', 'browser/ui/views/browser_actions_container_browsertest.cc',
'browser/ui/views/crypto_module_password_dialog_view_unittest.cc', 'browser/ui/views/crypto_module_password_dialog_view_unittest.cc',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment