| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BASE_THREADING_THREAD_RESTRICTIONS_H_ | 5 #ifndef BASE_THREADING_THREAD_RESTRICTIONS_H_ |
| 6 #define BASE_THREADING_THREAD_RESTRICTIONS_H_ | 6 #define BASE_THREADING_THREAD_RESTRICTIONS_H_ |
| 7 | 7 |
| 8 #include "base/base_export.h" | 8 #include "base/base_export.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 namespace android { | 92 namespace android { |
| 93 class JavaHandlerThread; | 93 class JavaHandlerThread; |
| 94 } | 94 } |
| 95 | 95 |
| 96 namespace internal { | 96 namespace internal { |
| 97 class TaskTracker; | 97 class TaskTracker; |
| 98 } | 98 } |
| 99 | 99 |
| 100 class SequencedWorkerPool; | 100 class SequencedWorkerPool; |
| 101 class SimpleThread; | 101 class SimpleThread; |
| 102 class StackSamplingProfiler; |
| 102 class Thread; | 103 class Thread; |
| 103 class ThreadTestHelper; | 104 class ThreadTestHelper; |
| 104 | 105 |
| 105 // Certain behavior is disallowed on certain threads. ThreadRestrictions helps | 106 // Certain behavior is disallowed on certain threads. ThreadRestrictions helps |
| 106 // enforce these rules. Examples of such rules: | 107 // enforce these rules. Examples of such rules: |
| 107 // | 108 // |
| 108 // * Do not do blocking IO (makes the thread janky) | 109 // * Do not do blocking IO (makes the thread janky) |
| 109 // * Do not access Singleton/LazyInstance (may lead to shutdown crashes) | 110 // * Do not access Singleton/LazyInstance (may lead to shutdown crashes) |
| 110 // | 111 // |
| 111 // Here's more about how the protection works: | 112 // Here's more about how the protection works: |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 static void AssertSingletonAllowed() {} | 177 static void AssertSingletonAllowed() {} |
| 177 static void DisallowWaiting() {} | 178 static void DisallowWaiting() {} |
| 178 static void AssertWaitAllowed() {} | 179 static void AssertWaitAllowed() {} |
| 179 #endif | 180 #endif |
| 180 | 181 |
| 181 private: | 182 private: |
| 182 // DO NOT ADD ANY OTHER FRIEND STATEMENTS, talk to jam or brettw first. | 183 // DO NOT ADD ANY OTHER FRIEND STATEMENTS, talk to jam or brettw first. |
| 183 // BEGIN ALLOWED USAGE. | 184 // BEGIN ALLOWED USAGE. |
| 184 friend class android_webview::AwFormDatabaseService; | 185 friend class android_webview::AwFormDatabaseService; |
| 185 friend class android_webview::CookieManager; | 186 friend class android_webview::CookieManager; |
| 187 friend class base::StackSamplingProfiler; |
| 186 friend class content::BrowserShutdownProfileDumper; | 188 friend class content::BrowserShutdownProfileDumper; |
| 187 friend class content::BrowserSurfaceViewManager; | 189 friend class content::BrowserSurfaceViewManager; |
| 188 friend class content::BrowserTestBase; | 190 friend class content::BrowserTestBase; |
| 189 friend class content::NestedMessagePumpAndroid; | 191 friend class content::NestedMessagePumpAndroid; |
| 190 friend class content::ScopedAllowWaitForAndroidLayoutTests; | 192 friend class content::ScopedAllowWaitForAndroidLayoutTests; |
| 191 friend class content::ScopedAllowWaitForDebugURL; | 193 friend class content::ScopedAllowWaitForDebugURL; |
| 192 friend class content::SynchronousCompositor; | 194 friend class content::SynchronousCompositor; |
| 193 friend class content::SynchronousCompositorBrowserFilter; | 195 friend class content::SynchronousCompositorBrowserFilter; |
| 194 friend class content::SynchronousCompositorHost; | 196 friend class content::SynchronousCompositorHost; |
| 195 friend class ::HistogramSynchronizer; | 197 friend class ::HistogramSynchronizer; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 | 259 |
| 258 DISALLOW_COPY_AND_ASSIGN(ScopedAllowWait); | 260 DISALLOW_COPY_AND_ASSIGN(ScopedAllowWait); |
| 259 }; | 261 }; |
| 260 | 262 |
| 261 DISALLOW_IMPLICIT_CONSTRUCTORS(ThreadRestrictions); | 263 DISALLOW_IMPLICIT_CONSTRUCTORS(ThreadRestrictions); |
| 262 }; | 264 }; |
| 263 | 265 |
| 264 } // namespace base | 266 } // namespace base |
| 265 | 267 |
| 266 #endif // BASE_THREADING_THREAD_RESTRICTIONS_H_ | 268 #endif // BASE_THREADING_THREAD_RESTRICTIONS_H_ |
| OLD | NEW |