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

Side by Side Diff: third_party/WebKit/Source/core/dom/FormElementObserver.h

Issue 2865233003: Use an MutationObserver to check when a password form disappears after XHR (Closed)
Patch Set: updates Created 3 years, 7 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
dglazkov 2017/05/11 21:09:05 Ideally, FormElementObserver shouldn't live in cor
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 FormElementObserver_h
6 #define FormElementObserver_h
7
8 #include "core/CoreExport.h"
9 #include "platform/heap/HeapAllocator.h"
10 #include "platform/heap/Member.h"
11
12 namespace blink {
13
14 class Document;
15 class HTMLElement;
16 class HTMLFormElement;
17 class HTMLInputElement;
18 class MutationObserver;
19 class WebFormElementObserverCallback;
20
21 class CORE_EXPORT FormElementObserver final
22 : public GarbageCollectedFinalized<FormElementObserver> {
23 WTF_MAKE_NONCOPYABLE(FormElementObserver);
24
25 public:
26 explicit FormElementObserver(Document&);
27 ~FormElementObserver();
28
29 void Observe(HTMLFormElement&,
30 std::unique_ptr<WebFormElementObserverCallback>);
31 void Observe(HTMLInputElement&,
32 std::unique_ptr<WebFormElementObserverCallback>);
33
34 DECLARE_VIRTUAL_TRACE();
35
36 private:
37 class ObserverCallback;
38
39 void EnsureObserver();
40 void ClearObserver();
41 void ObserveInternal(HTMLElement&,
42 std::unique_ptr<WebFormElementObserverCallback>);
43 void NotifyMutation(HTMLElement&);
44
45 Member<Document> document_;
46 Member<ObserverCallback> callback_;
47 Member<MutationObserver> mutation_observer_;
48 HeapHashMap<Member<HTMLElement>,
49 std::unique_ptr<WebFormElementObserverCallback>>
50 callbacks_;
51 };
52
53 } // namespace blink
54
55 #endif // FormElementObserver_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698