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

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

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge. Created 4 years, 6 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 8 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
9 * Copyright (C) 2011 Google Inc. All rights reserved. 9 * Copyright (C) 2011 Google Inc. All rights reserved.
10 * 10 *
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "core/frame/HostsUsingFeatures.h" 48 #include "core/frame/HostsUsingFeatures.h"
49 #include "core/html/parser/ParserSynchronizationPolicy.h" 49 #include "core/html/parser/ParserSynchronizationPolicy.h"
50 #include "core/page/PageVisibilityState.h" 50 #include "core/page/PageVisibilityState.h"
51 #include "platform/Length.h" 51 #include "platform/Length.h"
52 #include "platform/Timer.h" 52 #include "platform/Timer.h"
53 #include "platform/weborigin/KURL.h" 53 #include "platform/weborigin/KURL.h"
54 #include "platform/weborigin/ReferrerPolicy.h" 54 #include "platform/weborigin/ReferrerPolicy.h"
55 #include "public/platform/WebFocusType.h" 55 #include "public/platform/WebFocusType.h"
56 #include "public/platform/WebInsecureRequestPolicy.h" 56 #include "public/platform/WebInsecureRequestPolicy.h"
57 #include "wtf/HashSet.h" 57 #include "wtf/HashSet.h"
58 #include "wtf/OwnPtr.h"
59 #include "wtf/PassOwnPtr.h"
60 #include "wtf/PassRefPtr.h" 58 #include "wtf/PassRefPtr.h"
59 #include <memory>
61 60
62 namespace blink { 61 namespace blink {
63 62
64 class AnimationClock; 63 class AnimationClock;
65 class AnimationTimeline; 64 class AnimationTimeline;
66 class AXObjectCache; 65 class AXObjectCache;
67 class Attr; 66 class Attr;
68 class CDATASection; 67 class CDATASection;
69 class CSSStyleDeclaration; 68 class CSSStyleDeclaration;
70 class CSSStyleSheet; 69 class CSSStyleSheet;
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 void didMergeTextNodes(Text& oldNode, unsigned offset); 662 void didMergeTextNodes(Text& oldNode, unsigned offset);
664 void didSplitTextNode(Text& oldNode); 663 void didSplitTextNode(Text& oldNode);
665 664
666 void clearDOMWindow() { m_domWindow = nullptr; } 665 void clearDOMWindow() { m_domWindow = nullptr; }
667 LocalDOMWindow* domWindow() const { return m_domWindow; } 666 LocalDOMWindow* domWindow() const { return m_domWindow; }
668 667
669 // Helper functions for forwarding LocalDOMWindow event related tasks to the LocalDOMWindow if it exists. 668 // Helper functions for forwarding LocalDOMWindow event related tasks to the LocalDOMWindow if it exists.
670 void setWindowAttributeEventListener(const AtomicString& eventType, EventLis tener*); 669 void setWindowAttributeEventListener(const AtomicString& eventType, EventLis tener*);
671 EventListener* getWindowAttributeEventListener(const AtomicString& eventType ); 670 EventListener* getWindowAttributeEventListener(const AtomicString& eventType );
672 671
673 static void registerEventFactory(PassOwnPtr<EventFactoryBase>); 672 static void registerEventFactory(std::unique_ptr<EventFactoryBase>);
674 static Event* createEvent(ExecutionContext*, const String& eventType, Except ionState&); 673 static Event* createEvent(ExecutionContext*, const String& eventType, Except ionState&);
675 674
676 // keep track of what types of event listeners are registered, so we don't 675 // keep track of what types of event listeners are registered, so we don't
677 // dispatch events unnecessarily 676 // dispatch events unnecessarily
678 enum ListenerType { 677 enum ListenerType {
679 DOMSUBTREEMODIFIED_LISTENER = 1, 678 DOMSUBTREEMODIFIED_LISTENER = 1,
680 DOMNODEINSERTED_LISTENER = 1 << 1, 679 DOMNODEINSERTED_LISTENER = 1 << 1,
681 DOMNODEREMOVED_LISTENER = 1 << 2, 680 DOMNODEREMOVED_LISTENER = 1 << 2,
682 DOMNODEREMOVEDFROMDOCUMENT_LISTENER = 1 << 3, 681 DOMNODEREMOVEDFROMDOCUMENT_LISTENER = 1 << 3,
683 DOMNODEINSERTEDINTODOCUMENT_LISTENER = 1 << 4, 682 DOMNODEINSERTEDINTODOCUMENT_LISTENER = 1 << 4,
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 Document& topDocument() const; 803 Document& topDocument() const;
805 Document* contextDocument(); 804 Document* contextDocument();
806 805
807 ScriptRunner* scriptRunner() { return m_scriptRunner.get(); } 806 ScriptRunner* scriptRunner() { return m_scriptRunner.get(); }
808 807
809 Element* currentScript() const { return !m_currentScriptStack.isEmpty() ? m_ currentScriptStack.last().get() : nullptr; } 808 Element* currentScript() const { return !m_currentScriptStack.isEmpty() ? m_ currentScriptStack.last().get() : nullptr; }
810 void currentScriptForBinding(HTMLScriptElementOrSVGScriptElement&) const; 809 void currentScriptForBinding(HTMLScriptElementOrSVGScriptElement&) const;
811 void pushCurrentScript(Element*); 810 void pushCurrentScript(Element*);
812 void popCurrentScript(); 811 void popCurrentScript();
813 812
814 void setTransformSource(PassOwnPtr<TransformSource>); 813 void setTransformSource(std::unique_ptr<TransformSource>);
815 TransformSource* transformSource() const { return m_transformSource.get(); } 814 TransformSource* transformSource() const { return m_transformSource.get(); }
816 815
817 void incDOMTreeVersion() { DCHECK(m_lifecycle.stateAllowsTreeMutations()); m _domTreeVersion = ++s_globalTreeVersion; } 816 void incDOMTreeVersion() { DCHECK(m_lifecycle.stateAllowsTreeMutations()); m _domTreeVersion = ++s_globalTreeVersion; }
818 uint64_t domTreeVersion() const { return m_domTreeVersion; } 817 uint64_t domTreeVersion() const { return m_domTreeVersion; }
819 818
820 uint64_t styleVersion() const { return m_styleVersion; } 819 uint64_t styleVersion() const { return m_styleVersion; }
821 820
822 enum PendingSheetLayout { NoLayoutWithPendingSheets, DidLayoutWithPendingShe ets, IgnoreLayoutWithPendingSheets }; 821 enum PendingSheetLayout { NoLayoutWithPendingSheets, DidLayoutWithPendingShe ets, IgnoreLayoutWithPendingSheets };
823 822
824 bool didLayoutWithPendingStylesheets() const { return m_pendingSheetLayout = = DidLayoutWithPendingSheets; } 823 bool didLayoutWithPendingStylesheets() const { return m_pendingSheetLayout = = DidLayoutWithPendingSheets; }
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
941 const DocumentTiming& timing() const { return m_documentTiming; } 940 const DocumentTiming& timing() const { return m_documentTiming; }
942 941
943 int requestAnimationFrame(FrameRequestCallback*); 942 int requestAnimationFrame(FrameRequestCallback*);
944 void cancelAnimationFrame(int id); 943 void cancelAnimationFrame(int id);
945 void serviceScriptedAnimations(double monotonicAnimationStartTime); 944 void serviceScriptedAnimations(double monotonicAnimationStartTime);
946 945
947 int requestIdleCallback(IdleRequestCallback*, const IdleRequestOptions&); 946 int requestIdleCallback(IdleRequestCallback*, const IdleRequestOptions&);
948 void cancelIdleCallback(int id); 947 void cancelIdleCallback(int id);
949 948
950 EventTarget* errorEventTarget() final; 949 EventTarget* errorEventTarget() final;
951 void logExceptionToConsole(const String& errorMessage, PassOwnPtr<SourceLoca tion>) final; 950 void logExceptionToConsole(const String& errorMessage, std::unique_ptr<Sourc eLocation>) final;
952 951
953 void initDNSPrefetch(); 952 void initDNSPrefetch();
954 953
955 bool isInDocumentWrite() const { return m_writeRecursionDepth > 0; } 954 bool isInDocumentWrite() const { return m_writeRecursionDepth > 0; }
956 955
957 TextAutosizer* textAutosizer(); 956 TextAutosizer* textAutosizer();
958 957
959 Element* createElement(const AtomicString& localName, const AtomicString& ty peExtension, ExceptionState&); 958 Element* createElement(const AtomicString& localName, const AtomicString& ty peExtension, ExceptionState&);
960 Element* createElementNS(const AtomicString& namespaceURI, const AtomicStrin g& qualifiedName, const AtomicString& typeExtension, ExceptionState&); 959 Element* createElementNS(const AtomicString& namespaceURI, const AtomicStrin g& qualifiedName, const AtomicString& typeExtension, ExceptionState&);
961 ScriptValue registerElement(ScriptState*, const AtomicString& name, const El ementRegistrationOptions&, ExceptionState&, V0CustomElement::NameSet validNames = V0CustomElement::StandardNames); 960 ScriptValue registerElement(ScriptState*, const AtomicString& name, const El ementRegistrationOptions&, ExceptionState&, V0CustomElement::NameSet validNames = V0CustomElement::StandardNames);
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 1168
1170 void clearFocusedElementSoon(); 1169 void clearFocusedElementSoon();
1171 void clearFocusedElementTimerFired(Timer<Document>*); 1170 void clearFocusedElementTimerFired(Timer<Document>*);
1172 1171
1173 bool haveScriptBlockingStylesheetsLoaded() const; 1172 bool haveScriptBlockingStylesheetsLoaded() const;
1174 bool haveRenderBlockingStylesheetsLoaded() const; 1173 bool haveRenderBlockingStylesheetsLoaded() const;
1175 void styleResolverMayHaveChanged(); 1174 void styleResolverMayHaveChanged();
1176 1175
1177 void setHoverNode(Node*); 1176 void setHoverNode(Node*);
1178 1177
1179 using EventFactorySet = HashSet<OwnPtr<EventFactoryBase>>; 1178 using EventFactorySet = HashSet<std::unique_ptr<EventFactoryBase>>;
1180 static EventFactorySet& eventFactories(); 1179 static EventFactorySet& eventFactories();
1181 1180
1182 void setNthIndexCache(NthIndexCache* nthIndexCache) { DCHECK(!m_nthIndexCach e || !nthIndexCache); m_nthIndexCache = nthIndexCache; } 1181 void setNthIndexCache(NthIndexCache* nthIndexCache) { DCHECK(!m_nthIndexCach e || !nthIndexCache); m_nthIndexCache = nthIndexCache; }
1183 1182
1184 const OriginAccessEntry& accessEntryFromURL(); 1183 const OriginAccessEntry& accessEntryFromURL();
1185 1184
1186 DocumentLifecycle m_lifecycle; 1185 DocumentLifecycle m_lifecycle;
1187 1186
1188 bool m_hasNodesWithPlaceholderStyle; 1187 bool m_hasNodesWithPlaceholderStyle;
1189 bool m_evaluateMediaQueriesOnStyleRecalc; 1188 bool m_evaluateMediaQueriesOnStyleRecalc;
(...skipping 12 matching lines...) Expand all
1202 Member<ContextFeatures> m_contextFeatures; 1201 Member<ContextFeatures> m_contextFeatures;
1203 1202
1204 bool m_wellFormed; 1203 bool m_wellFormed;
1205 1204
1206 // Document URLs. 1205 // Document URLs.
1207 KURL m_url; // Document.URL: The URL from which this document was retrieved. 1206 KURL m_url; // Document.URL: The URL from which this document was retrieved.
1208 KURL m_baseURL; // Node.baseURI: The URL to use when resolving relative URLs . 1207 KURL m_baseURL; // Node.baseURI: The URL to use when resolving relative URLs .
1209 KURL m_baseURLOverride; // An alternative base URL that takes precedence ove r m_baseURL (but not m_baseElementURL). 1208 KURL m_baseURLOverride; // An alternative base URL that takes precedence ove r m_baseURL (but not m_baseElementURL).
1210 KURL m_baseElementURL; // The URL set by the <base> element. 1209 KURL m_baseElementURL; // The URL set by the <base> element.
1211 KURL m_cookieURL; // The URL to use for cookie access. 1210 KURL m_cookieURL; // The URL to use for cookie access.
1212 OwnPtr<OriginAccessEntry> m_accessEntryFromURL; 1211 std::unique_ptr<OriginAccessEntry> m_accessEntryFromURL;
1213 1212
1214 AtomicString m_baseTarget; 1213 AtomicString m_baseTarget;
1215 1214
1216 // Mime-type of the document in case it was cloned or created by XHR. 1215 // Mime-type of the document in case it was cloned or created by XHR.
1217 AtomicString m_mimeType; 1216 AtomicString m_mimeType;
1218 1217
1219 Member<DocumentType> m_docType; 1218 Member<DocumentType> m_docType;
1220 Member<DOMImplementation> m_implementation; 1219 Member<DOMImplementation> m_implementation;
1221 1220
1222 Member<CSSStyleSheet> m_elemSheet; 1221 Member<CSSStyleSheet> m_elemSheet;
1223 1222
1224 bool m_printing; 1223 bool m_printing;
1225 bool m_wasPrinting; 1224 bool m_wasPrinting;
1226 bool m_paginatedForScreen; 1225 bool m_paginatedForScreen;
1227 1226
1228 CompatibilityMode m_compatibilityMode; 1227 CompatibilityMode m_compatibilityMode;
1229 bool m_compatibilityModeLocked; // This is cheaper than making setCompatibil ityMode virtual. 1228 bool m_compatibilityModeLocked; // This is cheaper than making setCompatibil ityMode virtual.
1230 1229
1231 OwnPtr<CancellableTaskFactory> m_executeScriptsWaitingForResourcesTask; 1230 std::unique_ptr<CancellableTaskFactory> m_executeScriptsWaitingForResourcesT ask;
1232 1231
1233 bool m_hasAutofocused; 1232 bool m_hasAutofocused;
1234 Timer<Document> m_clearFocusedElementTimer; 1233 Timer<Document> m_clearFocusedElementTimer;
1235 Member<Element> m_autofocusElement; 1234 Member<Element> m_autofocusElement;
1236 Member<Element> m_focusedElement; 1235 Member<Element> m_focusedElement;
1237 Member<Range> m_sequentialFocusNavigationStartingPoint; 1236 Member<Range> m_sequentialFocusNavigationStartingPoint;
1238 Member<Node> m_hoverNode; 1237 Member<Node> m_hoverNode;
1239 Member<Element> m_activeHoverElement; 1238 Member<Element> m_activeHoverElement;
1240 Member<Element> m_documentElement; 1239 Member<Element> m_documentElement;
1241 UserActionElementSet m_userActionElements; 1240 UserActionElementSet m_userActionElements;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1288 Member<Element> m_cssTarget; 1287 Member<Element> m_cssTarget;
1289 1288
1290 LoadEventProgress m_loadEventProgress; 1289 LoadEventProgress m_loadEventProgress;
1291 1290
1292 double m_startTime; 1291 double m_startTime;
1293 1292
1294 Member<ScriptRunner> m_scriptRunner; 1293 Member<ScriptRunner> m_scriptRunner;
1295 1294
1296 HeapVector<Member<Element>> m_currentScriptStack; 1295 HeapVector<Member<Element>> m_currentScriptStack;
1297 1296
1298 OwnPtr<TransformSource> m_transformSource; 1297 std::unique_ptr<TransformSource> m_transformSource;
1299 1298
1300 String m_xmlEncoding; 1299 String m_xmlEncoding;
1301 String m_xmlVersion; 1300 String m_xmlVersion;
1302 unsigned m_xmlStandalone : 2; 1301 unsigned m_xmlStandalone : 2;
1303 unsigned m_hasXMLDeclaration : 1; 1302 unsigned m_hasXMLDeclaration : 1;
1304 1303
1305 AtomicString m_contentLanguage; 1304 AtomicString m_contentLanguage;
1306 1305
1307 DocumentEncodingData m_encodingData; 1306 DocumentEncodingData m_encodingData;
1308 1307
1309 bool m_designMode; 1308 bool m_designMode;
1310 bool m_isRunningExecCommand; 1309 bool m_isRunningExecCommand;
1311 1310
1312 HeapHashSet<WeakMember<const LiveNodeListBase>> m_listsInvalidatedAtDocument ; 1311 HeapHashSet<WeakMember<const LiveNodeListBase>> m_listsInvalidatedAtDocument ;
1313 // Oilpan keeps track of all registered NodeLists. 1312 // Oilpan keeps track of all registered NodeLists.
1314 // TODO(Oilpan): improve - only need to know if a NodeList 1313 // TODO(Oilpan): improve - only need to know if a NodeList
1315 // is currently alive or not for the different types. 1314 // is currently alive or not for the different types.
1316 HeapHashSet<WeakMember<const LiveNodeListBase>> m_nodeLists[numNodeListInval idationTypes]; 1315 HeapHashSet<WeakMember<const LiveNodeListBase>> m_nodeLists[numNodeListInval idationTypes];
1317 1316
1318 Member<SVGDocumentExtensions> m_svgExtensions; 1317 Member<SVGDocumentExtensions> m_svgExtensions;
1319 1318
1320 Vector<AnnotatedRegionValue> m_annotatedRegions; 1319 Vector<AnnotatedRegionValue> m_annotatedRegions;
1321 bool m_hasAnnotatedRegions; 1320 bool m_hasAnnotatedRegions;
1322 bool m_annotatedRegionsDirty; 1321 bool m_annotatedRegionsDirty;
1323 1322
1324 OwnPtr<SelectorQueryCache> m_selectorQueryCache; 1323 std::unique_ptr<SelectorQueryCache> m_selectorQueryCache;
1325 1324
1326 // It is safe to keep a raw, untraced pointer to this stack-allocated 1325 // It is safe to keep a raw, untraced pointer to this stack-allocated
1327 // cache object: it is set upon the cache object being allocated on 1326 // cache object: it is set upon the cache object being allocated on
1328 // the stack and cleared upon leaving its allocated scope. Hence it 1327 // the stack and cleared upon leaving its allocated scope. Hence it
1329 // is acceptable not to trace it -- should a conservative GC occur, 1328 // is acceptable not to trace it -- should a conservative GC occur,
1330 // the cache object's references will be traced by a stack walk. 1329 // the cache object's references will be traced by a stack walk.
1331 GC_PLUGIN_IGNORE("461878") 1330 GC_PLUGIN_IGNORE("461878")
1332 NthIndexCache* m_nthIndexCache = nullptr; 1331 NthIndexCache* m_nthIndexCache = nullptr;
1333 1332
1334 bool m_useSecureKeyboardEntryWhenActive; 1333 bool m_useSecureKeyboardEntryWhenActive;
(...skipping 23 matching lines...) Expand all
1358 1357
1359 ReferrerPolicy m_referrerPolicy; 1358 ReferrerPolicy m_referrerPolicy;
1360 1359
1361 DocumentTiming m_documentTiming; 1360 DocumentTiming m_documentTiming;
1362 Member<MediaQueryMatcher> m_mediaQueryMatcher; 1361 Member<MediaQueryMatcher> m_mediaQueryMatcher;
1363 bool m_writeRecursionIsTooDeep; 1362 bool m_writeRecursionIsTooDeep;
1364 unsigned m_writeRecursionDepth; 1363 unsigned m_writeRecursionDepth;
1365 1364
1366 Member<ScriptedAnimationController> m_scriptedAnimationController; 1365 Member<ScriptedAnimationController> m_scriptedAnimationController;
1367 Member<ScriptedIdleTaskController> m_scriptedIdleTaskController; 1366 Member<ScriptedIdleTaskController> m_scriptedIdleTaskController;
1368 OwnPtr<MainThreadTaskRunner> m_taskRunner; 1367 std::unique_ptr<MainThreadTaskRunner> m_taskRunner;
1369 Member<TextAutosizer> m_textAutosizer; 1368 Member<TextAutosizer> m_textAutosizer;
1370 1369
1371 Member<V0CustomElementRegistrationContext> m_registrationContext; 1370 Member<V0CustomElementRegistrationContext> m_registrationContext;
1372 Member<V0CustomElementMicrotaskRunQueue> m_customElementMicrotaskRunQueue; 1371 Member<V0CustomElementMicrotaskRunQueue> m_customElementMicrotaskRunQueue;
1373 1372
1374 void elementDataCacheClearTimerFired(Timer<Document>*); 1373 void elementDataCacheClearTimerFired(Timer<Document>*);
1375 Timer<Document> m_elementDataCacheClearTimer; 1374 Timer<Document> m_elementDataCacheClearTimer;
1376 1375
1377 Member<ElementDataCache> m_elementDataCache; 1376 Member<ElementDataCache> m_elementDataCache;
1378 1377
1379 using LocaleIdentifierToLocaleMap = HashMap<AtomicString, OwnPtr<Locale>>; 1378 using LocaleIdentifierToLocaleMap = HashMap<AtomicString, std::unique_ptr<Lo cale>>;
1380 LocaleIdentifierToLocaleMap m_localeCache; 1379 LocaleIdentifierToLocaleMap m_localeCache;
1381 1380
1382 Member<AnimationTimeline> m_timeline; 1381 Member<AnimationTimeline> m_timeline;
1383 Member<CompositorPendingAnimations> m_compositorPendingAnimations; 1382 Member<CompositorPendingAnimations> m_compositorPendingAnimations;
1384 1383
1385 Member<Document> m_templateDocument; 1384 Member<Document> m_templateDocument;
1386 Member<Document> m_templateDocumentHost; 1385 Member<Document> m_templateDocumentHost;
1387 1386
1388 Timer<Document> m_didAssociateFormControlsTimer; 1387 Timer<Document> m_didAssociateFormControlsTimer;
1389 HeapHashSet<Member<Element>> m_associatedFormControls; 1388 HeapHashSet<Member<Element>> m_associatedFormControls;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1453 DEFINE_TYPE_CASTS(TreeScope, Document, document, true, true); 1452 DEFINE_TYPE_CASTS(TreeScope, Document, document, true, true);
1454 1453
1455 } // namespace blink 1454 } // namespace blink
1456 1455
1457 #ifndef NDEBUG 1456 #ifndef NDEBUG
1458 // Outside the WebCore namespace for ease of invocation from gdb. 1457 // Outside the WebCore namespace for ease of invocation from gdb.
1459 CORE_EXPORT void showLiveDocumentInstances(); 1458 CORE_EXPORT void showLiveDocumentInstances();
1460 #endif 1459 #endif
1461 1460
1462 #endif // Document_h 1461 #endif // Document_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698