Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: Source/core/dom/ExecutionContext.h

Issue 194923007: Explicit notification and removal of lifecycle observers. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Perform ThreadState detachment last Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2012 Google Inc. All Rights Reserved. 3 * Copyright (C) 2012 Google Inc. All Rights Reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 void didChangeTimerAlignmentInterval(); 117 void didChangeTimerAlignmentInterval();
118 118
119 SandboxFlags sandboxFlags() const { return m_sandboxFlags; } 119 SandboxFlags sandboxFlags() const { return m_sandboxFlags; }
120 bool isSandboxed(SandboxFlags mask) const { return m_sandboxFlags & mask; } 120 bool isSandboxed(SandboxFlags mask) const { return m_sandboxFlags & mask; }
121 void enforceSandboxFlags(SandboxFlags mask); 121 void enforceSandboxFlags(SandboxFlags mask);
122 122
123 PassOwnPtr<LifecycleNotifier<ExecutionContext> > createLifecycleNotifier(); 123 PassOwnPtr<LifecycleNotifier<ExecutionContext> > createLifecycleNotifier();
124 124
125 virtual EventQueue* eventQueue() const = 0; 125 virtual EventQueue* eventQueue() const = 0;
126 126
127 void removeAllLifecycleObservers();
128
127 protected: 129 protected:
128 130
129 ContextLifecycleNotifier& lifecycleNotifier(); 131 ContextLifecycleNotifier& lifecycleNotifier();
130 132
131 private: 133 private:
132 friend class DOMTimer; // For installNewTimeout() and removeTimeoutByID() be low. 134 friend class DOMTimer; // For installNewTimeout() and removeTimeoutByID() be low.
133 135
134 bool dispatchErrorEvent(PassRefPtr<ErrorEvent>, AccessControlStatus); 136 bool dispatchErrorEvent(PassRefPtr<ErrorEvent>, AccessControlStatus);
135 137
136 virtual void refExecutionContext() = 0; 138 virtual void refExecutionContext() = 0;
(...skipping 22 matching lines...) Expand all
159 161
160 // The location of this member is important; to make sure contextDestroyed() notification on 162 // The location of this member is important; to make sure contextDestroyed() notification on
161 // ExecutionContext's members (notably m_timeouts) is called before they are destructed, 163 // ExecutionContext's members (notably m_timeouts) is called before they are destructed,
162 // m_lifecycleNotifer should be placed *after* such members. 164 // m_lifecycleNotifer should be placed *after* such members.
163 OwnPtr<ContextLifecycleNotifier> m_lifecycleNotifier; 165 OwnPtr<ContextLifecycleNotifier> m_lifecycleNotifier;
164 }; 166 };
165 167
166 } // namespace WebCore 168 } // namespace WebCore
167 169
168 #endif // ExecutionContext_h 170 #endif // ExecutionContext_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698