From 67d0d62d638f7b15e031dd2c22756df0109e021d Mon Sep 17 00:00:00 2001 From: "brettw@chromium.org" Date: Wed, 26 Aug 2009 02:53:02 +0000 Subject: Move the compact navigation bar to the chromeos directory. Generalize the chromeos rules so we don't have to list every file in the exclusions. Review URL: http://codereview.chromium.org/174446 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24416 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chromeos/compact_navigation_bar.cc | 209 ++++++++++++++++++++++ chrome/browser/chromeos/compact_navigation_bar.h | 78 ++++++++ chrome/browser/gtk/browser_window_gtk.cc | 2 +- chrome/browser/views/compact_navigation_bar.cc | 209 ---------------------- chrome/browser/views/compact_navigation_bar.h | 78 -------- chrome/chrome.gyp | 16 +- 6 files changed, 294 insertions(+), 298 deletions(-) create mode 100644 chrome/browser/chromeos/compact_navigation_bar.cc create mode 100644 chrome/browser/chromeos/compact_navigation_bar.h delete mode 100644 chrome/browser/views/compact_navigation_bar.cc delete mode 100644 chrome/browser/views/compact_navigation_bar.h (limited to 'chrome') diff --git a/chrome/browser/chromeos/compact_navigation_bar.cc b/chrome/browser/chromeos/compact_navigation_bar.cc new file mode 100644 index 0000000..e2be4a0 --- /dev/null +++ b/chrome/browser/chromeos/compact_navigation_bar.cc @@ -0,0 +1,209 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/compact_navigation_bar.h" + +#include "app/gfx/canvas.h" +#include "app/resource_bundle.h" +#include "app/theme_provider.h" +#include "base/logging.h" +#include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h" +#include "chrome/browser/browser.h" +#include "chrome/browser/browser_window.h" +#include "chrome/browser/views/frame/status_area_view.h" +#include "chrome/browser/profile.h" +#include "chrome/browser/tab_contents/tab_contents.h" +#include "grit/theme_resources.h" +#include "views/controls/button/image_button.h" +#include "views/controls/image_view.h" +#include "views/controls/native/native_view_host.h" + +// Padding inside each button around the image. +static const int kInnerPadding = 1; + +// Spacing between buttons. +static const int kHorizPadding = 3; + +static const int kURLWidth = 150; + +static const int kChromeButtonSize = 25; + +CompactNavigationBar::CompactNavigationBar(Browser* browser) + : browser_(browser), + initialized_(false) { +} + +CompactNavigationBar::~CompactNavigationBar() { +} + +void CompactNavigationBar::Init() { + DCHECK(!initialized_); + initialized_ = true; + + ResourceBundle& resource_bundle = ResourceBundle::GetSharedInstance(); + + chrome_button_ = new views::ImageButton(this); + chrome_button_->SetImage(views::CustomButton::BS_NORMAL, + resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_CHROME)); + chrome_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, + views::ImageButton::ALIGN_MIDDLE); + AddChildView(chrome_button_); + + back_button_ = new views::ImageButton(this); + back_button_->SetImage(views::CustomButton::BS_NORMAL, + resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_BACK)); + back_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, + views::ImageButton::ALIGN_MIDDLE); + AddChildView(back_button_); + + bf_separator_ = new views::ImageView; + bf_separator_->SetImage( + resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_SEPARATOR)); + AddChildView(bf_separator_); + + forward_button_ = new views::ImageButton(this); + forward_button_->SetImage(views::CustomButton::BS_NORMAL, + resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_FORWARD)); + forward_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, + views::ImageButton::ALIGN_MIDDLE); + AddChildView(forward_button_); + + // URL bar construction. + location_entry_.reset(new AutocompleteEditViewGtk( + this, browser_->toolbar_model(), browser_->profile(), + browser_->command_updater(), false, this)); + location_entry_->Init(); + gtk_widget_show_all(location_entry_->widget()); + gtk_widget_hide(location_entry_->widget()); + + location_entry_view_ = new views::NativeViewHost; + AddChildView(location_entry_view_); + location_entry_view_->set_focus_view(this); + location_entry_view_->Attach(location_entry_->widget()); +} + +gfx::Size CompactNavigationBar::GetPreferredSize() { + int width = 0; + + width += kChromeButtonSize + kHorizPadding; // Chrome button. + width += kURLWidth + kHorizPadding; // URL bar. + width += back_button_->GetPreferredSize().width() + kHorizPadding + + kInnerPadding * 2; + width += bf_separator_->GetPreferredSize().width() + kHorizPadding; + width += forward_button_->GetPreferredSize().width() + kHorizPadding + + kInnerPadding * 2; + + return gfx::Size(width, kChromeButtonSize); +} + +void CompactNavigationBar::Layout() { + if (!initialized_) + return; + + int curx = 0; + + chrome_button_->SetBounds(curx, 0, kChromeButtonSize, height()); + curx += kChromeButtonSize + kHorizPadding; + + // URL bar. + location_entry_view_->SetBounds(curx, 0, kURLWidth, height()); + curx += kURLWidth + kHorizPadding; + + // "Back | Forward" section. + gfx::Size button_size = back_button_->GetPreferredSize(); + button_size.set_width(button_size.width() + kInnerPadding * 2); + back_button_->SetBounds(curx, 0, button_size.width(), height()); + curx += button_size.width() + kHorizPadding; + + button_size = bf_separator_->GetPreferredSize(); + bf_separator_->SetBounds(curx, 0, button_size.width(), height()); + curx += button_size.width() + kHorizPadding; + + button_size = forward_button_->GetPreferredSize(); + button_size.set_width(button_size.width() + kInnerPadding * 2); + forward_button_->SetBounds(curx, 0, button_size.width(), height()); + curx += button_size.width() + kHorizPadding; +} + +void CompactNavigationBar::Paint(gfx::Canvas* canvas) { + ThemeProvider* theme = browser_->profile()->GetThemeProvider(); + + // Fill the background. + SkBitmap* background; + if (browser_->window()->IsActive()) + background = theme->GetBitmapNamed(IDR_THEME_FRAME); + else + background = theme->GetBitmapNamed(IDR_THEME_FRAME_INACTIVE); + canvas->TileImageInt(*background, 0, 0, width(), height()); +} + +void CompactNavigationBar::ButtonPressed(views::Button* sender) { + TabContents* tab_contents = browser_->GetSelectedTabContents(); + if (!tab_contents) + return; + + if (sender == chrome_button_) { + AddTabWithURL(GURL("http://goto.ext.google.com/tik-tok"), + PageTransition::START_PAGE); + } else if (sender == back_button_) { + if (tab_contents->controller().CanGoBack()) + tab_contents->controller().GoBack(); + } else if (sender == forward_button_) { + if (tab_contents->controller().CanGoForward()) + tab_contents->controller().GoForward(); + } else { + NOTREACHED(); + } +} + +void CompactNavigationBar::OnAutocompleteAccept( + const GURL& url, + WindowOpenDisposition disposition, + PageTransition::Type transition, + const GURL& alternate_nav_url) { + AddTabWithURL(url, transition); +} + +void CompactNavigationBar::OnChanged() { + // Other one does "DoLayout" here. +} + +void CompactNavigationBar::OnInputInProgress(bool in_progress) { +} + +SkBitmap CompactNavigationBar::GetFavIcon() const { + return SkBitmap(); +} + +std::wstring CompactNavigationBar::GetTitle() const { + return std::wstring(); +} + +gfx::Rect CompactNavigationBar::GetPopupBounds() const { + gfx::Point upper_left(0, height()); + ConvertPointToScreen(this, &upper_left); + return gfx::Rect(upper_left.x(), upper_left.y(), 700, 100); +} + +void CompactNavigationBar::AddTabWithURL(const GURL& url, + PageTransition::Type transition) { + switch (StatusAreaView::GetOpenTabsMode()) { + case StatusAreaView::OPEN_TABS_ON_LEFT: { + // Add the new tab at the first non-pinned location. + int index = browser_->tabstrip_model()->IndexOfFirstNonPinnedTab(); + browser_->AddTabWithURL(url, GURL(), transition, + true, index, true, NULL); + break; + } + case StatusAreaView::OPEN_TABS_CLOBBER: { + browser_->GetSelectedTabContents()->controller().LoadURL( + url, GURL(), transition); + break; + } + case StatusAreaView::OPEN_TABS_ON_RIGHT: { + browser_->AddTabWithURL(url, GURL(), transition, true, -1, true, NULL); + break; + } + } +} diff --git a/chrome/browser/chromeos/compact_navigation_bar.h b/chrome/browser/chromeos/compact_navigation_bar.h new file mode 100644 index 0000000..f086f34 --- /dev/null +++ b/chrome/browser/chromeos/compact_navigation_bar.h @@ -0,0 +1,78 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_COMPACT_NAVIGATION_BAR_H_ +#define CHROME_BROWSER_CHROMEOS_COMPACT_NAVIGATION_BAR_H_ + +#include "base/basictypes.h" +#include "base/scoped_ptr.h" +#include "chrome/browser/autocomplete/autocomplete_edit.h" +#include "chrome/browser/autocomplete/autocomplete_popup_view.h" +#include "views/controls/button/button.h" +#include "views/view.h" + +class AutocompleteEditViewGtk; +class Browser; + +namespace views { +class ImageButton; +class ImageView; +class NativeViewHost; +} + +// This class provides a small navigation bar that includes back, forward, and +// a small text entry box. +class CompactNavigationBar : public views::View, + public views::ButtonListener, + public AutocompleteEditController, + public AutocompletePopupPositioner { + public: + explicit CompactNavigationBar(Browser* browser); + virtual ~CompactNavigationBar(); + + // Must be called before anything else, but after adding this view to the + // widget. + void Init(); + + // views::View overrides. + virtual gfx::Size GetPreferredSize(); + virtual void Layout(); + virtual void Paint(gfx::Canvas* canvas); + + private: + // views::ButtonListener implementation. + virtual void ButtonPressed(views::Button* sender); + + // AutocompleteController implementation. + virtual void OnAutocompleteAccept(const GURL& url, + WindowOpenDisposition disposition, + PageTransition::Type transition, + const GURL& alternate_nav_url); + virtual void OnChanged(); + virtual void OnInputInProgress(bool in_progress); + virtual SkBitmap GetFavIcon() const; + virtual std::wstring GetTitle() const; + + // AutocompletePopupPositioner implementation. + virtual gfx::Rect GetPopupBounds() const; + + void AddTabWithURL(const GURL& url, PageTransition::Type transition); + + Browser* browser_; + + bool initialized_; + + views::ImageButton* chrome_button_; + + views::ImageButton* back_button_; + views::ImageView* bf_separator_; + views::ImageButton* forward_button_; + + scoped_ptr location_entry_; + views::NativeViewHost* location_entry_view_; + + DISALLOW_COPY_AND_ASSIGN(CompactNavigationBar); +}; + +#endif // CHROME_BROWSER_CHROMEOS_COMPACT_NAVIGATION_BAR_H_ diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index 54dc79a..2c559ca 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -72,8 +72,8 @@ #include "skia/ext/skia_utils.h" #if defined(OS_CHROMEOS) +#include "chrome/browser/chromeos/compact_navigation_bar.h" #include "chrome/browser/gtk/custom_button.h" -#include "chrome/browser/views/compact_navigation_bar.h" #include "chrome/browser/views/frame/status_area_view.h" #include "chrome/browser/views/panel_controller.h" #include "chrome/browser/views/tabs/tab_overview_types.h" diff --git a/chrome/browser/views/compact_navigation_bar.cc b/chrome/browser/views/compact_navigation_bar.cc deleted file mode 100644 index 7feb27b..0000000 --- a/chrome/browser/views/compact_navigation_bar.cc +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/views/compact_navigation_bar.h" - -#include "app/gfx/canvas.h" -#include "app/resource_bundle.h" -#include "app/theme_provider.h" -#include "base/logging.h" -#include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h" -#include "chrome/browser/browser.h" -#include "chrome/browser/browser_window.h" -#include "chrome/browser/views/frame/status_area_view.h" -#include "chrome/browser/profile.h" -#include "chrome/browser/tab_contents/tab_contents.h" -#include "grit/theme_resources.h" -#include "views/controls/button/image_button.h" -#include "views/controls/image_view.h" -#include "views/controls/native/native_view_host.h" - -// Padding inside each button around the image. -static const int kInnerPadding = 1; - -// Spacing between buttons. -static const int kHorizPadding = 3; - -static const int kURLWidth = 150; - -static const int kChromeButtonSize = 25; - -CompactNavigationBar::CompactNavigationBar(Browser* browser) - : browser_(browser), - initialized_(false) { -} - -CompactNavigationBar::~CompactNavigationBar() { -} - -void CompactNavigationBar::Init() { - DCHECK(!initialized_); - initialized_ = true; - - ResourceBundle& resource_bundle = ResourceBundle::GetSharedInstance(); - - chrome_button_ = new views::ImageButton(this); - chrome_button_->SetImage(views::CustomButton::BS_NORMAL, - resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_CHROME)); - chrome_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, - views::ImageButton::ALIGN_MIDDLE); - AddChildView(chrome_button_); - - back_button_ = new views::ImageButton(this); - back_button_->SetImage(views::CustomButton::BS_NORMAL, - resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_BACK)); - back_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, - views::ImageButton::ALIGN_MIDDLE); - AddChildView(back_button_); - - bf_separator_ = new views::ImageView; - bf_separator_->SetImage( - resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_SEPARATOR)); - AddChildView(bf_separator_); - - forward_button_ = new views::ImageButton(this); - forward_button_->SetImage(views::CustomButton::BS_NORMAL, - resource_bundle.GetBitmapNamed(IDR_COMPACTNAV_FORWARD)); - forward_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, - views::ImageButton::ALIGN_MIDDLE); - AddChildView(forward_button_); - - // URL bar construction. - location_entry_.reset(new AutocompleteEditViewGtk( - this, browser_->toolbar_model(), browser_->profile(), - browser_->command_updater(), false, this)); - location_entry_->Init(); - gtk_widget_show_all(location_entry_->widget()); - gtk_widget_hide(location_entry_->widget()); - - location_entry_view_ = new views::NativeViewHost; - AddChildView(location_entry_view_); - location_entry_view_->set_focus_view(this); - location_entry_view_->Attach(location_entry_->widget()); -} - -gfx::Size CompactNavigationBar::GetPreferredSize() { - int width = 0; - - width += kChromeButtonSize + kHorizPadding; // Chrome button. - width += kURLWidth + kHorizPadding; // URL bar. - width += back_button_->GetPreferredSize().width() + kHorizPadding + - kInnerPadding * 2; - width += bf_separator_->GetPreferredSize().width() + kHorizPadding; - width += forward_button_->GetPreferredSize().width() + kHorizPadding + - kInnerPadding * 2; - - return gfx::Size(width, kChromeButtonSize); -} - -void CompactNavigationBar::Layout() { - if (!initialized_) - return; - - int curx = 0; - - chrome_button_->SetBounds(curx, 0, kChromeButtonSize, height()); - curx += kChromeButtonSize + kHorizPadding; - - // URL bar. - location_entry_view_->SetBounds(curx, 0, kURLWidth, height()); - curx += kURLWidth + kHorizPadding; - - // "Back | Forward" section. - gfx::Size button_size = back_button_->GetPreferredSize(); - button_size.set_width(button_size.width() + kInnerPadding * 2); - back_button_->SetBounds(curx, 0, button_size.width(), height()); - curx += button_size.width() + kHorizPadding; - - button_size = bf_separator_->GetPreferredSize(); - bf_separator_->SetBounds(curx, 0, button_size.width(), height()); - curx += button_size.width() + kHorizPadding; - - button_size = forward_button_->GetPreferredSize(); - button_size.set_width(button_size.width() + kInnerPadding * 2); - forward_button_->SetBounds(curx, 0, button_size.width(), height()); - curx += button_size.width() + kHorizPadding; -} - -void CompactNavigationBar::Paint(gfx::Canvas* canvas) { - ThemeProvider* theme = browser_->profile()->GetThemeProvider(); - - // Fill the background. - SkBitmap* background; - if (browser_->window()->IsActive()) - background = theme->GetBitmapNamed(IDR_THEME_FRAME); - else - background = theme->GetBitmapNamed(IDR_THEME_FRAME_INACTIVE); - canvas->TileImageInt(*background, 0, 0, width(), height()); -} - -void CompactNavigationBar::ButtonPressed(views::Button* sender) { - TabContents* tab_contents = browser_->GetSelectedTabContents(); - if (!tab_contents) - return; - - if (sender == chrome_button_) { - AddTabWithURL(GURL("http://goto.ext.google.com/tik-tok"), - PageTransition::START_PAGE); - } else if (sender == back_button_) { - if (tab_contents->controller().CanGoBack()) - tab_contents->controller().GoBack(); - } else if (sender == forward_button_) { - if (tab_contents->controller().CanGoForward()) - tab_contents->controller().GoForward(); - } else { - NOTREACHED(); - } -} - -void CompactNavigationBar::OnAutocompleteAccept( - const GURL& url, - WindowOpenDisposition disposition, - PageTransition::Type transition, - const GURL& alternate_nav_url) { - AddTabWithURL(url, transition); -} - -void CompactNavigationBar::OnChanged() { - // Other one does "DoLayout" here. -} - -void CompactNavigationBar::OnInputInProgress(bool in_progress) { -} - -SkBitmap CompactNavigationBar::GetFavIcon() const { - return SkBitmap(); -} - -std::wstring CompactNavigationBar::GetTitle() const { - return std::wstring(); -} - -gfx::Rect CompactNavigationBar::GetPopupBounds() const { - gfx::Point upper_left(0, height()); - ConvertPointToScreen(this, &upper_left); - return gfx::Rect(upper_left.x(), upper_left.y(), 700, 100); -} - -void CompactNavigationBar::AddTabWithURL(const GURL& url, - PageTransition::Type transition) { - switch (StatusAreaView::GetOpenTabsMode()) { - case StatusAreaView::OPEN_TABS_ON_LEFT: { - // Add the new tab at the first non-pinned location. - int index = browser_->tabstrip_model()->IndexOfFirstNonPinnedTab(); - browser_->AddTabWithURL(url, GURL(), transition, - true, index, true, NULL); - break; - } - case StatusAreaView::OPEN_TABS_CLOBBER: { - browser_->GetSelectedTabContents()->controller().LoadURL( - url, GURL(), transition); - break; - } - case StatusAreaView::OPEN_TABS_ON_RIGHT: { - browser_->AddTabWithURL(url, GURL(), transition, true, -1, true, NULL); - break; - } - } -} diff --git a/chrome/browser/views/compact_navigation_bar.h b/chrome/browser/views/compact_navigation_bar.h deleted file mode 100644 index ba7286b..0000000 --- a/chrome/browser/views/compact_navigation_bar.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_VIEWS_COMPACT_NAVIGATION_BAR_H_ -#define CHROME_BROWSER_VIEWS_COMPACT_NAVIGATION_BAR_H_ - -#include "base/basictypes.h" -#include "base/scoped_ptr.h" -#include "chrome/browser/autocomplete/autocomplete_edit.h" -#include "chrome/browser/autocomplete/autocomplete_popup_view.h" -#include "views/controls/button/button.h" -#include "views/view.h" - -class AutocompleteEditViewGtk; -class Browser; - -namespace views { -class ImageButton; -class ImageView; -class NativeViewHost; -} - -// This class provides a small navigation bar that includes back, forward, and -// a small text entry box. -class CompactNavigationBar : public views::View, - public views::ButtonListener, - public AutocompleteEditController, - public AutocompletePopupPositioner { - public: - explicit CompactNavigationBar(Browser* browser); - virtual ~CompactNavigationBar(); - - // Must be called before anything else, but after adding this view to the - // widget. - void Init(); - - // views::View overrides. - virtual gfx::Size GetPreferredSize(); - virtual void Layout(); - virtual void Paint(gfx::Canvas* canvas); - - private: - // views::ButtonListener implementation. - virtual void ButtonPressed(views::Button* sender); - - // AutocompleteController implementation. - virtual void OnAutocompleteAccept(const GURL& url, - WindowOpenDisposition disposition, - PageTransition::Type transition, - const GURL& alternate_nav_url); - virtual void OnChanged(); - virtual void OnInputInProgress(bool in_progress); - virtual SkBitmap GetFavIcon() const; - virtual std::wstring GetTitle() const; - - // AutocompletePopupPositioner implementation. - virtual gfx::Rect GetPopupBounds() const; - - void AddTabWithURL(const GURL& url, PageTransition::Type transition); - - Browser* browser_; - - bool initialized_; - - views::ImageButton* chrome_button_; - - views::ImageButton* back_button_; - views::ImageView* bf_separator_; - views::ImageButton* forward_button_; - - scoped_ptr location_entry_; - views::NativeViewHost* location_entry_view_; - - DISALLOW_COPY_AND_ASSIGN(CompactNavigationBar); -}; - -#endif // CHROME_BROWSER_VIEWS_COMPACT_NAVIGATION_BAR_H_ diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index 99c9a0a..207988c 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -800,6 +800,8 @@ 'browser/chrome_plugin_host.h', 'browser/chrome_thread.cc', 'browser/chrome_thread.h', + 'browser/chromeos/compact_navigation_bar.cc', + 'browser/chromeos/compact_navigation_bar.h', 'browser/chromeos/pipe_reader.cc', 'browser/chromeos/pipe_reader.h', 'browser/chromeos/external_cookie_handler.cc', @@ -1845,8 +1847,6 @@ 'browser/views/chrome_views_delegate.h', 'browser/views/clear_browsing_data.cc', 'browser/views/clear_browsing_data.h', - 'browser/views/compact_navigation_bar.cc', - 'browser/views/compact_navigation_bar.h', 'browser/views/constrained_window_win.cc', 'browser/views/constrained_window_win.h', 'browser/views/confirm_message_box_dialog.cc', @@ -2087,11 +2087,8 @@ ], }], ['chromeos==0', { - 'sources!': [ - 'browser/chromeos/pipe_reader.cc', - 'browser/chromeos/pipe_reader.h', - 'browser/chromeos/external_cookie_handler.cc', - 'browser/chromeos/external_cookie_handler.h', + 'sources/': [ + ['exclude', '^browser/chromeos'], ], }], ['OS=="linux"', { @@ -4127,9 +4124,8 @@ ], 'conditions': [ ['chromeos==0', { - 'sources!': [ - 'browser/chromeos/pipe_reader_unittest.cc', - 'browser/chromeos/external_cookie_handler_unittest.cc', + 'sources/': [ + ['exclude', '^browser/chromeos'], ], }], ['OS=="linux"', { -- cgit v1.1