| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | 2 // Use of this source code is governed by a BSD-style license that can be | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 #ifndef NoEventDispatchAssertion_h | 
|  | 6 #define NoEventDispatchAssertion_h | 
|  | 7 | 
|  | 8 #include "wtf/MainThread.h" | 
|  | 9 #include "wtf/TemporaryChange.h" | 
|  | 10 | 
|  | 11 namespace WebCore { | 
|  | 12 | 
|  | 13 #ifndef NDEBUG | 
|  | 14 | 
|  | 15 class NoEventDispatchAssertion { | 
|  | 16 public: | 
|  | 17     NoEventDispatchAssertion() | 
|  | 18     { | 
|  | 19         if (!isMainThread()) | 
|  | 20             return; | 
|  | 21         ++s_count; | 
|  | 22     } | 
|  | 23 | 
|  | 24     ~NoEventDispatchAssertion() | 
|  | 25     { | 
|  | 26         if (!isMainThread()) | 
|  | 27             return; | 
|  | 28         ASSERT(s_count); | 
|  | 29         --s_count; | 
|  | 30     } | 
|  | 31 | 
|  | 32     static bool isEventDispatchForbidden() | 
|  | 33     { | 
|  | 34         if (!isMainThread()) | 
|  | 35             return false; | 
|  | 36         return s_count; | 
|  | 37     } | 
|  | 38 | 
|  | 39     // It's safe to dispatch events in SVGImage since there can't be any script | 
|  | 40     // listeners. | 
|  | 41     class AllowSVGImageEvents { | 
|  | 42     public: | 
|  | 43         AllowSVGImageEvents() | 
|  | 44             : m_change(s_count, 0) | 
|  | 45         { | 
|  | 46         } | 
|  | 47 | 
|  | 48         ~AllowSVGImageEvents() | 
|  | 49         { | 
|  | 50             ASSERT(!s_count); | 
|  | 51         } | 
|  | 52 | 
|  | 53         TemporaryChange<unsigned> m_change; | 
|  | 54     }; | 
|  | 55 | 
|  | 56 private: | 
|  | 57     static unsigned s_count; | 
|  | 58 }; | 
|  | 59 | 
|  | 60 #else | 
|  | 61 | 
|  | 62 class NoEventDispatchAssertion { | 
|  | 63 public: | 
|  | 64     NoEventDispatchAssertion() { } | 
|  | 65 | 
|  | 66     class AllowSVGImageEvents { | 
|  | 67     public: | 
|  | 68         AllowSVGImageEvents() { } | 
|  | 69     }; | 
|  | 70 }; | 
|  | 71 | 
|  | 72 #endif // NDEBUG | 
|  | 73 | 
|  | 74 } // namespace WebCore | 
|  | 75 | 
|  | 76 #endif // NoEventDispatchAssertion_h | 
| OLD | NEW | 
|---|