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

Side by Side Diff: third_party/WebKit/Source/core/html/PublicURLManager.h

Issue 1750453002: Reduce ActiveDOMObjects from core/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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) 2012 Motorola Mobility Inc. 2 * Copyright (C) 2012 Motorola Mobility Inc.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
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
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef PublicURLManager_h 26 #ifndef PublicURLManager_h
27 #define PublicURLManager_h 27 #define PublicURLManager_h
28 28
29 #include "core/dom/ActiveDOMObject.h" 29 #include "core/dom/ContextLifecycleObserver.h"
30 #include "platform/heap/Handle.h" 30 #include "platform/heap/Handle.h"
31 #include "wtf/HashMap.h" 31 #include "wtf/HashMap.h"
32 #include "wtf/HashSet.h" 32 #include "wtf/HashSet.h"
33 #include "wtf/PassOwnPtr.h" 33 #include "wtf/PassOwnPtr.h"
34 #include "wtf/text/WTFString.h" 34 #include "wtf/text/WTFString.h"
35 35
36 namespace blink { 36 namespace blink {
37 37
38 class KURL; 38 class KURL;
39 class ExecutionContext; 39 class ExecutionContext;
40 class SecurityOrigin; 40 class SecurityOrigin;
41 class URLRegistry; 41 class URLRegistry;
42 class URLRegistrable; 42 class URLRegistrable;
43 43
44 class PublicURLManager final : public NoBaseWillBeGarbageCollectedFinalized<Publ icURLManager>, public ActiveDOMObject { 44 class PublicURLManager final : public NoBaseWillBeGarbageCollectedFinalized<Publ icURLManager>, public ContextLifecycleObserver {
45 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PublicURLManager); 45 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PublicURLManager);
46 USING_FAST_MALLOC_WILL_BE_REMOVED(PublicURLManager); 46 USING_FAST_MALLOC_WILL_BE_REMOVED(PublicURLManager);
47 public: 47 public:
48 static PassOwnPtrWillBeRawPtr<PublicURLManager> create(ExecutionContext*); 48 static PassOwnPtrWillBeRawPtr<PublicURLManager> create(ExecutionContext*);
49 49
50 void registerURL(SecurityOrigin*, const KURL&, URLRegistrable*, const String & uuid = String()); 50 void registerURL(SecurityOrigin*, const KURL&, URLRegistrable*, const String & uuid = String());
51 void revoke(const KURL&); 51 void revoke(const KURL&);
52 void revoke(const String& uuid); 52 void revoke(const String& uuid);
53 53
54 // ActiveDOMObject interface. 54 // ActiveDOMObject interface.
55 void stop() override; 55 void contextDestroyed() override;
56 56
57 DECLARE_VIRTUAL_TRACE(); 57 DECLARE_VIRTUAL_TRACE();
58 58
59 private: 59 private:
60 explicit PublicURLManager(ExecutionContext*); 60 explicit PublicURLManager(ExecutionContext*);
61 61
62 // One or more URLs can be associated with the same unique ID. 62 // One or more URLs can be associated with the same unique ID.
63 // Objects need be revoked by unique ID in some cases. 63 // Objects need be revoked by unique ID in some cases.
64 typedef String URLString; 64 typedef String URLString;
65 typedef HashMap<URLString, String> URLMap; 65 typedef HashMap<URLString, String> URLMap;
66 typedef HashMap<URLRegistry*, URLMap> RegistryURLMap; 66 typedef HashMap<URLRegistry*, URLMap> RegistryURLMap;
67 67
68 RegistryURLMap m_registryToURL; 68 RegistryURLMap m_registryToURL;
69 bool m_isStopped;
70 }; 69 };
71 70
72 } // namespace blink 71 } // namespace blink
73 72
74 #endif // PublicURLManager_h 73 #endif // PublicURLManager_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698