<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[170483] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/170483">170483</a></dd>
<dt>Author</dt> <dd>bfulgham@apple.com</dd>
<dt>Date</dt> <dd>2014-06-26 10:22:00 -0700 (Thu, 26 Jun 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>[Win] Expose Cache Information to WinLauncher
https://bugs.webkit.org/show_bug.cgi?id=134318
Reviewed by Dean Jackson.
Source/JavaScriptCore:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Add missing
MemoryStatistics files to the WIndows build.
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
Source/WebKit:
* WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Copy the
CFDictionaryPropertyBag header to WebKit API directory.
* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Expose the dictionary accessor for the CFDictionaryPropertyBag.
Source/WebKit/win:
* Interfaces/IWebCoreStatistics.idl: Add missing
API added to WebKit since this was last updated.
* WebCache.cpp:
(WebCache::statistics): Add missing elements for
purgable and purged data.
* WebCoreStatistics.cpp: Provide implementaions.
* WebCoreStatistics.h: Ditto.
Tools:
* WinLauncher/Common.cpp: Update for new dialog.
* WinLauncher/WinLauncher.cpp: Add support for WebCache
and WebCoreStatistics.
* WinLauncher/WinLauncher.h:
* WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc:
Update for new Cache Dialog.
* WinLauncher/WinLauncher.vcxproj/WinLauncherLibCommon.props: Link to
WTF.lib
* WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h: Update
for new Dialog.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxprojfilters">trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitWebKitvcxprojWebKitWebKitPostBuildcmd">trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitPostBuild.cmd</a></li>
<li><a href="#trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin">trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinInterfacesIWebCoreStatisticsidl">trunk/Source/WebKit/win/Interfaces/IWebCoreStatistics.idl</a></li>
<li><a href="#trunkSourceWebKitwinWebCachecpp">trunk/Source/WebKit/win/WebCache.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreStatisticscpp">trunk/Source/WebKit/win/WebCoreStatistics.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebCoreStatisticsh">trunk/Source/WebKit/win/WebCoreStatistics.h</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsWinLauncherCommoncpp">trunk/Tools/WinLauncher/Common.cpp</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchercpp">trunk/Tools/WinLauncher/WinLauncher.cpp</a></li>
<li><a href="#trunkToolsWinLauncherWinLauncherh">trunk/Tools/WinLauncher/WinLauncher.h</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibrc">trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibCommonprops">trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibCommon.props</a></li>
<li><a href="#trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibResourceh">trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2014-06-25 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Expose Cache Information to WinLauncher
+ https://bugs.webkit.org/show_bug.cgi?id=134318
+
+ Reviewed by Dean Jackson.
+
+ * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: Add missing
+ MemoryStatistics files to the WIndows build.
+ * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
+
</ins><span class="cx"> 2014-06-26 David Kilzer <ddkilzer@apple.com>
</span><span class="cx">
</span><span class="cx"> DFG::FunctionWhitelist::parseFunctionNamesInFile does not close file
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -734,6 +734,7 @@
</span><span class="cx"> <ClCompile Include="..\runtime\MapIteratorPrototype.cpp" />
</span><span class="cx"> <ClCompile Include="..\runtime\MapPrototype.cpp" />
</span><span class="cx"> <ClCompile Include="..\runtime\MathObject.cpp" />
</span><ins>+ <ClCompile Include="..\runtime\MemoryStatistics.cpp" />
</ins><span class="cx"> <ClCompile Include="..\runtime\NameConstructor.cpp" />
</span><span class="cx"> <ClCompile Include="..\runtime\NameInstance.cpp" />
</span><span class="cx"> <ClCompile Include="..\runtime\NamePrototype.cpp" />
</span><span class="lines">@@ -1478,6 +1479,7 @@
</span><span class="cx"> <ClInclude Include="..\runtime\MapPrototype.h" />
</span><span class="cx"> <ClInclude Include="..\runtime\MatchResult.h" />
</span><span class="cx"> <ClInclude Include="..\runtime\MathObject.h" />
</span><ins>+ <ClInclude Include="..\runtime\MemoryStatistics.h" />
</ins><span class="cx"> <ClInclude Include="..\runtime\Microtask.h" />
</span><span class="cx"> <ClInclude Include="..\runtime\NameConstructor.h" />
</span><span class="cx"> <ClInclude Include="..\runtime\NameInstance.h" />
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorevcxprojJavaScriptCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1605,6 +1605,9 @@
</span><span class="cx"> <ClCompile Include="..\inspector\ScriptDebugServer.cpp">
</span><span class="cx"> <Filter>inspector</Filter>
</span><span class="cx"> </ClCompile>
</span><ins>+ <ClCompile Include="..\runtime\MemoryStatistics.cpp">
+ <Filter>runtime</Filter>
+ </ClCompile>
</ins><span class="cx"> </ItemGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="cx"> <ClInclude Include="..\API\APICallbackFunction.h">
</span><span class="lines">@@ -3907,6 +3910,9 @@
</span><span class="cx"> <ClInclude Include="..\inspector\ScriptDebugListener.h">
</span><span class="cx"> <Filter>inspector</Filter>
</span><span class="cx"> </ClInclude>
</span><ins>+ <ClInclude Include="..\runtime\MemoryStatistics.h">
+ <Filter>runtime</Filter>
+ </ClInclude>
</ins><span class="cx"> </ItemGroup>
</span><span class="cx"> <ItemGroup>
</span><span class="cx"> <None Include="JavaScriptCorePreLink.cmd" />
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/ChangeLog        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2014-06-25 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Expose Cache Information to WinLauncher
+ https://bugs.webkit.org/show_bug.cgi?id=134318
+
+ Reviewed by Dean Jackson.
+
+ * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Copy the
+ CFDictionaryPropertyBag header to WebKit API directory.
+ * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
+ Expose the dictionary accessor for the CFDictionaryPropertyBag.
+
</ins><span class="cx"> 2014-06-25 Brady Eidson <beidson@apple.com>
</span><span class="cx">
</span><span class="cx"> Add HID-based gamepad implementation for Mac
</span></span></pre></div>
<a id="trunkSourceWebKitWebKitvcxprojWebKitWebKitPostBuildcmd"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitPostBuild.cmd (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitPostBuild.cmd        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKit/WebKitPostBuild.cmd        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -6,6 +6,7 @@
</span><span class="cx"> xcopy /y /d "%PROJECTDIR%\..\..\win\WebKitGraphics.h" "%CONFIGURATIONBUILDDIR%\include\WebKit"
</span><span class="cx"> xcopy /y /d "%PROJECTDIR%\..\..\win\WebKitCOMAPI.h" "%CONFIGURATIONBUILDDIR%\include\WebKit"
</span><span class="cx"> xcopy /y /d "%PROJECTDIR%\..\..\win\WebPreferenceKeysPrivate.h" "%CONFIGURATIONBUILDDIR%\include\WebKit"
</span><ins>+xcopy /y /d "%PROJECTDIR%\..\..\win\CFDictionaryPropertyBag.h" "%CONFIGURATIONBUILDDIR%\include\WebKit"
</ins><span class="cx">
</span><span class="cx"> xcopy /y /d "%CONFIGURATIONBUILDDIR%\include\WebCore\npapi.h" "%CONFIGURATIONBUILDDIR%\include\WebKit"
</span><span class="cx"> xcopy /y /d "%CONFIGURATIONBUILDDIR%\include\WebCore\npfunctions.h" "%CONFIGURATIONBUILDDIR%\include\WebKit"
</span></span></pre></div>
<a id="trunkSourceWebKitWebKitvcxprojWebKitExportGeneratorWebKitExportsdefin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -179,6 +179,7 @@
</span><span class="cx"> symbolWithPointer(?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@ABVString@4@@Z, ?create@SerializedScriptValue@WebCore@@SA?AV?$PassRefPtr@VSerializedScriptValue@WebCore@@@WTF@@AEBVString@4@@Z)
</span><span class="cx"> #if USE(CF)
</span><span class="cx"> symbolWithPointer(?createCFString@String@WTF@@QBE?AV?$RetainPtr@PBU__CFString@@@2@XZ, ?createCFString@String@WTF@@QEBA?AV?$RetainPtr@PEBU__CFString@@@2@XZ)
</span><ins>+ symbolWithPointer(?dictionary@CFDictionaryPropertyBag@@QBEPAU__CFDictionary@@XZ, )
</ins><span class="cx"> #endif
</span><span class="cx"> symbolWithPointer(?createShadowRoot@Element@WebCore@@QAE?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@AAH@Z, ?createShadowRoot@Element@WebCore@@QEAA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@AEAH@Z)
</span><span class="cx"> symbolWithPointer(?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z, ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PEAVExecState@3@PEAVJSDOMGlobalObject@1@PEAVNode@1@@Z)
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/win/ChangeLog        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-06-25 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Expose Cache Information to WinLauncher
+ https://bugs.webkit.org/show_bug.cgi?id=134318
+
+ Reviewed by Dean Jackson.
+
+ * Interfaces/IWebCoreStatistics.idl: Add missing
+ API added to WebKit since this was last updated.
+ * WebCache.cpp:
+ (WebCache::statistics): Add missing elements for
+ purgable and purged data.
+ * WebCoreStatistics.cpp: Provide implementaions.
+ * WebCoreStatistics.h: Ditto.
+
</ins><span class="cx"> 2014-06-25 Brady Eidson <beidson@apple.com>
</span><span class="cx">
</span><span class="cx"> Add new platform gamepad abstractions
</span></span></pre></div>
<a id="trunkSourceWebKitwinInterfacesIWebCoreStatisticsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Interfaces/IWebCoreStatistics.idl (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Interfaces/IWebCoreStatistics.idl        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/win/Interfaces/IWebCoreStatistics.idl        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
</del><ins>+ * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved.
</ins><span class="cx"> *
</span><span class="cx"> * Redistribution and use in source and binary forms, with or without
</span><span class="cx"> * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -53,4 +53,21 @@
</span><span class="cx"> HRESULT glyphPageCount([out, retval] UINT* count);
</span><span class="cx">
</span><span class="cx"> HRESULT javaScriptProtectedObjectTypeCounts([out, retval] IPropertyBag2** typeNamesAndCounts);
</span><ins>+ HRESULT javaScriptObjectTypeCounts([out, retval] IPropertyBag2** typeNamesAndCounts);
+
+ HRESULT garbageCollectJavaScriptObjects();
+ HRESULT garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging([in] BOOL waitUntilDone);
+ HRESULT setJavaScriptGarbageCollectorTimerEnabled([in] BOOL);
+
+ HRESULT shouldPrintExceptions([out, retval] BOOL*);
+ HRESULT setShouldPrintExceptions([in] BOOL);
+
+ HRESULT startIgnoringWebCoreNodeLeaks();
+ HRESULT stopIgnoringWebCoreNodeLeaks();
+
+ HRESULT memoryStatistics([out, retval] IPropertyBag** statistics);
+ HRESULT returnFreeMemoryToSystem();
+
+ HRESULT cachedPageCount([out, retval] INT* count);
+ HRESULT cachedFrameCount([out, retval] INT* count);
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCache.cpp (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCache.cpp        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/win/WebCache.cpp        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -91,14 +91,12 @@
</span><span class="cx">
</span><span class="cx"> // IWebCache ------------------------------------------------------------------------------
</span><span class="cx">
</span><del>-HRESULT STDMETHODCALLTYPE WebCache::statistics(
- /* [in][out] */ int* count,
- /* [retval][out] */ IPropertyBag ** s)
</del><ins>+HRESULT WebCache::statistics(int* count, IPropertyBag** s)
</ins><span class="cx"> {
</span><del>- if (!count || (s && *count < 4))
</del><ins>+ if (!count || (s && *count < 6))
</ins><span class="cx"> return E_FAIL;
</span><span class="cx">
</span><del>- *count = 4;
</del><ins>+ *count = 6;
</ins><span class="cx"> if (!s)
</span><span class="cx"> return S_OK;
</span><span class="cx">
</span><span class="lines">@@ -112,6 +110,7 @@
</span><span class="cx"> const int zero = 0;
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ // Object Counts.
</ins><span class="cx"> RetainPtr<CFMutableDictionaryRef> dictionary = adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
</span><span class="cx">
</span><span class="cx"> RetainPtr<CFNumberRef> value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.images.count));
</span><span class="lines">@@ -134,6 +133,7 @@
</span><span class="cx"> propBag->setDictionary(dictionary.get());
</span><span class="cx"> s[0] = propBag.leakRef();
</span><span class="cx">
</span><ins>+ // Object Sizes.
</ins><span class="cx"> dictionary = adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
</span><span class="cx">
</span><span class="cx"> value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.images.size));
</span><span class="lines">@@ -156,6 +156,7 @@
</span><span class="cx"> propBag->setDictionary(dictionary.get());
</span><span class="cx"> s[1] = propBag.leakRef();
</span><span class="cx">
</span><ins>+ // Live Sizes.
</ins><span class="cx"> dictionary = adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
</span><span class="cx">
</span><span class="cx"> value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.images.liveSize));
</span><span class="lines">@@ -178,6 +179,7 @@
</span><span class="cx"> propBag->setDictionary(dictionary.get());
</span><span class="cx"> s[2] = propBag.leakRef();
</span><span class="cx">
</span><ins>+ // Decoded Sizes.
</ins><span class="cx"> dictionary = adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
</span><span class="cx">
</span><span class="cx"> value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.images.decodedSize));
</span><span class="lines">@@ -200,6 +202,52 @@
</span><span class="cx"> propBag->setDictionary(dictionary.get());
</span><span class="cx"> s[3] = propBag.leakRef();
</span><span class="cx">
</span><ins>+ // Purgable Sizes.
+ dictionary = adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
+
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.images.purgeableSize));
+ CFDictionaryAddValue(dictionary.get(), imagesKey, value.get());
+
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.cssStyleSheets.purgeableSize));
+ CFDictionaryAddValue(dictionary.get(), stylesheetsKey, value.get());
+
+#if ENABLE(XSLT)
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.xslStyleSheets.purgeableSize));
+#else
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &zero));
+#endif
+ CFDictionaryAddValue(dictionary.get(), xslKey, value.get());
+
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.scripts.purgeableSize));
+ CFDictionaryAddValue(dictionary.get(), scriptsKey, value.get());
+
+ propBag = CFDictionaryPropertyBag::createInstance();
+ propBag->setDictionary(dictionary.get());
+ s[4] = propBag.leakRef();
+
+ // Purged Sizes.
+ dictionary = adoptCF(CFDictionaryCreateMutable(0, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks));
+
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.images.purgedSize));
+ CFDictionaryAddValue(dictionary.get(), imagesKey, value.get());
+
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.cssStyleSheets.purgedSize));
+ CFDictionaryAddValue(dictionary.get(), stylesheetsKey, value.get());
+
+#if ENABLE(XSLT)
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.xslStyleSheets.purgedSize));
+#else
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &zero));
+#endif
+ CFDictionaryAddValue(dictionary.get(), xslKey, value.get());
+
+ value = adoptCF(CFNumberCreate(0, kCFNumberIntType, &stat.scripts.purgedSize));
+ CFDictionaryAddValue(dictionary.get(), scriptsKey, value.get());
+
+ propBag = CFDictionaryPropertyBag::createInstance();
+ propBag->setDictionary(dictionary.get());
+ s[5] = propBag.leakRef();
+
</ins><span class="cx"> return S_OK;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreStatisticscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreStatistics.cpp (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreStatistics.cpp        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/win/WebCoreStatistics.cpp        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
</del><ins>+ * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved.
</ins><span class="cx"> *
</span><span class="cx"> * Redistribution and use in source and binary forms, with or without
</span><span class="cx"> * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -29,10 +29,15 @@
</span><span class="cx">
</span><span class="cx"> #include "COMPropertyBag.h"
</span><span class="cx"> #include <JavaScriptCore/JSLock.h>
</span><ins>+#include <JavaScriptCore/MemoryStatistics.h>
</ins><span class="cx"> #include <WebCore/FontCache.h>
</span><ins>+#include <WebCore/GCController.h>
</ins><span class="cx"> #include <WebCore/GlyphPageTreeNode.h>
</span><span class="cx"> #include <WebCore/IconDatabase.h>
</span><span class="cx"> #include <WebCore/JSDOMWindow.h>
</span><ins>+#include <WebCore/PageCache.h>
+#include <WebCore/PageConsole.h>
+#include <WebCore/RenderView.h>
</ins><span class="cx"> #include <WebCore/SharedBuffer.h>
</span><span class="cx">
</span><span class="cx"> using namespace JSC;
</span><span class="lines">@@ -152,6 +157,24 @@
</span><span class="cx"> return S_OK;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+HRESULT WebCoreStatistics::javaScriptObjectTypeCounts(IPropertyBag2** typeNamesAndCounts)
+{
+ if (!typeNamesAndCounts)
+ return E_POINTER;
+
+ JSLockHolder lock(JSDOMWindow::commonVM());
+ OwnPtr<TypeCountSet> jsObjectTypeNames(JSDOMWindow::commonVM().heap.objectTypeCounts());
+ typedef TypeCountSet::const_iterator Iterator;
+ Iterator end = jsObjectTypeNames->end();
+ HashMap<String, int> typeCountMap;
+ for (Iterator current = jsObjectTypeNames->begin(); current != end; ++current)
+ typeCountMap.set(current->key, current->value);
+
+ COMPtr<IPropertyBag2> results(AdoptCOM, COMPropertyBag<int>::createInstance(typeCountMap));
+ results.copyRefTo(typeNamesAndCounts);
+ return S_OK;
+}
+
</ins><span class="cx"> HRESULT STDMETHODCALLTYPE WebCoreStatistics::iconPageURLMappingCount(
</span><span class="cx"> /* [retval][out] */ UINT* count)
</span><span class="cx"> {
</span><span class="lines">@@ -220,3 +243,100 @@
</span><span class="cx"> *count = (UINT) GlyphPageTreeNode::treeGlyphPageCount();
</span><span class="cx"> return S_OK;
</span><span class="cx"> }
</span><ins>+
+HRESULT WebCoreStatistics::garbageCollectJavaScriptObjects()
+{
+ gcController().garbageCollectNow();
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging(BOOL waitUntilDone)
+{
+ gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone);
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::setJavaScriptGarbageCollectorTimerEnabled(BOOL enable)
+{
+ gcController().setJavaScriptGarbageCollectorTimerEnabled(enable);
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::shouldPrintExceptions(BOOL* shouldPrint)
+{
+ if (!shouldPrint)
+ return E_POINTER;
+
+ JSLockHolder lock(JSDOMWindow::commonVM());
+ *shouldPrint = PageConsole::shouldPrintExceptions();
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::setShouldPrintExceptions(BOOL print)
+{
+ JSLockHolder lock(JSDOMWindow::commonVM());
+ PageConsole::setShouldPrintExceptions(print);
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::startIgnoringWebCoreNodeLeaks()
+{
+ WebCore::Node::startIgnoringLeaks();
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::stopIgnoringWebCoreNodeLeaks()
+{
+ WebCore::Node::startIgnoringLeaks();
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::memoryStatistics(IPropertyBag** statistics)
+{
+ if (!statistics)
+ return E_POINTER;
+
+ WTF::FastMallocStatistics fastMallocStatistics = WTF::fastMallocStatistics();
+
+ JSLockHolder lock(JSDOMWindow::commonVM());
+ unsigned long long heapSize = JSDOMWindow::commonVM().heap.size();
+ unsigned long long heapFree = JSDOMWindow::commonVM().heap.capacity() - heapSize;
+ GlobalMemoryStatistics globalMemoryStats = globalMemoryStatistics();
+
+ HashMap<String, unsigned long long, CaseFoldingHash> fields;
+ fields.add("FastMallocReservedVMBytes", static_cast<unsigned long long>(fastMallocStatistics.reservedVMBytes));
+ fields.add("FastMallocCommittedVMBytes", static_cast<unsigned long long>(fastMallocStatistics.committedVMBytes));
+ fields.add("FastMallocFreeListBytes", static_cast<unsigned long long>(fastMallocStatistics.freeListBytes));
+ fields.add("JavaScriptHeapSize", heapSize);
+ fields.add("JavaScriptFreeSize", heapFree);
+ fields.add("JavaScriptStackSize", static_cast<unsigned long long>(globalMemoryStats.stackBytes));
+ fields.add("JavaScriptJITSize", static_cast<unsigned long long>(globalMemoryStats.JITBytes));
+
+ *statistics = COMPropertyBag<unsigned long long, String, CaseFoldingHash>::adopt(fields);
+
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::returnFreeMemoryToSystem()
+{
+ WTF::releaseFastMallocFreeMemory();
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::cachedPageCount(INT* count)
+{
+ if (!count)
+ return E_POINTER;
+
+ *count = pageCache()->pageCount();
+ return S_OK;
+}
+
+HRESULT WebCoreStatistics::cachedFrameCount(INT* count)
+{
+ if (!count)
+ return E_POINTER;
+
+ *count = pageCache()->frameCount();
+ return S_OK;
+}
</ins></span></pre></div>
<a id="trunkSourceWebKitwinWebCoreStatisticsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebCoreStatistics.h (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebCoreStatistics.h        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Source/WebKit/win/WebCoreStatistics.h        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
</del><ins>+ * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved.
</ins><span class="cx"> *
</span><span class="cx"> * Redistribution and use in source and binary forms, with or without
</span><span class="cx"> * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -64,10 +64,27 @@
</span><span class="cx"> /* [retval][out] */ UINT *count);
</span><span class="cx"> virtual HRESULT STDMETHODCALLTYPE cachedFontDataInactiveCount(
</span><span class="cx"> /* [retval][out] */ UINT *count);
</span><del>- virtual HRESULT STDMETHODCALLTYPE purgeInactiveFontData(void);
</del><ins>+ virtual HRESULT STDMETHODCALLTYPE purgeInactiveFontData();
</ins><span class="cx"> virtual HRESULT STDMETHODCALLTYPE glyphPageCount(
</span><span class="cx"> /* [retval][out] */ UINT *count);
</span><span class="cx">
</span><ins>+ virtual HRESULT STDMETHODCALLTYPE javaScriptObjectTypeCounts(/* [retval][out] */ IPropertyBag2** typeNamesAndCounts);
+ virtual HRESULT STDMETHODCALLTYPE garbageCollectJavaScriptObjects();
+ virtual HRESULT STDMETHODCALLTYPE garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging(BOOL waitUntilDone);
+ virtual HRESULT STDMETHODCALLTYPE setJavaScriptGarbageCollectorTimerEnabled(BOOL);
+
+ virtual HRESULT STDMETHODCALLTYPE shouldPrintExceptions(BOOL*);
+ virtual HRESULT STDMETHODCALLTYPE setShouldPrintExceptions(BOOL);
+
+ virtual HRESULT STDMETHODCALLTYPE startIgnoringWebCoreNodeLeaks();
+ virtual HRESULT STDMETHODCALLTYPE stopIgnoringWebCoreNodeLeaks();
+
+ virtual HRESULT STDMETHODCALLTYPE memoryStatistics(/* [retval][out] */ IPropertyBag** statistics);
+ virtual HRESULT STDMETHODCALLTYPE returnFreeMemoryToSystem();
+
+ virtual HRESULT STDMETHODCALLTYPE cachedPageCount(/* [retval][out] */ INT *count);
+ virtual HRESULT STDMETHODCALLTYPE cachedFrameCount(/* [retval][out] */ INT *count);
+
</ins><span class="cx"> protected:
</span><span class="cx"> ULONG m_refCount;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/ChangeLog        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2014-06-25 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Expose Cache Information to WinLauncher
+ https://bugs.webkit.org/show_bug.cgi?id=134318
+
+ Reviewed by Dean Jackson.
+
+ * WinLauncher/Common.cpp: Update for new dialog.
+ * WinLauncher/WinLauncher.cpp: Add support for WebCache
+ and WebCoreStatistics.
+ * WinLauncher/WinLauncher.h:
+ * WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc:
+ Update for new Cache Dialog.
+ * WinLauncher/WinLauncher.vcxproj/WinLauncherLibCommon.props: Link to
+ WTF.lib
+ * WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h: Update
+ for new Dialog.
+
</ins><span class="cx"> 2014-06-26 Brent Fulgham <bfulgham@apple.com>
</span><span class="cx">
</span><span class="cx"> [Win] Unreviewed gardening. Use consistent line-endings in file.
</span></span></pre></div>
<a id="trunkToolsWinLauncherCommoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/Common.cpp (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/Common.cpp        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/WinLauncher/Common.cpp        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -34,9 +34,12 @@
</span><span class="cx"> #include <WebKit/WebKitCOMAPI.h>
</span><span class="cx"> #include <wtf/ExportMacros.h>
</span><span class="cx"> #include <wtf/Platform.h>
</span><ins>+#include <wtf/text/CString.h>
+#include <wtf/text/WTFString.h>
</ins><span class="cx">
</span><span class="cx"> #if USE(CF)
</span><span class="cx"> #include <CoreFoundation/CFRunLoop.h>
</span><ins>+#include <WebKit/CFDictionaryPropertyBag.h>
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #include <cassert>
</span><span class="lines">@@ -62,7 +65,6 @@
</span><span class="cx">
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebFrame, &__uuidof(IWebFrame)>> IWebFramePtr;
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebMutableURLRequest, &__uuidof(IWebMutableURLRequest)>> IWebMutableURLRequestPtr;
</span><del>-typedef _com_ptr_t<_com_IIID<IWebCache, &__uuidof(IWebCache)>> IWebCachePtr;
</del><span class="cx">
</span><span class="cx"> // Global Variables:
</span><span class="cx"> HINSTANCE hInst;
</span><span class="lines">@@ -70,6 +72,7 @@
</span><span class="cx"> HWND hURLBarWnd;
</span><span class="cx"> HWND hBackButtonWnd;
</span><span class="cx"> HWND hForwardButtonWnd;
</span><ins>+HWND hCacheWnd;
</ins><span class="cx"> WNDPROC DefEditProc = nullptr;
</span><span class="cx"> WNDPROC DefButtonProc = nullptr;
</span><span class="cx"> WNDPROC DefWebKitProc = nullptr;
</span><span class="lines">@@ -90,8 +93,10 @@
</span><span class="cx"> LRESULT CALLBACK BackButtonProc(HWND, UINT, WPARAM, LPARAM);
</span><span class="cx"> LRESULT CALLBACK ForwardButtonProc(HWND, UINT, WPARAM, LPARAM);
</span><span class="cx"> LRESULT CALLBACK ReloadButtonProc(HWND, UINT, WPARAM, LPARAM);
</span><ins>+INT_PTR CALLBACK Caches(HWND, UINT, WPARAM, LPARAM);
</ins><span class="cx">
</span><span class="cx"> static void loadURL(BSTR urlBStr);
</span><ins>+static void updateStatistics(HWND hDlg);
</ins><span class="cx">
</span><span class="cx"> static void resizeSubViews()
</span><span class="cx"> {
</span><span class="lines">@@ -155,10 +160,8 @@
</span><span class="cx">
</span><span class="cx"> static bool setCacheFolder()
</span><span class="cx"> {
</span><del>- IWebCachePtr webCache;
-
- HRESULT hr = WebKitCreateInstance(CLSID_WebCache, 0, __uuidof(webCache), reinterpret_cast<void**>(&webCache.GetInterfacePtr()));
- if (FAILED(hr))
</del><ins>+ IWebCachePtr webCache = gWinLauncher->webCache();
+ if (!webCache)
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> _bstr_t appDataFolder;
</span><span class="lines">@@ -379,6 +382,12 @@
</span><span class="cx"> if (gWinLauncher)
</span><span class="cx"> gWinLauncher->launchInspector();
</span><span class="cx"> break;
</span><ins>+ case IDM_CACHES:
+ if (!::IsWindow(hCacheWnd)) {
+ hCacheWnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_CACHES), hWnd, Caches);
+ ::ShowWindow(hCacheWnd, SW_SHOW);
+ }
+ break;
</ins><span class="cx"> case IDM_HISTORY_BACKWARD:
</span><span class="cx"> case IDM_HISTORY_FORWARD:
</span><span class="cx"> if (gWinLauncher)
</span><span class="lines">@@ -476,6 +485,35 @@
</span><span class="cx"> return (INT_PTR)FALSE;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+INT_PTR CALLBACK Caches(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ switch (message) {
+ case WM_INITDIALOG:
+ ::SetTimer(hDlg, IDT_UPDATE_STATS, 1000, nullptr);
+ return (INT_PTR)TRUE;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
+ ::KillTimer(hDlg, IDT_UPDATE_STATS);
+ ::DestroyWindow(hDlg);
+ hCacheWnd = 0;
+ return (INT_PTR)TRUE;
+ }
+ break;
+
+ case IDT_UPDATE_STATS:
+ ::InvalidateRect(hDlg, nullptr, FALSE);
+ return (INT_PTR)TRUE;
+
+ case WM_PAINT:
+ updateStatistics(hDlg);
+ break;
+ }
+
+ return (INT_PTR)FALSE;
+}
+
</ins><span class="cx"> static void loadURL(BSTR passedURL)
</span><span class="cx"> {
</span><span class="cx"> if (FAILED(gWinLauncher->loadURL(passedURL)))
</span><span class="lines">@@ -484,6 +522,167 @@
</span><span class="cx"> SetFocus(gViewWindow);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static void setWindowText(HWND dialog, UINT field, _bstr_t value)
+{
+ ::SetDlgItemText(dialog, field, value);
+}
+
+static void setWindowText(HWND dialog, UINT field, UINT value)
+{
+ String valueStr = WTF::String::number(value);
+
+ setWindowText(dialog, field, _bstr_t(valueStr.utf8().data()));
+}
+
+typedef _com_ptr_t<_com_IIID<IPropertyBag, &__uuidof(IPropertyBag)>> IPropertyBagPtr;
+
+static void setWindowText(HWND dialog, UINT field, IPropertyBagPtr statistics, const _bstr_t& key)
+{
+ VARIANT var;
+ ::VariantInit(&var);
+ V_VT(&var) = VT_UI8;
+ if (FAILED(statistics->Read(key, &var, 0))) {
+ ::VariantClear(&var);
+ return;
+ }
+
+ unsigned long long value = V_UI8(&var);
+ String valueStr = WTF::String::number(value);
+
+ setWindowText(dialog, field, _bstr_t(valueStr.utf8().data()));
+ ::VariantClear(&var);
+}
+
+static void setWindowText(HWND dialog, UINT field, CFDictionaryRef dictionary, CFStringRef key, UINT& total)
+{
+ CFNumberRef countNum = static_cast<CFNumberRef>(CFDictionaryGetValue(dictionary, key));
+ if (!countNum)
+ return;
+
+ int count = 0;
+ CFNumberGetValue(countNum, kCFNumberIntType, &count);
+
+ setWindowText(dialog, field, static_cast<UINT>(count));
+ total += count;
+}
+
+static void updateStatistics(HWND dialog)
+{
+ if (!gWinLauncher)
+ return;
+
+ IWebCoreStatisticsPtr webCoreStatistics = gWinLauncher->statistics();
+ if (!webCoreStatistics)
+ return;
+
+ IPropertyBagPtr statistics;
+ HRESULT hr = webCoreStatistics->memoryStatistics(&statistics.GetInterfacePtr());
+ if (FAILED(hr))
+ return;
+
+ // FastMalloc.
+ setWindowText(dialog, IDC_RESERVED_VM, statistics, "FastMallocReservedVMBytes");
+ setWindowText(dialog, IDC_COMMITTED_VM, statistics, "FastMallocCommittedVMBytes");
+ setWindowText(dialog, IDC_FREE_LIST_BYTES, statistics, "FastMallocFreeListBytes");
+
+ // WebCore Cache.
+#if USE(CF)
+ IWebCachePtr webCache = gWinLauncher->webCache();
+
+ int dictCount = 6;
+ IPropertyBag* cacheDict[6] = { 0 };
+ if (FAILED(webCache->statistics(&dictCount, cacheDict)))
+ return;
+
+ COMPtr<CFDictionaryPropertyBag> counts, sizes, liveSizes, decodedSizes, purgableSizes;
+ counts.adoptRef(reinterpret_cast<CFDictionaryPropertyBag*>(cacheDict[0]));
+ sizes.adoptRef(reinterpret_cast<CFDictionaryPropertyBag*>(cacheDict[1]));
+ liveSizes.adoptRef(reinterpret_cast<CFDictionaryPropertyBag*>(cacheDict[2]));
+ decodedSizes.adoptRef(reinterpret_cast<CFDictionaryPropertyBag*>(cacheDict[3]));
+ purgableSizes.adoptRef(reinterpret_cast<CFDictionaryPropertyBag*>(cacheDict[4]));
+
+ static CFStringRef imagesKey = CFSTR("images");
+ static CFStringRef stylesheetsKey = CFSTR("style sheets");
+ static CFStringRef xslKey = CFSTR("xsl");
+ static CFStringRef scriptsKey = CFSTR("scripts");
+
+ if (counts) {
+ UINT totalObjects = 0;
+ setWindowText(dialog, IDC_IMAGES_OBJECT_COUNT, counts->dictionary(), imagesKey, totalObjects);
+ setWindowText(dialog, IDC_CSS_OBJECT_COUNT, counts->dictionary(), stylesheetsKey, totalObjects);
+ setWindowText(dialog, IDC_XSL_OBJECT_COUNT, counts->dictionary(), xslKey, totalObjects);
+ setWindowText(dialog, IDC_JSC_OBJECT_COUNT, counts->dictionary(), scriptsKey, totalObjects);
+ setWindowText(dialog, IDC_TOTAL_OBJECT_COUNT, totalObjects);
+ }
+
+ if (sizes) {
+ UINT totalBytes = 0;
+ setWindowText(dialog, IDC_IMAGES_BYTES, sizes->dictionary(), imagesKey, totalBytes);
+ setWindowText(dialog, IDC_CSS_BYTES, sizes->dictionary(), stylesheetsKey, totalBytes);
+ setWindowText(dialog, IDC_XSL_BYTES, sizes->dictionary(), xslKey, totalBytes);
+ setWindowText(dialog, IDC_JSC_BYTES, sizes->dictionary(), scriptsKey, totalBytes);
+ setWindowText(dialog, IDC_TOTAL_BYTES, totalBytes);
+ }
+
+ if (liveSizes) {
+ UINT totalLiveBytes = 0;
+ setWindowText(dialog, IDC_IMAGES_LIVE_COUNT, liveSizes->dictionary(), imagesKey, totalLiveBytes);
+ setWindowText(dialog, IDC_CSS_LIVE_COUNT, liveSizes->dictionary(), stylesheetsKey, totalLiveBytes);
+ setWindowText(dialog, IDC_XSL_LIVE_COUNT, liveSizes->dictionary(), xslKey, totalLiveBytes);
+ setWindowText(dialog, IDC_JSC_LIVE_COUNT, liveSizes->dictionary(), scriptsKey, totalLiveBytes);
+ setWindowText(dialog, IDC_TOTAL_LIVE_COUNT, totalLiveBytes);
+ }
+
+ if (decodedSizes) {
+ UINT totalDecoded = 0;
+ setWindowText(dialog, IDC_IMAGES_DECODED_COUNT, decodedSizes->dictionary(), imagesKey, totalDecoded);
+ setWindowText(dialog, IDC_CSS_DECODED_COUNT, decodedSizes->dictionary(), stylesheetsKey, totalDecoded);
+ setWindowText(dialog, IDC_XSL_DECODED_COUNT, decodedSizes->dictionary(), xslKey, totalDecoded);
+ setWindowText(dialog, IDC_JSC_DECODED_COUNT, decodedSizes->dictionary(), scriptsKey, totalDecoded);
+ setWindowText(dialog, IDC_TOTAL_DECODED, totalDecoded);
+ }
+
+ if (purgableSizes) {
+ UINT totalPurgable = 0;
+ setWindowText(dialog, IDC_IMAGES_PURGEABLE_COUNT, purgableSizes->dictionary(), imagesKey, totalPurgable);
+ setWindowText(dialog, IDC_CSS_PURGEABLE_COUNT, purgableSizes->dictionary(), stylesheetsKey, totalPurgable);
+ setWindowText(dialog, IDC_XSL_PURGEABLE_COUNT, purgableSizes->dictionary(), xslKey, totalPurgable);
+ setWindowText(dialog, IDC_JSC_PURGEABLE_COUNT, purgableSizes->dictionary(), scriptsKey, totalPurgable);
+ setWindowText(dialog, IDC_TOTAL_PURGEABLE, totalPurgable);
+ }
+#endif
+
+ // JavaScript Heap.
+ setWindowText(dialog, IDC_JSC_HEAP_SIZE, statistics, "JavaScriptHeapSize");
+ setWindowText(dialog, IDC_JSC_HEAP_FREE, statistics, "JavaScriptFreeSize");
+
+ UINT count;
+ if (SUCCEEDED(webCoreStatistics->javaScriptObjectsCount(&count)))
+ setWindowText(dialog, IDC_TOTAL_JSC_HEAP_OBJECTS, count);
+ if (SUCCEEDED(webCoreStatistics->javaScriptGlobalObjectsCount(&count)))
+ setWindowText(dialog, IDC_GLOBAL_JSC_HEAP_OBJECTS, count);
+ if (SUCCEEDED(webCoreStatistics->javaScriptProtectedObjectsCount(&count)))
+ setWindowText(dialog, IDC_PROTECTED_JSC_HEAP_OBJECTS, count);
+
+ // Font and Glyph Caches.
+ if (SUCCEEDED(webCoreStatistics->cachedFontDataCount(&count)))
+ setWindowText(dialog, IDC_TOTAL_FONT_OBJECTS, count);
+ if (SUCCEEDED(webCoreStatistics->cachedFontDataInactiveCount(&count)))
+ setWindowText(dialog, IDC_INACTIVE_FONT_OBJECTS, count);
+ if (SUCCEEDED(webCoreStatistics->glyphPageCount(&count)))
+ setWindowText(dialog, IDC_GLYPH_PAGES, count);
+
+ // Site Icon Database.
+ if (SUCCEEDED(webCoreStatistics->iconPageURLMappingCount(&count)))
+ setWindowText(dialog, IDC_PAGE_URL_MAPPINGS, count);
+ if (SUCCEEDED(webCoreStatistics->iconRetainedPageURLCount(&count)))
+ setWindowText(dialog, IDC_RETAINED_PAGE_URLS, count);
+ if (SUCCEEDED(webCoreStatistics->iconRecordCount(&count)))
+ setWindowText(dialog, IDC_SITE_ICON_RECORDS, count);
+ if (SUCCEEDED(webCoreStatistics->iconsWithDataCount(&count)))
+ setWindowText(dialog, IDC_SITE_ICONS_WITH_DATA, count);
+}
+
</ins><span class="cx"> extern "C" __declspec(dllexport) int WINAPI dllLauncherEntryPoint(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpstrCmdLine, int nCmdShow)
</span><span class="cx"> {
</span><span class="cx"> return wWinMain(hInstance, hPrevInstance, lpstrCmdLine, nCmdShow);
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.cpp (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.cpp        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/WinLauncher/WinLauncher.cpp        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -50,7 +50,6 @@
</span><span class="cx"> static const int maxHistorySize = 10;
</span><span class="cx">
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebMutableURLRequest, &__uuidof(IWebMutableURLRequest)>> IWebMutableURLRequestPtr;
</span><del>-typedef _com_ptr_t<_com_IIID<IWebCache, &__uuidof(IWebCache)>> IWebCachePtr;
</del><span class="cx">
</span><span class="cx"> WinLauncher::WinLauncher(HWND mainWnd, HWND urlBarWnd, bool useLayeredWebView)
</span><span class="cx"> : m_hMainWnd(mainWnd)
</span><span class="lines">@@ -70,7 +69,15 @@
</span><span class="cx"> return hr;
</span><span class="cx">
</span><span class="cx"> hr = WebKitCreateInstance(CLSID_WebHistory, 0, __uuidof(m_webHistory), reinterpret_cast<void**>(&m_webHistory.GetInterfacePtr()));
</span><ins>+ if (FAILED(hr))
+ return hr;
</ins><span class="cx">
</span><ins>+ hr = WebKitCreateInstance(CLSID_WebCoreStatistics, 0, __uuidof(m_statistics), reinterpret_cast<void**>(&m_statistics.GetInterfacePtr()));
+ if (FAILED(hr))
+ return hr;
+
+ hr = WebKitCreateInstance(CLSID_WebCache, 0, __uuidof(m_webCache), reinterpret_cast<void**>(&m_webCache.GetInterfacePtr()));
+
</ins><span class="cx"> return hr;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLauncherh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.h (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.h        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/WinLauncher/WinLauncher.h        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -37,9 +37,10 @@
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebUIDelegate, &__uuidof(IWebUIDelegate)>> IWebUIDelegatePtr;
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IAccessibilityDelegate, &__uuidof(IAccessibilityDelegate)>> IAccessibilityDelegatePtr;
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebInspector, &__uuidof(IWebInspector)>> IWebInspectorPtr;
</span><ins>+typedef _com_ptr_t<_com_IIID<IWebCoreStatistics, &__uuidof(IWebCoreStatistics)>> IWebCoreStatisticsPtr;
+typedef _com_ptr_t<_com_IIID<IWebCache, &__uuidof(IWebCache)>> IWebCachePtr;
</ins><span class="cx">
</span><del>-class WinLauncher
-{
</del><ins>+class WinLauncher {
</ins><span class="cx"> public:
</span><span class="cx"> WinLauncher(HWND mainWnd, HWND urlBarWnd, bool useLayeredWebView = false);
</span><span class="cx">
</span><span class="lines">@@ -48,7 +49,7 @@
</span><span class="cx">
</span><span class="cx"> HRESULT loadURL(const BSTR& passedURL);
</span><span class="cx">
</span><del>- void showLastVisitedSites(IWebView& webView);
</del><ins>+ void showLastVisitedSites(IWebView&);
</ins><span class="cx"> void launchInspector();
</span><span class="cx"> void navigateForwardOrBackward(HWND hWnd, UINT menuID);
</span><span class="cx"> void navigateToHistory(HWND hWnd, UINT menuID);
</span><span class="lines">@@ -62,6 +63,8 @@
</span><span class="cx"> IWebPreferencesPtr standardPreferences() { return m_standardPreferences; }
</span><span class="cx"> IWebPreferencesPrivatePtr privatePreferences() { return m_prefsPrivate; }
</span><span class="cx"> IWebFramePtr mainFrame();
</span><ins>+ IWebCoreStatisticsPtr statistics() { return m_statistics; }
+ IWebCachePtr webCache() { return m_webCache; }
</ins><span class="cx">
</span><span class="cx"> bool hasWebView() const { return !!m_webView; }
</span><span class="cx"> bool usesLayeredWebView() const { return m_useLayeredWebView; }
</span><span class="lines">@@ -83,6 +86,9 @@
</span><span class="cx"> IWebUIDelegatePtr m_uiDelegate;
</span><span class="cx"> IAccessibilityDelegatePtr m_accessibilityDelegate;
</span><span class="cx">
</span><ins>+ IWebCoreStatisticsPtr m_statistics;
+ IWebCachePtr m_webCache;
+
</ins><span class="cx"> HWND m_hMainWnd;
</span><span class="cx"> HWND m_hURLBarWnd;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibrc"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLib.rc        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,170 +1,279 @@
</span><del>-// Microsoft Visual C++ generated resource script.
-//
-#include "WinLauncherLibResource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_WINLAUNCHER ICON "WinLauncher.ico"
-IDI_SMALL ICON "small.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_WINLAUNCHER MENU
-BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "&Print\tCtrl-P", IDM_PRINT
- MENUITEM "E&xit", IDM_EXIT
- END
- POPUP "&History"
- BEGIN
- MENUITEM "Back", IDM_HISTORY_BACKWARD
- MENUITEM "Forward", IDM_HISTORY_FORWARD
- MENUITEM SEPARATOR
- MENUITEM "Unused History 0", IDM_HISTORY_LINK0
- MENUITEM "Unused History 1", IDM_HISTORY_LINK1
- MENUITEM "Unused History 2", IDM_HISTORY_LINK2
- MENUITEM "Unused History 3", IDM_HISTORY_LINK3
- MENUITEM "Unused History 4", IDM_HISTORY_LINK4
- MENUITEM "Unused History 5", IDM_HISTORY_LINK5
- MENUITEM "Unused History 6", IDM_HISTORY_LINK6
- MENUITEM "Unused History 7", IDM_HISTORY_LINK7
- MENUITEM "Unused History 8", IDM_HISTORY_LINK8
- MENUITEM "Unused History 9", IDM_HISTORY_LINK9
- END
- POPUP "D&evelop"
- BEGIN
- MENUITEM "Show Web Inspector", IDM_WEB_INSPECTOR
- MENUITEM SEPARATOR
- MENUITEM "Disable Images", IDM_DISABLE_IMAGES
- MENUITEM "Disable Styles", IDM_DISABLE_STYLES
- MENUITEM "Disable JavaScript", IDM_DISABLE_JAVASCRIPT
- MENUITEM "Disable Local File Restrictions", IDM_DISABLE_LOCAL_FILE_RESTRICTIONS
- END
- POPUP "&Help"
- BEGIN
- MENUITEM "&About ...", IDM_ABOUT
- END
- POPUP "&Debug"
- BEGIN
- MENUITEM "Use AVFoundation", IDM_AVFOUNDATION, CHECKED
- MENUITEM "Use Accelerated Compositing", IDM_ACC_COMPOSITING, CHECKED
- MENUITEM "Enable WebKit Full Screen", IDM_WK_FULLSCREEN, CHECKED
- MENUITEM SEPARATOR
- MENUITEM "Show Compositing Borders", IDM_COMPOSITING_BORDERS
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDC_WINLAUNCHER ACCELERATORS
-BEGIN
- "?", IDM_ABOUT, ASCII, ALT
- "/", IDM_ABOUT, ASCII, ALT
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUTBOX DIALOGEX 22, 17, 230, 75
-STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
-CAPTION "About"
-FONT 8, "System", 0, 0, 0x0
-BEGIN
- ICON IDI_WINLAUNCHER,IDC_MYICON,14,9,20,20
- LTEXT "WinLauncher Version 1.2",IDC_STATIC,49,10,119,8,SS_NOPREFIX
- LTEXT "Copyright (C) 2009",IDC_STATIC,49,20,119,8
- DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "WinLauncherLibResource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""windows.h""\r\n"
- "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_APP_TITLE "WinLauncher"
- IDC_WINLAUNCHER "WINLAUNCHER"
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
</del><ins>+// Microsoft Visual C++ generated resource script.
+//
+#include "WinLauncherLibResource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (United States) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_WINLAUNCHER ICON "WinLauncher.ico"
+IDI_SMALL ICON "small.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDC_WINLAUNCHER MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Print\tCtrl-P", IDM_PRINT
+ MENUITEM "E&xit", IDM_EXIT
+ END
+ POPUP "&History"
+ BEGIN
+ MENUITEM "Back", IDM_HISTORY_BACKWARD
+ MENUITEM "Forward", IDM_HISTORY_FORWARD
+ MENUITEM SEPARATOR
+ MENUITEM "Unused History 0", IDM_HISTORY_LINK0
+ MENUITEM "Unused History 1", IDM_HISTORY_LINK1
+ MENUITEM "Unused History 2", IDM_HISTORY_LINK2
+ MENUITEM "Unused History 3", IDM_HISTORY_LINK3
+ MENUITEM "Unused History 4", IDM_HISTORY_LINK4
+ MENUITEM "Unused History 5", IDM_HISTORY_LINK5
+ MENUITEM "Unused History 6", IDM_HISTORY_LINK6
+ MENUITEM "Unused History 7", IDM_HISTORY_LINK7
+ MENUITEM "Unused History 8", IDM_HISTORY_LINK8
+ MENUITEM "Unused History 9", IDM_HISTORY_LINK9
+ END
+ POPUP "D&evelop"
+ BEGIN
+ MENUITEM "Show Web Inspector", IDM_WEB_INSPECTOR
+ MENUITEM SEPARATOR
+ MENUITEM "Disable Images", IDM_DISABLE_IMAGES
+ MENUITEM "Disable Styles", IDM_DISABLE_STYLES
+ MENUITEM "Disable JavaScript", IDM_DISABLE_JAVASCRIPT
+ MENUITEM "Disable Local File Restrictions", IDM_DISABLE_LOCAL_FILE_RESTRICTIONS
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About ...", IDM_ABOUT
+ END
+ POPUP "&Debug"
+ BEGIN
+ MENUITEM "Use AVFoundation", IDM_AVFOUNDATION, CHECKED
+ MENUITEM "Use Accelerated Compositing", IDM_ACC_COMPOSITING, CHECKED
+ MENUITEM "Enable WebKit Full Screen", IDM_WK_FULLSCREEN, CHECKED
+ MENUITEM SEPARATOR
+ MENUITEM "Show Compositing Borders", IDM_COMPOSITING_BORDERS
+ MENUITEM SEPARATOR
+ MENUITEM "Show Caches Window", IDM_CACHES
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDC_WINLAUNCHER ACCELERATORS
+BEGIN
+ "?", IDM_ABOUT, ASCII, ALT
+ "/", IDM_ABOUT, ASCII, ALT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOGEX 22, 17, 230, 75
+STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "System", 0, 0, 0x0
+BEGIN
+ ICON IDI_WINLAUNCHER,IDC_MYICON,14,9,20,20
+ LTEXT "WinLauncher Version 1.3",IDC_STATIC,49,10,119,8,SS_NOPREFIX
+ LTEXT "Copyright (C) 2014",IDC_STATIC,49,20,119,8
+ DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP
+END
+
+IDD_CACHES DIALOGEX 0, 0, 401, 456
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Dialog"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,287,435,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,344,435,50,14
+ GROUPBOX "FastMalloc",IDC_STATIC,208,14,186,67
+ GROUPBOX "WebCore Cache",IDC_STATIC,17,83,376,105
+ GROUPBOX "JavaScript Heap",IDC_STATIC,18,193,376,168
+ GROUPBOX "Site Icon Database",IDC_STATIC,18,366,142,65
+ GROUPBOX "Font and Glyph Caches",IDC_STATIC,168,366,226,66
+ GROUPBOX "CFURLCache",IDC_STATIC,7,14,197,67
+ PUSHBUTTON "Empty URLCache",IDC_EMPTY_URL_CACHE,131,63,69,14,WS_DISABLED
+ PUSHBUTTON "Return Free Memory",IDC_RETURN_FREE_MEMORY,308,63,76,14,WS_DISABLED
+ PUSHBUTTON "Empty WebCore Cache",IDC_EMPTY_WEBCORE_CACHE,21,170,83,14,WS_DISABLED
+ CONTROL "Disable WebCore Cache",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,119,172,93,10
+ PUSHBUTTON "Garbage Collect JavaScript Objects",IDC_GC_JSC,253,343,135,14,WS_DISABLED
+ RTEXT "Reserved VM",IDC_STATIC,212,26,67,9
+ RTEXT "0",IDC_RESERVED_VM,290,26,94,8
+ RTEXT "Committed VM",IDC_STATIC,211,39,67,8
+ RTEXT "0",IDC_COMMITTED_VM,290,39,94,8
+ RTEXT "Free List Bytes",IDC_STATIC,211,52,67,8
+ RTEXT "0",IDC_FREE_LIST_BYTES,290,52,94,8
+ RTEXT "Images",IDC_STATIC,37,106,24,8
+ RTEXT "CSS",IDC_STATIC,47,116,14,8
+ RTEXT "XSL",IDC_STATIC,49,126,12,8
+ RTEXT "JavaScript",IDC_STATIC,27,135,34,8
+ RTEXT "Total",IDC_STATIC,43,146,17,8
+ LTEXT "Objects",IDC_STATIC,111,96,26,8
+ LTEXT "Bytes",IDC_STATIC,175,96,19,8
+ LTEXT "Live",IDC_STATIC,232,96,14,8
+ LTEXT "Decoded",IDC_STATIC,284,96,29,8
+ LTEXT "Purgeable",IDC_STATIC,351,96,33,8
+ RTEXT "0",IDC_IMAGES_OBJECT_COUNT,100,106,32,8
+ RTEXT "0",IDC_CSS_OBJECT_COUNT,100,116,32,8
+ RTEXT "0",IDC_XSL_OBJECT_COUNT,100,126,32,8
+ RTEXT "0",IDC_JSC_OBJECT_COUNT,100,135,32,8
+ RTEXT "0",IDC_TOTAL_OBJECT_COUNT,100,146,32,8
+ RTEXT "0",IDC_IMAGES_BYTES,162,106,32,8
+ RTEXT "0",IDC_CSS_BYTES,162,116,32,8
+ RTEXT "0",IDC_XSL_BYTES,162,126,32,8
+ RTEXT "0",IDC_JSC_BYTES,162,135,32,8
+ RTEXT "0",IDC_TOTAL_BYTES,162,146,32,8
+ RTEXT "0",IDC_IMAGES_LIVE_COUNT,221,106,32,8
+ RTEXT "0",IDC_CSS_LIVE_COUNT,221,116,32,8
+ RTEXT "0",IDC_XSL_LIVE_COUNT,221,126,32,8
+ RTEXT "0",IDC_JSC_LIVE_COUNT,221,135,32,8
+ RTEXT "0",IDC_TOTAL_LIVE_COUNT,221,146,32,8
+ RTEXT "0",IDC_IMAGES_DECODED_COUNT,284,106,32,8
+ RTEXT "0",IDC_CSS_DECODED_COUNT,284,116,32,8
+ RTEXT "0",IDC_XSL_DECODED_COUNT,284,126,32,8
+ RTEXT "0",IDC_JSC_DECODED_COUNT,284,135,32,8
+ RTEXT "0",IDC_TOTAL_DECODED,284,146,32,8
+ RTEXT "0",IDC_IMAGES_PURGEABLE_COUNT,354,106,32,8
+ RTEXT "0",IDC_CSS_PURGEABLE_COUNT,354,116,32,8
+ RTEXT "0",IDC_XSL_PURGEABLE_COUNT,354,126,32,8
+ RTEXT "0",IDC_JSC_PURGEABLE_COUNT,354,135,32,8
+ RTEXT "0",IDC_TOTAL_PURGEABLE,354,146,32,8
+ RTEXT "Total Objects",IDC_STATIC,63,207,44,8
+ RTEXT "Global Objects",IDC_STATIC,56,217,51,8
+ RTEXT "Protected Objects",IDC_STATIC,48,227,59,8
+ RTEXT "0",IDC_TOTAL_JSC_HEAP_OBJECTS,127,207,56,8
+ RTEXT "0",IDC_GLOBAL_JSC_HEAP_OBJECTS,127,217,56,8
+ RTEXT "0",IDC_PROTECTED_JSC_HEAP_OBJECTS,127,227,56,8
+ RTEXT "Size",IDC_STATIC56,223,207,14,8
+ RTEXT "Free",IDC_STATIC57,222,217,16,8
+ RTEXT "0",IDC_JSC_HEAP_SIZE,270,207,56,8
+ RTEXT "0",IDC_JSC_HEAP_FREE,270,217,56,8
+ PUSHBUTTON "Purge Inactive Font Data",IDC_BUTTON5,293,415,95,14,WS_DISABLED
+ LTEXT "Total Font Data Objects",IDC_STATIC,208,379,78,8
+ LTEXT "Inactive Font Data Objects",IDC_STATIC,198,390,88,8
+ LTEXT "Glyph Pages",IDC_STATIC,246,402,40,8
+ RTEXT "0",IDC_TOTAL_FONT_OBJECTS,329,379,56,8
+ RTEXT "0",IDC_INACTIVE_FONT_OBJECTS,329,390,56,8
+ RTEXT "0",IDC_GLYPH_PAGES,329,402,56,8
+ LTEXT "Page URL Mappings",IDC_STATIC,33,380,64,8
+ LTEXT "Retained Page URLs",IDC_STATIC,31,390,66,8
+ LTEXT "Site Icon Records",IDC_STATIC,40,400,57,8
+ LTEXT "Site Icons with Data",IDC_STATIC,32,410,65,8
+ RTEXT "0",IDC_PAGE_URL_MAPPINGS,101,380,52,8
+ RTEXT "0",IDC_RETAINED_PAGE_URLS,101,390,52,8
+ RTEXT "0",IDC_SITE_ICON_RECORDS,101,400,52,8
+ RTEXT "0",IDC_SITE_ICONS_WITH_DATA,101,410,52,8
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "WinLauncherLibResource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+ "#include ""windows.h""\r\n"
+ "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_ABOUTBOX, DIALOG
+ BEGIN
+ END
+
+ IDD_CACHES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 394
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 449
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+ IDS_APP_TITLE "WinLauncher"
+ IDC_WINLAUNCHER "WINLAUNCHER"
+END
+
+#endif // English (United States) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
</ins></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibCommonprops"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibCommon.props (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibCommon.props        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibCommon.props        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> <PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
</span><span class="cx"> </ClCompile>
</span><span class="cx"> <Link>
</span><del>- <AdditionalDependencies>Wininet.lib;DbgHelp.lib;comdlg32.lib;comsuppw.lib;gdi32.lib;comctl32.lib;shlwapi.lib;user32.lib;ole32.lib;oleaut32.lib;WebKitGUID$(DebugSuffix).lib;WebKit$(DebugSuffix).lib;%(AdditionalDependencies)</AdditionalDependencies>
</del><ins>+ <AdditionalDependencies>Wininet.lib;DbgHelp.lib;comdlg32.lib;comsuppw.lib;gdi32.lib;comctl32.lib;shlwapi.lib;user32.lib;ole32.lib;oleaut32.lib;WebKitGUID$(DebugSuffix).lib;WebKit$(DebugSuffix).lib;WTF$(DebugSuffix).lib;%(AdditionalDependencies)</AdditionalDependencies>
</ins><span class="cx"> </Link>
</span><span class="cx"> </ItemDefinitionGroup>
</span><span class="cx"> </Project>
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkToolsWinLauncherWinLaunchervcxprojWinLauncherLibResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h (170482 => 170483)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h        2014-06-26 17:01:13 UTC (rev 170482)
+++ trunk/Tools/WinLauncher/WinLauncher.vcxproj/WinLauncherLibResource.h        2014-06-26 17:22:00 UTC (rev 170483)
</span><span class="lines">@@ -1,6 +1,6 @@
</span><del>-//{{NO_DEPENDENCIES}}
</del><ins>+// {{NO_DEPENDENCIES}}
</ins><span class="cx"> // Microsoft Visual C++ generated include file.
</span><del>-// Used by WinLauncher.rc
</del><ins>+// Used by WinLauncherLib.rc
</ins><span class="cx"> //
</span><span class="cx"> #define IDC_MYICON 2
</span><span class="cx"> #define IDD_WINLAUNCHER_DIALOG 102
</span><span class="lines">@@ -16,11 +16,14 @@
</span><span class="cx"> #define IDM_ACC_COMPOSITING 111
</span><span class="cx"> #define IDM_WK_FULLSCREEN 112
</span><span class="cx"> #define IDM_COMPOSITING_BORDERS 113
</span><ins>+#define IDM_CACHES 114
</ins><span class="cx"> #define IDM_WEB_INSPECTOR 120
</span><span class="cx"> #define IDM_DISABLE_IMAGES 121
</span><span class="cx"> #define IDM_DISABLE_STYLES 122
</span><span class="cx"> #define IDM_DISABLE_JAVASCRIPT 123
</span><span class="cx"> #define IDM_DISABLE_LOCAL_FILE_RESTRICTIONS 124
</span><ins>+#define IDR_MAINFRAME 128
+#define IDD_CACHES 129
</ins><span class="cx"> #define IDM_HISTORY_BACKWARD 130
</span><span class="cx"> #define IDM_HISTORY_FORWARD 131
</span><span class="cx"> #define IDM_HISTORY_LINK0 150
</span><span class="lines">@@ -33,8 +36,57 @@
</span><span class="cx"> #define IDM_HISTORY_LINK7 157
</span><span class="cx"> #define IDM_HISTORY_LINK8 158
</span><span class="cx"> #define IDM_HISTORY_LINK9 159
</span><del>-
-#define IDR_MAINFRAME 128
</del><ins>+#define IDT_UPDATE_STATS 160
+#define IDC_EMPTY_URL_CACHE 1000
+#define IDC_RETURN_FREE_MEMORY 1001
+#define IDC_EMPTY_WEBCORE_CACHE 1002
+#define IDC_CHECK1 1003
+#define IDC_HEAP_OBJECTS 1005
+#define IDC_GC_JSC 1006
+#define IDC_RESERVED_VM 1007
+#define IDC_COMMITTED_VM 1008
+#define IDC_FREE_LIST_BYTES 1009
+#define IDC_IMAGES_OBJECT_COUNT 1011
+#define IDC_CSS_OBJECT_COUNT 1012
+#define IDC_XSL_OBJECT_COUNT 1013
+#define IDC_JSC_OBJECT_COUNT 1014
+#define IDC_TOTAL_OBJECT_COUNT 1015
+#define IDC_IMAGES_BYTES 1016
+#define IDC_CSS_BYTES 1017
+#define IDC_XSL_BYTES 1018
+#define IDC_JSC_BYTES 1019
+#define IDC_TOTAL_BYTES 1020
+#define IDC_IMAGES_LIVE_COUNT 1021
+#define IDC_CSS_LIVE_COUNT 1022
+#define IDC_XSL_LIVE_COUNT 1023
+#define IDC_JSC_LIVE_COUNT 1024
+#define IDC_TOTAL_LIVE_COUNT 1025
+#define IDC_IMAGES_DECODED_COUNT 1026
+#define IDC_CSS_DECODED_COUNT 1027
+#define IDC_XSL_DECODED_COUNT 1028
+#define IDC_JSC_DECODED_COUNT 1029
+#define IDC_TOTAL_DECODED 1030
+#define IDC_IMAGES_PURGEABLE_COUNT 1031
+#define IDC_CSS_PURGEABLE_COUNT 1032
+#define IDC_XSL_PURGEABLE_COUNT 1033
+#define IDC_JSC_PURGEABLE_COUNT 1034
+#define IDC_TOTAL_PURGEABLE 1035
+#define IDC_TOTAL_JSC_HEAP_OBJECTS 1036
+#define IDC_GLOBAL_JSC_HEAP_OBJECTS 1037
+#define IDC_PROTECTED_JSC_HEAP_OBJECTS 1038
+#define IDC_STATIC56 1039
+#define IDC_STATIC57 1040
+#define IDC_JSC_HEAP_SIZE 1041
+#define IDC_JSC_HEAP_FREE 1042
+#define IDC_BUTTON5 1043
+#define IDC_TOTAL_FONT_OBJECTS 1044
+#define IDC_INACTIVE_FONT_OBJECTS 1045
+#define IDC_GLYPH_PAGES 1046
+#define IDC_PAGE_URL_MAPPINGS 1047
+#define IDC_RETAINED_PAGE_URLS 1048
+#define IDC_SITE_ICON_RECORDS 1049
+#define IDC_TOTAL_FONT_OBJECTS5 1050
+#define IDC_SITE_ICONS_WITH_DATA 1050
</ins><span class="cx"> #define IDC_STATIC -1
</span><span class="cx">
</span><span class="cx"> // Next default values for new objects
</span><span class="lines">@@ -42,9 +94,9 @@
</span><span class="cx"> #ifdef APSTUDIO_INVOKED
</span><span class="cx"> #ifndef APSTUDIO_READONLY_SYMBOLS
</span><span class="cx"> #define _APS_NO_MFC 1
</span><del>-#define _APS_NEXT_RESOURCE_VALUE 129
</del><ins>+#define _APS_NEXT_RESOURCE_VALUE 130
</ins><span class="cx"> #define _APS_NEXT_COMMAND_VALUE 32771
</span><del>-#define _APS_NEXT_CONTROL_VALUE 1000
</del><ins>+#define _APS_NEXT_CONTROL_VALUE 1044
</ins><span class="cx"> #define _APS_NEXT_SYMED_VALUE 110
</span><span class="cx"> #endif
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>
</body>
</html>