OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 3 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
4 * Copyright (C) 2009 Adam Barth. All rights reserved. | 4 * Copyright (C) 2009 Adam Barth. All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * | 9 * |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 void schedule(ScheduledNavigation*); | 83 void schedule(ScheduledNavigation*); |
84 | 84 |
85 static bool mustReplaceCurrentItem(LocalFrame* targetFrame); | 85 static bool mustReplaceCurrentItem(LocalFrame* targetFrame); |
86 | 86 |
87 Member<LocalFrame> m_frame; | 87 Member<LocalFrame> m_frame; |
88 std::unique_ptr<CancellableTaskFactory> m_navigateTaskFactory; | 88 std::unique_ptr<CancellableTaskFactory> m_navigateTaskFactory; |
89 Member<ScheduledNavigation> m_redirect; | 89 Member<ScheduledNavigation> m_redirect; |
90 WebScheduler::NavigatingFrameType m_frameType; // Exists because we can't de
ref m_frame in destructor. | 90 WebScheduler::NavigatingFrameType m_frameType; // Exists because we can't de
ref m_frame in destructor. |
91 }; | 91 }; |
92 | 92 |
93 class NavigationDisablerForBeforeUnload { | 93 class NavigationDisablerForUnload { |
94 WTF_MAKE_NONCOPYABLE(NavigationDisablerForBeforeUnload); | 94 WTF_MAKE_NONCOPYABLE(NavigationDisablerForUnload); |
95 STACK_ALLOCATED(); | 95 STACK_ALLOCATED(); |
96 public: | 96 public: |
97 NavigationDisablerForBeforeUnload() | 97 NavigationDisablerForUnload() |
98 { | 98 { |
99 s_navigationDisableCount++; | 99 s_navigationDisableCount++; |
100 } | 100 } |
101 ~NavigationDisablerForBeforeUnload() | 101 ~NavigationDisablerForUnload() |
102 { | 102 { |
103 ASSERT(s_navigationDisableCount); | 103 ASSERT(s_navigationDisableCount); |
104 s_navigationDisableCount--; | 104 s_navigationDisableCount--; |
105 } | 105 } |
106 static bool isNavigationAllowed() { return !s_navigationDisableCount; } | 106 static bool isNavigationAllowed() { return !s_navigationDisableCount; } |
107 | 107 |
108 private: | 108 private: |
109 static unsigned s_navigationDisableCount; | 109 static unsigned s_navigationDisableCount; |
110 }; | 110 }; |
111 | 111 |
112 class CORE_EXPORT NavigationCounterForUnload { | |
113 WTF_MAKE_NONCOPYABLE(NavigationCounterForUnload); | |
114 STACK_ALLOCATED(); | |
115 public: | |
116 NavigationCounterForUnload() | |
117 { | |
118 s_inUnloadHandler++; | |
119 } | |
120 ~NavigationCounterForUnload() | |
121 { | |
122 DCHECK(s_inUnloadHandler); | |
123 s_inUnloadHandler--; | |
124 } | |
125 static bool inUnloadHandler() { return !!s_inUnloadHandler; } | |
126 | |
127 private: | |
128 static unsigned s_inUnloadHandler; | |
129 }; | |
130 | |
131 } // namespace blink | 112 } // namespace blink |
132 | 113 |
133 #endif // NavigationScheduler_h | 114 #endif // NavigationScheduler_h |
OLD | NEW |