Commit cf4c534f authored by Raphael Kubo da Costa's avatar Raphael Kubo da Costa Committed by Commit Bot

chrome/browser: Replace some forward declarations with actual includes

This fixes the GCC build which was failing like this:

    ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]’:
    ../../base/scoped_observer.h:26:5:   required from ‘ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]’
    ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70:   required from here
    ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TabStripModel’
           sources_[i]->RemoveObserver(observer_);
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~

This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
initialization needlessly invokes destructor"), i.e. having something like

    ScopedObserver<T, U> observer_{this};

in a header declaration requires T and U to be fully declared because
ScopedObserver's destructor references them. In a few cases, T was only
forward-declared.

Bug: 819294
Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
Reviewed-on: https://chromium-review.googlesource.com/c/1472576
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarFinnur Thorarinsson <finnur@chromium.org>
Reviewed-by: default avatarAlan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632385}
parent f3118cfa
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/extensions/extension_view_host.h" #include "chrome/browser/extensions/extension_view_host.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "content/public/browser/devtools_agent_host.h" #include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/notification_details.h" #include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h" #include "content/public/browser/notification_source.h"
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "chrome/browser/ui/views/extensions/extension_view_views.h" #include "chrome/browser/ui/views/extensions/extension_view_views.h"
#include "content/public/browser/devtools_agent_host_observer.h" #include "content/public/browser/devtools_agent_host_observer.h"
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
#include "chrome/browser/ui/views/frame/app_menu_button.h" #include "chrome/browser/ui/views/frame/app_menu_button.h"
#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/toolbar/app_menu.h" #include "chrome/browser/ui/views/toolbar/app_menu.h"
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h" #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
#include "chrome/browser/ui/views/frame/app_menu_button_observer.h" #include "chrome/browser/ui/views/frame/app_menu_button_observer.h"
#include "ui/views/controls/scroll_view.h" #include "ui/views/controls/scroll_view.h"
...@@ -16,7 +17,6 @@ class AppMenu; ...@@ -16,7 +17,6 @@ class AppMenu;
class AppMenuButton; class AppMenuButton;
class Browser; class Browser;
class BrowserActionsContainer; class BrowserActionsContainer;
class ToolbarActionsBar;
namespace views { namespace views {
class MenuItemView; class MenuItemView;
......
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/common/extensions/api/url_handlers/url_handlers_parser.h" #include "chrome/common/extensions/api/url_handlers/url_handlers_parser.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
#include "url/gurl.h" #include "url/gurl.h"
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "chrome/browser/web_applications/components/web_app_tab_helper_base.h" #include "chrome/browser/web_applications/components/web_app_tab_helper_base.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_registry_observer.h" #include "extensions/browser/extension_registry_observer.h"
namespace content { namespace content {
...@@ -17,7 +18,6 @@ class WebContents; ...@@ -17,7 +18,6 @@ class WebContents;
namespace extensions { namespace extensions {
class Extension; class Extension;
class ExtensionRegistry;
// Allows to associate a tab with bookmark app. // Allows to associate a tab with bookmark app.
class BookmarkAppTabHelper : public web_app::WebAppTabHelperBase, class BookmarkAppTabHelper : public web_app::WebAppTabHelperBase,
......
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