From ee1f3acf7b7e15a58425d071e56f25a845d61a56 Mon Sep 17 00:00:00 2001 From: Haojian Wu Date: Fri, 31 Mar 2017 21:27:06 +0200 Subject: [PATCH] Don't use anonymous namespace in header file. Anonymous namespace should be forbidden in header files even for the forward declarations: * As declarations defined in anonymous namespace are internal linkage, each translation unit which includes this header will get unique copy, which wastes space. * It is easy to violate C++ ODR rule. Consider the following "foo.h": ```cpp namespace { class Foo; } class Bar { public: Foo* getFoo(); Foo* foo; } ``` If the 'foo.h' is included in multiple `.cc` files, the compiler will put `Foo` into a different anonymous namespace in each `.cc`, which means there are different definitions of `Foo` in the program (a violation of the ODR). --- .../views/inspectable_web_contents_view_views.cc | 5 +++-- .../views/inspectable_web_contents_view_views.h | 11 ++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/brightray/browser/views/inspectable_web_contents_view_views.cc b/brightray/browser/views/inspectable_web_contents_view_views.cc index 6a9997f23245..073da870e564 100644 --- a/brightray/browser/views/inspectable_web_contents_view_views.cc +++ b/brightray/browser/views/inspectable_web_contents_view_views.cc @@ -178,7 +178,7 @@ void InspectableWebContentsViewViews::SetIsDocked(bool docked) { views::Widget::InitParams params; params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; - params.delegate = GetDevToolsWindowDelegate(); + params.delegate = devtools_window_delegate_; params.bounds = inspectable_web_contents()->GetDevToolsBounds(); #if defined(USE_X11) @@ -203,7 +203,8 @@ void InspectableWebContentsViewViews::SetContentsResizingStrategy( void InspectableWebContentsViewViews::SetTitle(const base::string16& title) { if (devtools_window_) { - GetDevToolsWindowDelegate()->SetWindowTitle(title); + static_cast(devtools_window_delegate_) + ->SetWindowTitle(title); devtools_window_->UpdateWindowTitle(); } } diff --git a/brightray/browser/views/inspectable_web_contents_view_views.h b/brightray/browser/views/inspectable_web_contents_view_views.h index 1af53e92fdfb..1d2963fd19e7 100644 --- a/brightray/browser/views/inspectable_web_contents_view_views.h +++ b/brightray/browser/views/inspectable_web_contents_view_views.h @@ -10,14 +10,11 @@ namespace views { class WebView; class Widget; +class WidgetDelegate; } namespace brightray { -namespace { // NOLINT -class DevToolsWindowDelegate; -} - class InspectableWebContentsImpl; class InspectableWebContentsViewViews : public InspectableWebContentsView, @@ -27,10 +24,6 @@ class InspectableWebContentsViewViews : public InspectableWebContentsView, InspectableWebContentsImpl* inspectable_web_contents_impl); ~InspectableWebContentsViewViews(); - DevToolsWindowDelegate* GetDevToolsWindowDelegate() const { - return devtools_window_delegate_; - } - // InspectableWebContentsView: views::View* GetView() override; views::View* GetWebView() override; @@ -61,7 +54,7 @@ class InspectableWebContentsViewViews : public InspectableWebContentsView, DevToolsContentsResizingStrategy strategy_; bool devtools_visible_; - DevToolsWindowDelegate* devtools_window_delegate_; + views::WidgetDelegate* devtools_window_delegate_; DISALLOW_COPY_AND_ASSIGN(InspectableWebContentsViewViews); };