1/*
2 * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef DO_NO_IMPORTS
27import "oaidl.idl";
28import "ocidl.idl";
29#endif
30
31[
32    object,
33    oleautomation,
34    hidden,
35    uuid(9607001D-6EEF-4c2c-AD22-94E9DA587973),
36    pointer_default(unique)
37]
38interface IWebCoreStatistics : IUnknown
39{
40    HRESULT javaScriptObjectsCount([out, retval] UINT* count);
41    HRESULT javaScriptGlobalObjectsCount([out, retval] UINT* count);
42    HRESULT javaScriptProtectedObjectsCount([out, retval] UINT* count);
43    HRESULT javaScriptProtectedGlobalObjectsCount([out, retval] UINT* count);
44
45    HRESULT iconPageURLMappingCount([out, retval] UINT* count);
46    HRESULT iconRetainedPageURLCount([out, retval] UINT* count);
47    HRESULT iconRecordCount([out, retval] UINT* count);
48    HRESULT iconsWithDataCount([out, retval] UINT* count);
49
50    HRESULT cachedFontDataCount([out, retval] UINT* count);
51    HRESULT cachedFontDataInactiveCount([out, retval] UINT* count);
52    HRESULT purgeInactiveFontData();
53    HRESULT glyphPageCount([out, retval] UINT* count);
54
55    HRESULT javaScriptProtectedObjectTypeCounts([out, retval] IPropertyBag2** typeNamesAndCounts);
56    HRESULT javaScriptObjectTypeCounts([out, retval] IPropertyBag2** typeNamesAndCounts);
57
58    HRESULT garbageCollectJavaScriptObjects();
59    HRESULT garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging([in] BOOL waitUntilDone);
60    HRESULT setJavaScriptGarbageCollectorTimerEnabled([in] BOOL);
61
62    HRESULT shouldPrintExceptions([out, retval] BOOL*);
63    HRESULT setShouldPrintExceptions([in] BOOL);
64
65    HRESULT startIgnoringWebCoreNodeLeaks();
66    HRESULT stopIgnoringWebCoreNodeLeaks();
67
68    HRESULT memoryStatistics([out, retval] IPropertyBag** statistics);
69    HRESULT returnFreeMemoryToSystem();
70
71    HRESULT cachedPageCount([out, retval] INT* count);
72    HRESULT cachedFrameCount([out, retval] INT* count);
73}
74