diff options
Diffstat (limited to 'chrome/browser/ui_thread_helpers.h')
-rw-r--r-- | chrome/browser/ui_thread_helpers.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/chrome/browser/ui_thread_helpers.h b/chrome/browser/ui_thread_helpers.h new file mode 100644 index 0000000..90e2c4e --- /dev/null +++ b/chrome/browser/ui_thread_helpers.h @@ -0,0 +1,32 @@ +// Copyright (c) 2010 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_UI_THREAD_HELPERS_H_ +#define CHROME_BROWSER_UI_THREAD_HELPERS_H_ +#pragma once + +class Task; + +namespace tracked_objects { +class Location; +} // namespace tracked_objects + +namespace ui_thread_helpers { + +// This can be used in place of ChromeThread::PostTask(ChromeThread::UI, ...). +// The purpose of this function is to be able to execute Chrome work alongside +// native work when a message loop is running nested or, in the case of Mac, +// in a different mode. Currently this is used for updating the HostZoomMap +// while the Wrench menu is open, allowing for the zoom display to update. See +// http://crbug.com/48679 for the full rationale. +// +// CAVEAT EMPTOR: This function's implementation is different across platforms +// and may run the Task in a way that differs from the stock MessageLoop. You +// should check the behavior on all platforms if you use this. +bool PostTaskWhileRunningMenu(const tracked_objects::Location& from_here, + Task* task); + +} // namespace ui_thread_helpers + +#endif // CHROME_BROWSER_UI_THREAD_HELPERS_H_ |