diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-14 16:32:34 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-14 16:32:34 +0000 |
commit | bec08d7ad993f82975e0cec80bb9d7e711c38cdd (patch) | |
tree | 46b513655d993d71fcc434861e16f0af28c39d83 | |
parent | d8e73bdf182614e9893e898e6358c262ea50a749 (diff) | |
download | chromium_src-bec08d7ad993f82975e0cec80bb9d7e711c38cdd.zip chromium_src-bec08d7ad993f82975e0cec80bb9d7e711c38cdd.tar.gz chromium_src-bec08d7ad993f82975e0cec80bb9d7e711c38cdd.tar.bz2 |
Move scoped_ole_initializer.h to ui/base/win and clean up ole initialization/uninitialization.
R=sky@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9664069
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126658 0039d316-1c4b-4281-b951-d872f2087c98
21 files changed, 112 insertions, 111 deletions
diff --git a/chrome/app/scoped_ole_initializer.h b/chrome/app/scoped_ole_initializer.h deleted file mode 100644 index 0bb8594..0000000 --- a/chrome/app/scoped_ole_initializer.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2011 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_APP_SCOPED_OLE_INITIALIZER_H_ -#define CHROME_APP_SCOPED_OLE_INITIALIZER_H_ -#pragma once - -#include "base/logging.h" -#include "build/build_config.h" - -// Wraps OLE initialization in a cross-platform class meant to be used on the -// stack so init/uninit is done with scoping. This class is ok for use by -// non-windows platforms; it just doesn't do anything. - -#if defined(OS_WIN) - -#include <ole2.h> - -class ScopedOleInitializer { - public: - ScopedOleInitializer() { - int ole_result = OleInitialize(NULL); - DCHECK_EQ(S_OK, ole_result); - } - ~ScopedOleInitializer() { - OleUninitialize(); - } -}; - -#else - -class ScopedOleInitializer { - public: - // Empty, this class does nothing on non-win32 systems. Empty ctor is - // necessary to avoid "unused variable" warning on gcc. - ScopedOleInitializer() { } -}; - -#endif - -#endif // CHROME_APP_SCOPED_OLE_INITIALIZER_H_ diff --git a/chrome/chrome_exe.gypi b/chrome/chrome_exe.gypi index 92016b5..bdae4de 100644 --- a/chrome/chrome_exe.gypi +++ b/chrome/chrome_exe.gypi @@ -24,7 +24,6 @@ 'app/client_util.h', 'app/hard_error_handler_win.cc', 'app/hard_error_handler_win.h', - 'app/scoped_ole_initializer.h', '../content/app/startup_helper_win.cc', ], 'mac_bundle_resources': [ diff --git a/chrome/test/base/browser_with_test_window_test.cc b/chrome/test/base/browser_with_test_window_test.cc index 2538644..285cf0a 100644 --- a/chrome/test/base/browser_with_test_window_test.cc +++ b/chrome/test/base/browser_with_test_window_test.cc @@ -4,10 +4,6 @@ #include "chrome/test/base/browser_with_test_window_test.h" -#if defined(OS_WIN) -#include <ole2.h> -#endif // defined(OS_WIN) - #include "chrome/browser/tabs/tab_strip_model.h" #include "chrome/browser/ui/browser_navigator.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" @@ -37,9 +33,6 @@ BrowserWithTestWindowTest::BrowserWithTestWindowTest() file_thread_(BrowserThread::FILE, message_loop()), file_user_blocking_thread_( BrowserThread::FILE_USER_BLOCKING, message_loop()) { -#if defined(OS_WIN) - OleInitialize(NULL); -#endif } void BrowserWithTestWindowTest::SetUp() { @@ -76,10 +69,6 @@ BrowserWithTestWindowTest::~BrowserWithTestWindowTest() { MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); MessageLoop::current()->Run(); - -#if defined(OS_WIN) - OleUninitialize(); -#endif } void BrowserWithTestWindowTest::AddTab(Browser* browser, const GURL& url) { diff --git a/chrome/test/base/browser_with_test_window_test.h b/chrome/test/base/browser_with_test_window_test.h index 1a63dc6..41ee6a0 100644 --- a/chrome/test/base/browser_with_test_window_test.h +++ b/chrome/test/base/browser_with_test_window_test.h @@ -14,6 +14,10 @@ #include "content/test/test_renderer_host.h" #include "testing/gtest/include/gtest/gtest.h" +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif + class GURL; #if defined(USE_AURA) @@ -126,6 +130,10 @@ class BrowserWithTestWindowTest : public testing::Test { scoped_ptr<aura::test::TestStackingClient> test_stacking_client_; #endif +#if defined(OS_WIN) + ui::ScopedOleInitializer ole_initializer_; +#endif + DISALLOW_COPY_AND_ASSIGN(BrowserWithTestWindowTest); }; diff --git a/chrome/test/base/chrome_test_suite.h b/chrome/test/base/chrome_test_suite.h index 7e30adf..67da830 100644 --- a/chrome/test/base/chrome_test_suite.h +++ b/chrome/test/base/chrome_test_suite.h @@ -1,4 +1,4 @@ -// 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 // found in the LICENSE file. @@ -11,7 +11,10 @@ #include "base/file_path.h" #include "base/memory/scoped_ptr.h" #include "base/test/test_suite.h" -#include "chrome/app/scoped_ole_initializer.h" + +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif namespace base { class StatsTable; @@ -36,7 +39,9 @@ class ChromeTestSuite : public base::TestSuite { std::string stats_filename_; scoped_ptr<base::StatsTable> stats_table_; - ScopedOleInitializer ole_initializer_; +#if defined(OS_WIN) + ui::ScopedOleInitializer ole_initializer_; +#endif }; #endif // CHROME_TEST_BASE_CHROME_TEST_SUITE_H_ diff --git a/chrome/test/base/view_event_test_base.cc b/chrome/test/base/view_event_test_base.cc index de2bb32..baa6569 100644 --- a/chrome/test/base/view_event_test_base.cc +++ b/chrome/test/base/view_event_test_base.cc @@ -4,10 +4,6 @@ #include "chrome/test/base/view_event_test_base.h" -#if defined(OS_WIN) -#include <ole2.h> -#endif - #include "base/bind.h" #include "base/bind_helpers.h" #include "base/message_loop.h" @@ -82,9 +78,6 @@ void ViewEventTestBase::Done() { } void ViewEventTestBase::SetUp() { -#if defined(OS_WIN) - OleInitialize(NULL); -#endif ui::CompositorTestSupport::Initialize(); #if defined(USE_AURA) ash::Shell::CreateInstance(NULL); @@ -107,9 +100,6 @@ void ViewEventTestBase::TearDown() { aura::Env::DeleteInstance(); #endif ui::CompositorTestSupport::Terminate(); -#if defined(OS_WIN) - OleUninitialize(); -#endif } bool ViewEventTestBase::CanResize() const { diff --git a/chrome/test/base/view_event_test_base.h b/chrome/test/base/view_event_test_base.h index 8105182..5260ca1 100644 --- a/chrome/test/base/view_event_test_base.h +++ b/chrome/test/base/view_event_test_base.h @@ -20,6 +20,10 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/views/widget/widget_delegate.h" +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif + namespace gfx { class Size; } @@ -137,6 +141,10 @@ class ViewEventTestBase : public views::WidgetDelegate, content::TestBrowserThread ui_thread_; +#if defined(OS_WIN) + ui::ScopedOleInitializer ole_initializer_; +#endif + DISALLOW_COPY_AND_ASSIGN(ViewEventTestBase); }; diff --git a/chrome_frame/test/net/fake_external_tab.h b/chrome_frame/test/net/fake_external_tab.h index a6d8f86..46479b5 100644 --- a/chrome_frame/test/net/fake_external_tab.h +++ b/chrome_frame/test/net/fake_external_tab.h @@ -12,7 +12,6 @@ #include "base/message_loop.h" #include "base/process.h" #include "base/win/scoped_handle.h" -#include "chrome/app/scoped_ole_initializer.h" #include "chrome/browser/browser_process_impl.h" #include "chrome_frame/test/net/process_singleton_subclass.h" #include "chrome_frame/test/net/test_automation_provider.h" diff --git a/chrome_frame/test/reliability/reliability_test_suite.h b/chrome_frame/test/reliability/reliability_test_suite.h index 4e41ede..e245ba5 100644 --- a/chrome_frame/test/reliability/reliability_test_suite.h +++ b/chrome_frame/test/reliability/reliability_test_suite.h @@ -1,10 +1,12 @@ -// Copyright (c) 2006-2009 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 // found in the LICENSE file. #ifndef CHROME_FRAME_TEST_RELIABILITY_RELIABILITY_TEST_SUITE_H_ #define CHROME_FRAME_TEST_RELIABILITY_RELIABILITY_TEST_SUITE_H_ +#include <objbase.h> + #include "chrome_frame/test/reliability/page_load_test.h" #include "chrome/test/ui/ui_test_suite.h" diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc index 9b65ac54..ff9a263 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc @@ -47,7 +47,6 @@ #if defined(OS_WIN) #include <windows.h> #include <commctrl.h> -#include <ole2.h> #include <shellapi.h> #include "content/browser/system_message_window_win.h" @@ -219,17 +218,11 @@ BrowserMainLoop::BrowserMainLoop(const content::MainFunctionParams& parameters) result_code_(content::RESULT_CODE_NORMAL_EXIT) { DCHECK(!g_current_browser_main_loop); g_current_browser_main_loop = this; -#if defined(OS_WIN) - OleInitialize(NULL); -#endif } BrowserMainLoop::~BrowserMainLoop() { DCHECK_EQ(this, g_current_browser_main_loop); g_current_browser_main_loop = NULL; -#if defined(OS_WIN) - OleUninitialize(); -#endif } void BrowserMainLoop::Init() { diff --git a/content/browser/browser_main_loop.h b/content/browser/browser_main_loop.h index eb34a0a..138d11e 100644 --- a/content/browser/browser_main_loop.h +++ b/content/browser/browser_main_loop.h @@ -10,6 +10,10 @@ #include "base/memory/scoped_ptr.h" #include "content/browser/browser_process_sub_thread.h" +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif + class AudioManager; class BrowserOnlineStateObserver; class CommandLine; @@ -115,6 +119,10 @@ class BrowserMainLoop { scoped_ptr<BrowserProcessSubThread> cache_thread_; scoped_ptr<BrowserProcessSubThread> io_thread_; +#if defined(OS_WIN) + ui::ScopedOleInitializer ole_initializer_; +#endif + DISALLOW_COPY_AND_ASSIGN(BrowserMainLoop); }; diff --git a/ui/aura/test/aura_test_helper.cc b/ui/aura/test/aura_test_helper.cc index 4eb08dd..dd3f73a 100644 --- a/ui/aura/test/aura_test_helper.cc +++ b/ui/aura/test/aura_test_helper.cc @@ -4,10 +4,6 @@ #include "ui/aura/test/aura_test_helper.h" -#if defined(OS_WIN) -#include <ole2.h> -#endif - #include "ui/aura/env.h" #include "ui/aura/root_window.h" #include "ui/gfx/compositor/layer_animator.h" @@ -18,18 +14,11 @@ namespace test { AuraTestHelper::AuraTestHelper() : setup_called_(false), teardown_called_(false) { -#if defined(OS_WIN) - OleInitialize(NULL); -#endif - // Disable animations during tests. ui::LayerAnimator::set_disable_animations_for_test(true); } AuraTestHelper::~AuraTestHelper() { -#if defined(OS_WIN) - OleUninitialize(); -#endif CHECK(setup_called_) << "You have overridden SetUp but never called super class's SetUp"; CHECK(teardown_called_) diff --git a/ui/aura/test/aura_test_helper.h b/ui/aura/test/aura_test_helper.h index 86ed52e..90e3580 100644 --- a/ui/aura/test/aura_test_helper.h +++ b/ui/aura/test/aura_test_helper.h @@ -9,6 +9,10 @@ #include "base/basictypes.h" #include "base/message_loop.h" +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif + namespace aura { class RootWindow; namespace test { @@ -36,6 +40,10 @@ class AuraTestHelper { bool setup_called_; bool teardown_called_; +#if defined(OS_WIN) + ui::ScopedOleInitializer ole_initializer_; +#endif + DISALLOW_COPY_AND_ASSIGN(AuraTestHelper); }; diff --git a/ui/base/win/scoped_ole_initializer.cc b/ui/base/win/scoped_ole_initializer.cc new file mode 100644 index 0000000..8dab498 --- /dev/null +++ b/ui/base/win/scoped_ole_initializer.cc @@ -0,0 +1,22 @@ +// Copyright (c) 2012 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 "ui/base/win/scoped_ole_initializer.h" + +#include <ole2.h> + +#include "base/logging.h" + +namespace ui { + +ScopedOleInitializer::ScopedOleInitializer() { + HRESULT result = OleInitialize(NULL); + DCHECK(SUCCEEDED(result)); +} + +ScopedOleInitializer::~ScopedOleInitializer() { + OleUninitialize(); +} + +} // namespace ui diff --git a/ui/base/win/scoped_ole_initializer.h b/ui/base/win/scoped_ole_initializer.h new file mode 100644 index 0000000..11cc461 --- /dev/null +++ b/ui/base/win/scoped_ole_initializer.h @@ -0,0 +1,25 @@ +// Copyright (c) 2012 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 UI_BASE_WIN_SCOPED_OLE_INITIALIZER_H_ +#define UI_BASE_WIN_SCOPED_OLE_INITIALIZER_H_ +#pragma once + +#include "base/basictypes.h" +#include "ui/base/ui_export.h" + +namespace ui { + +class UI_EXPORT ScopedOleInitializer { + public: + ScopedOleInitializer(); + ~ScopedOleInitializer(); + + private: + DISALLOW_COPY_AND_ASSIGN(ScopedOleInitializer); +}; + +} // namespace + +#endif // UI_BASE_WIN_SCOPED_OLE_INITIALIZER_H_ @@ -233,6 +233,8 @@ 'base/win/message_box_win.h', 'base/win/mouse_wheel_util.cc', 'base/win/mouse_wheel_util.h', + 'base/win/scoped_ole_initializer.cc', + 'base/win/scoped_ole_initializer.h', 'base/win/shell.cc', 'base/win/shell.h', 'base/win/singleton_hwnd.cc', diff --git a/ui/views/controls/table/table_view_unittest.cc b/ui/views/controls/table/table_view_unittest.cc index ad5dec0..5532bc3 100644 --- a/ui/views/controls/table/table_view_unittest.cc +++ b/ui/views/controls/table/table_view_unittest.cc @@ -17,6 +17,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/models/table_model.h" #include "ui/base/models/table_model_observer.h" +#include "ui/base/win/scoped_ole_initializer.h" #include "ui/views/controls/table/table_view.h" #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_delegate.h" @@ -174,10 +175,10 @@ class TableViewTest : public testing::Test, views::WidgetDelegate { private: MessageLoopForUI message_loop_; views::Widget* window_; + ui::ScopedOleInitializer ole_initializer_; }; void TableViewTest::SetUp() { - OleInitialize(NULL); model_.reset(CreateModel()); std::vector<ui::TableColumn> columns; columns.resize(2); @@ -194,7 +195,6 @@ void TableViewTest::TearDown() { window_->Close(); // Temporary workaround to avoid leak of RootView::pending_paint_task_. message_loop_.RunAllPending(); - OleUninitialize(); } void TableViewTest::VerifyViewOrder(int first, ...) { diff --git a/ui/views/examples/examples_main.cc b/ui/views/examples/examples_main.cc index 8ac8143..e4f7785 100644 --- a/ui/views/examples/examples_main.cc +++ b/ui/views/examples/examples_main.cc @@ -16,9 +16,13 @@ #include "ui/views/test/test_views_delegate.h" #include "ui/views/widget/widget.h" +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif + int main(int argc, char** argv) { #if defined(OS_WIN) - OleInitialize(NULL); + ui::ScopedOleInitializer ole_initializer; #elif defined(OS_LINUX) // Initializes gtk stuff. g_type_init(); @@ -51,8 +55,5 @@ int main(int argc, char** argv) { views::AcceleratorHandler accelerator_handler; MessageLoopForUI::current()->RunWithDispatcher(&accelerator_handler); -#if defined(OS_WIN) - OleUninitialize(); -#endif return 0; } diff --git a/ui/views/test/views_test_base.cc b/ui/views/test/views_test_base.cc index 7b87f2e..84e9baf 100644 --- a/ui/views/test/views_test_base.cc +++ b/ui/views/test/views_test_base.cc @@ -4,10 +4,6 @@ #include "ui/views/test/views_test_base.h" -#if defined(OS_WIN) -#include <ole2.h> -#endif - #if defined(USE_AURA) #include "base/compiler_specific.h" #include "ui/aura/client/aura_constants.h" @@ -64,18 +60,12 @@ namespace views { ViewsTestBase::ViewsTestBase() : setup_called_(false), teardown_called_(false) { -#if defined(OS_WIN) - OleInitialize(NULL); -#endif #if defined(USE_AURA) test_input_method_.reset(new DummyInputMethod); #endif } ViewsTestBase::~ViewsTestBase() { -#if defined(OS_WIN) - OleUninitialize(); -#endif CHECK(setup_called_) << "You have overridden SetUp but never called super class's SetUp"; CHECK(teardown_called_) diff --git a/ui/views/test/views_test_base.h b/ui/views/test/views_test_base.h index 635c24c..71f6bbd 100644 --- a/ui/views/test/views_test_base.h +++ b/ui/views/test/views_test_base.h @@ -11,6 +11,10 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/views/test/test_views_delegate.h" +#if defined(OS_WIN) +#include "ui/base/win/scoped_ole_initializer.h" +#endif + namespace aura { class RootWindow; namespace test { @@ -61,6 +65,10 @@ class ViewsTestBase : public testing::Test { bool setup_called_; bool teardown_called_; +#if defined(OS_WIN) + ui::ScopedOleInitializer ole_initializer_; +#endif + DISALLOW_COPY_AND_ASSIGN(ViewsTestBase); }; diff --git a/ui/views/widget/native_widget_win_unittest.cc b/ui/views/widget/native_widget_win_unittest.cc index 9ad5ecb..9e8d314 100644 --- a/ui/views/widget/native_widget_win_unittest.cc +++ b/ui/views/widget/native_widget_win_unittest.cc @@ -1,4 +1,4 @@ -// 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 // found in the LICENSE file. @@ -8,19 +8,15 @@ #include "base/memory/scoped_ptr.h" #include "base/message_loop.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/win/scoped_ole_initializer.h" namespace views { namespace { class NativeWidgetWinTest : public testing::Test { public: - NativeWidgetWinTest() { - OleInitialize(NULL); - } - - ~NativeWidgetWinTest() { - OleUninitialize(); - } + NativeWidgetWinTest() {} + ~NativeWidgetWinTest() {} virtual void TearDown() { // Flush the message loop because we have pending release tasks @@ -38,6 +34,7 @@ class NativeWidgetWinTest : public testing::Test { private: MessageLoopForUI message_loop_; + ui::ScopedOleInitializer ole_initializer_; DISALLOW_COPY_AND_ASSIGN(NativeWidgetWinTest); }; |