<!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>[190091] 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/190091">190091</a></dd>
<dt>Author</dt> <dd>bfulgham@apple.com</dd>
<dt>Date</dt> <dd>2015-09-21 17:07:40 -0700 (Mon, 21 Sep 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Source/WebCore:
[Win] Show tiled drawing debug overlay on Windows
https://bugs.webkit.org/show_bug.cgi?id=149426
Reviewed by Dean Jackson.
No new tests: No change in behavior.
* platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::PlatformCALayer::drawRepaintIndicator): Revise signature to accept
a scale value and a font size.
(WebCore::PlatformCALayer::drawTextAtPoint): Revise signature for new arguments.
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::drawTileMapContents): Removing scaling and text drawing code,
and call common CALayer drawing routine.
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
(WebCore::CACFLayerTreeHost::create): Switch to nullptr.
(WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Switch to C++14 initializers.
(WebCore::CACFLayerTreeHost::setPage): Added.
(WebCore::CACFLayerTreeHost::rootLayer): Update debug info layer if requested by settings.
(WebCore::CACFLayerTreeHost::layerTreeDidChange): Ditto.
(WebCore::CACFLayerTreeHost::mainFrameTiledBacking): Added.
(WebCore::CACFLayerTreeHost::updateDbugInfoLayer): Added.
* platform/graphics/ca/win/CACFLayerTreeHost.h:
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(WebCore::PlatformCALayerWin::drawTextAtPoint): Revised signature for new arguments. Use
argument for font size (rather than hard-coded '18'). Adjust font size by passed scale value.
* platform/graphics/ca/win/PlatformCALayerWin.h:
Source/WebKit/win:
[Win] Show tiled drawing debug overlay on Windows
https://bugs.webkit.org/show_bug.cgi?id=149426
Reviewed by Dean Jackson.
* Interfaces/IWebPreferencesPrivate.idl: Add new IWebPreferencesPrivate3 API version
so we can add new methods this cycle.
* WebPreferenceKeysPrivate.h: Add key for 'WebKitShowTiledScrollingIndicator'
* WebPreferences.cpp:
(WebPreferences::QueryInterface): Recognize the new IWebPreferencesPrivate3 API.
(WebPreferences::showTiledScrollingIndicator): Added.
(WebPreferences::setShowTiledScrollingIndicator): Ditto.
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged): Update to recognize 'showTiledScrollingIndicator'.
(WebView::setAcceleratedCompositing): Link the CACFLayerTreeHost to the WebCore Page object
so that it can see settings information.
Tools:
Remove 'nullable' to fix older iOS builds.
Patch by Simon Fraser <simon.fraser@apple.com> on 2015-09-21
* WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView scrollViewDidEndZooming:withView:atScale:]):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaPlatformCALayercpp">trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaPlatformCALayerh">trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscaTileGridcpp">trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscawinCACFLayerTreeHostcpp">trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscawinCACFLayerTreeHosth">trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscawinPlatformCALayerWincpp">trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscawinPlatformCALayerWinh">trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.h</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinInterfacesIWebPreferencesPrivateidl">trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl</a></li>
<li><a href="#trunkSourceWebKitwinWebPreferenceKeysPrivateh">trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitwinWebPreferencescpp">trunk/Source/WebKit/win/WebPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebPreferencesh">trunk/Source/WebKit/win/WebPreferences.h</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsMiniBrowserMiniBrowservcxprojMiniBrowserLibrc">trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc</a></li>
<li><a href="#trunkToolsMiniBrowserMiniBrowservcxprojMiniBrowserLibResourceh">trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h</a></li>
<li><a href="#trunkToolsMiniBrowserwinCommoncpp">trunk/Tools/MiniBrowser/win/Common.cpp</a></li>
<li><a href="#trunkToolsMiniBrowserwinMiniBrowserh">trunk/Tools/MiniBrowser/win/MiniBrowser.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/ChangeLog        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2015-09-21 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Show tiled drawing debug overlay on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=149426
+
+ Reviewed by Dean Jackson.
+
+ No new tests: No change in behavior.
+
+ * platform/graphics/ca/PlatformCALayer.cpp:
+ (WebCore::PlatformCALayer::drawRepaintIndicator): Revise signature to accept
+ a scale value and a font size.
+ (WebCore::PlatformCALayer::drawTextAtPoint): Revise signature for new arguments.
+ * platform/graphics/ca/PlatformCALayer.h:
+ * platform/graphics/ca/TileGrid.cpp:
+ (WebCore::TileGrid::drawTileMapContents): Removing scaling and text drawing code,
+ and call common CALayer drawing routine.
+ * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
+ (WebCore::CACFLayerTreeHost::create): Switch to nullptr.
+ (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Switch to C++14 initializers.
+ (WebCore::CACFLayerTreeHost::setPage): Added.
+ (WebCore::CACFLayerTreeHost::rootLayer): Update debug info layer if requested by settings.
+ (WebCore::CACFLayerTreeHost::layerTreeDidChange): Ditto.
+ (WebCore::CACFLayerTreeHost::mainFrameTiledBacking): Added.
+ (WebCore::CACFLayerTreeHost::updateDbugInfoLayer): Added.
+ * platform/graphics/ca/win/CACFLayerTreeHost.h:
+ * platform/graphics/ca/win/PlatformCALayerWin.cpp:
+ (WebCore::PlatformCALayerWin::drawTextAtPoint): Revised signature for new arguments. Use
+ argument for font size (rather than hard-coded '18'). Adjust font size by passed scale value.
+ * platform/graphics/ca/win/PlatformCALayerWin.h:
+
</ins><span class="cx"> 2015-09-21 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> [JS Bindings] prototype.constructor should be writable
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaPlatformCALayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> else
</span><span class="cx"> CGContextSetRGBFillColor(context, 1, 1, 1, 1);
</span><span class="cx">
</span><del>- platformCALayer->drawTextAtPoint(context, indicatorBox.origin.x + 5, indicatorBox.origin.y + 22, text, strlen(text));
</del><ins>+ platformCALayer->drawTextAtPoint(context, indicatorBox.origin.x + 5, indicatorBox.origin.y + 22, CGSizeMake(1, -1), 22, text, strlen(text));
</ins><span class="cx">
</span><span class="cx"> CGContextEndTransparencyLayer(context);
</span><span class="cx"> CGContextRestoreGState(context);
</span><span class="lines">@@ -96,12 +96,12 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // This function is needed to work around a bug in Windows CG <rdar://problem/22703470>
</span><del>-void PlatformCALayer::drawTextAtPoint(CGContextRef context, CGFloat x, CGFloat y, const char* text, size_t length) const
</del><ins>+void PlatformCALayer::drawTextAtPoint(CGContextRef context, CGFloat x, CGFloat y, CGSize scale, CGFloat fontSize, const char* text, size_t length) const
</ins><span class="cx"> {
</span><span class="cx"> #pragma clang diagnostic push
</span><span class="cx"> #pragma clang diagnostic ignored "-Wdeprecated-declarations"
</span><del>- CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1, -1));
- CGContextSelectFont(context, "Helvetica", 22, kCGEncodingMacRoman);
</del><ins>+ CGContextSetTextMatrix(context, CGAffineTransformMakeScale(scale.width, scale.height));
+ CGContextSelectFont(context, "Helvetica", fontSize, kCGEncodingMacRoman);
</ins><span class="cx"> CGContextShowTextAtPoint(context, x, y, text, length);
</span><span class="cx"> #pragma clang diagnostic pop
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaPlatformCALayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -226,7 +226,7 @@
</span><span class="cx">
</span><span class="cx"> virtual TiledBacking* tiledBacking() = 0;
</span><span class="cx">
</span><del>- virtual void drawTextAtPoint(CGContextRef, CGFloat x, CGFloat y, const char* text, size_t length) const;
</del><ins>+ virtual void drawTextAtPoint(CGContextRef, CGFloat x, CGFloat y, CGSize scale, CGFloat fontSize, const char* text, size_t length) const;
</ins><span class="cx">
</span><span class="cx"> static void flipContext(CGContextRef, CGFloat height);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscaTileGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/TileGrid.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -642,13 +642,9 @@
</span><span class="cx"> String repaintCount = String::number(m_tileRepaintCounts.get(tileLayer));
</span><span class="cx">
</span><span class="cx"> CGContextSaveGState(context);
</span><del>- CGContextSetTextMatrix(context, CGAffineTransformMakeScale(3, -3));
</del><span class="cx">
</span><del>-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- CGContextSelectFont(context, "Helvetica", 58, kCGEncodingMacRoman);
- CGContextShowTextAtPoint(context, frame.origin.x + 64, frame.origin.y + 192, repaintCount.ascii().data(), repaintCount.length());
-#pragma clang diagnostic pop
</del><ins>+ tileLayer->drawTextAtPoint(context, frame.origin.x + 64, frame.origin.y + 192, CGSizeMake(3, -3), 58,
+ repaintCount.ascii().data(), repaintCount.length());
</ins><span class="cx">
</span><span class="cx"> CGContextRestoreGState(context);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscawinCACFLayerTreeHostcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -27,9 +27,14 @@
</span><span class="cx"> #include "CACFLayerTreeHost.h"
</span><span class="cx">
</span><span class="cx"> #include "CACFLayerTreeHostClient.h"
</span><ins>+#include "DebugPageOverlays.h"
</ins><span class="cx"> #include "DefWndProcWindowClass.h"
</span><ins>+#include "FrameView.h"
</ins><span class="cx"> #include "LayerChangesFlusher.h"
</span><ins>+#include "MainFrame.h"
</ins><span class="cx"> #include "PlatformCALayerWin.h"
</span><ins>+#include "PlatformLayer.h"
+#include "TiledBacking.h"
</ins><span class="cx"> #include "WKCACFViewLayerTreeHost.h"
</span><span class="cx"> #include "WebCoreInstanceHandle.h"
</span><span class="cx"> #include <limits.h>
</span><span class="lines">@@ -110,21 +115,14 @@
</span><span class="cx"> PassRefPtr<CACFLayerTreeHost> CACFLayerTreeHost::create()
</span><span class="cx"> {
</span><span class="cx"> if (!acceleratedCompositingAvailable())
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> RefPtr<CACFLayerTreeHost> host = WKCACFViewLayerTreeHost::create();
</span><span class="cx"> host->initialize();
</span><span class="cx"> return host.release();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> CACFLayerTreeHost::CACFLayerTreeHost()
</span><del>- : m_client(0)
- , m_rootLayer(PlatformCALayerWin::create(PlatformCALayer::LayerTypeRootLayer, 0))
- , m_window(0)
- , m_shouldFlushPendingGraphicsLayerChanges(false)
- , m_isFlushingLayerChanges(false)
-#if !ASSERT_DISABLED
- , m_state(WindowNotSet)
-#endif
</del><ins>+ : m_rootLayer(PlatformCALayerWin::create(PlatformCALayer::LayerTypeRootLayer, nullptr))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -187,6 +185,11 @@
</span><span class="cx"> m_window = window;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void CACFLayerTreeHost::setPage(Page* page)
+{
+ m_page = page;
+}
+
</ins><span class="cx"> PlatformCALayer* CACFLayerTreeHost::rootLayer() const
</span><span class="cx"> {
</span><span class="cx"> return m_rootLayer.get();
</span><span class="lines">@@ -203,6 +206,7 @@
</span><span class="cx"> m_rootChildLayer = layer;
</span><span class="cx"> if (m_rootChildLayer)
</span><span class="cx"> m_rootLayer->appendSublayer(*m_rootChildLayer);
</span><ins>+ updateDebugInfoLayer(m_page->settings().showTiledScrollingIndicator());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void CACFLayerTreeHost::layerTreeDidChange()
</span><span class="lines">@@ -279,6 +283,8 @@
</span><span class="cx"> // Calling out to the client could cause our last reference to go away.
</span><span class="cx"> RefPtr<CACFLayerTreeHost> protector(this);
</span><span class="cx">
</span><ins>+ updateDebugInfoLayer(m_page->settings().showTiledScrollingIndicator());
+
</ins><span class="cx"> m_isFlushingLayerChanges = true;
</span><span class="cx">
</span><span class="cx"> // Flush changes stored up in GraphicsLayers to their underlying PlatformCALayers, if
</span><span class="lines">@@ -330,4 +336,36 @@
</span><span class="cx"> return m_rootLayer->layerTreeAsString();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+TiledBacking* CACFLayerTreeHost::mainFrameTiledBacking() const
+{
+ if (!m_page)
+ return nullptr;
+
+ FrameView* frameView = m_page->mainFrame().view();
+ if (!frameView)
+ return nullptr;
+
+ return frameView->tiledBacking();
</ins><span class="cx"> }
</span><ins>+
+void CACFLayerTreeHost::updateDebugInfoLayer(bool showLayer)
+{
+ if (showLayer) {
+ if (!m_debugInfoLayer) {
+ if (TiledBacking* tiledBacking = mainFrameTiledBacking())
+ m_debugInfoLayer = tiledBacking->tiledScrollingIndicatorLayer();
+ }
+
+ if (m_debugInfoLayer) {
+#ifndef NDEBUG
+ m_debugInfoLayer->setName("Debug Info");
+#endif
+ m_rootLayer->appendSublayer(*m_debugInfoLayer);
+ }
+ } else if (m_debugInfoLayer) {
+ m_debugInfoLayer->removeFromSuperlayer();
+ m_debugInfoLayer = nullptr;
+ }
+}
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscawinCACFLayerTreeHosth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #include "AbstractCACFLayerTreeHost.h"
</span><span class="cx"> #include "COMPtr.h"
</span><ins>+#include "Page.h"
</ins><span class="cx"> #include "Timer.h"
</span><span class="cx">
</span><span class="cx"> #include <wtf/HashSet.h>
</span><span class="lines">@@ -52,6 +53,7 @@
</span><span class="cx">
</span><span class="cx"> class CACFLayerTreeHostClient;
</span><span class="cx"> class PlatformCALayer;
</span><ins>+class TiledBacking;
</ins><span class="cx">
</span><span class="cx"> class CACFLayerTreeHost : public RefCounted<CACFLayerTreeHost>, private AbstractCACFLayerTreeHost {
</span><span class="cx"> public:
</span><span class="lines">@@ -64,6 +66,7 @@
</span><span class="cx">
</span><span class="cx"> void setRootChildLayer(PlatformCALayer*);
</span><span class="cx"> void setWindow(HWND);
</span><ins>+ void setPage(Page*);
</ins><span class="cx"> virtual void paint();
</span><span class="cx"> virtual void resize() = 0;
</span><span class="cx"> void flushPendingGraphicsLayerChangesSoon();
</span><span class="lines">@@ -78,6 +81,7 @@
</span><span class="cx"> virtual void flushPendingLayerChangesNow();
</span><span class="cx">
</span><span class="cx"> String layerTreeAsString() const;
</span><ins>+ void updateDebugInfoLayer(bool);
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> CACFLayerTreeHost();
</span><span class="lines">@@ -86,6 +90,8 @@
</span><span class="cx"> HWND window() const { return m_window; }
</span><span class="cx"> void notifyAnimationsStarted();
</span><span class="cx">
</span><ins>+ TiledBacking* mainFrameTiledBacking() const;
+
</ins><span class="cx"> // AbstractCACFLayerTreeHost
</span><span class="cx"> virtual PlatformCALayer* rootLayer() const;
</span><span class="cx">
</span><span class="lines">@@ -105,16 +111,18 @@
</span><span class="cx"> virtual void render(const Vector<CGRect>& dirtyRects = Vector<CGRect>()) = 0;
</span><span class="cx"> virtual void initializeContext(void* userData, PlatformCALayer*) = 0;
</span><span class="cx">
</span><del>- CACFLayerTreeHostClient* m_client;
</del><ins>+ CACFLayerTreeHostClient* m_client { nullptr };
+ Page* m_page { nullptr };
</ins><span class="cx"> RefPtr<PlatformCALayer> m_rootLayer;
</span><span class="cx"> RefPtr<PlatformCALayer> m_rootChildLayer;
</span><ins>+ RefPtr<PlatformCALayer> m_debugInfoLayer;
</ins><span class="cx"> HashSet<RefPtr<PlatformCALayer> > m_pendingAnimatedLayers;
</span><del>- HWND m_window;
- bool m_shouldFlushPendingGraphicsLayerChanges;
- bool m_isFlushingLayerChanges;
</del><ins>+ HWND m_window { nullptr };
+ bool m_shouldFlushPendingGraphicsLayerChanges { false };
+ bool m_isFlushingLayerChanges { false };
</ins><span class="cx">
</span><span class="cx"> #if !ASSERT_DISABLED
</span><del>- enum { WindowNotSet, WindowSet, WindowCleared } m_state;
</del><ins>+ enum { WindowNotSet, WindowSet, WindowCleared } m_state { WindowNotSet };
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscawinPlatformCALayerWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -899,7 +899,7 @@
</span><span class="cx"> return reinterpret_cast<WebTiledBackingLayerWin*>(intern(this))->tiledBacking();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void PlatformCALayerWin::drawTextAtPoint(CGContextRef context, CGFloat x, CGFloat y, const char* message, size_t length) const
</del><ins>+void PlatformCALayerWin::drawTextAtPoint(CGContextRef context, CGFloat x, CGFloat y, CGSize scale, CGFloat fontSize, const char* message, size_t length) const
</ins><span class="cx"> {
</span><span class="cx"> String text(message, length);
</span><span class="cx">
</span><span class="lines">@@ -910,7 +910,7 @@
</span><span class="cx"> SystemParametersInfo(SPI_GETNONCLIENTMETRICS, metrics.cbSize, &metrics, 0);
</span><span class="cx"> desc.setOneFamily(metrics.lfSmCaptionFont.lfFaceName);
</span><span class="cx">
</span><del>- desc.setComputedSize(18);
</del><ins>+ desc.setComputedSize(scale.width * fontSize);
</ins><span class="cx">
</span><span class="cx"> FontCascade font = FontCascade(desc, 0, 0);
</span><span class="cx"> font.update(nullptr);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscawinPlatformCALayerWinh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx"> virtual PlatformCALayer* rootLayer() const override;
</span><span class="cx"> virtual void setNeedsLayout() override;
</span><span class="cx"> virtual void setNeedsCommit() override;
</span><del>- virtual void drawTextAtPoint(CGContextRef, CGFloat x, CGFloat y, const char* text, size_t length) const override;
</del><ins>+ virtual void drawTextAtPoint(CGContextRef, CGFloat x, CGFloat y, CGSize scale, CGFloat fontSize, const char* text, size_t length) const override;
</ins><span class="cx">
</span><span class="cx"> virtual String layerTreeAsString() const override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebKit/win/ChangeLog        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-09-21 Brent Fulgham <bfulgham@apple.com>
+
+ [Win] Show tiled drawing debug overlay on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=149426
+
+ Reviewed by Dean Jackson.
+
+ * Interfaces/IWebPreferencesPrivate.idl: Add new IWebPreferencesPrivate3 API version
+ so we can add new methods this cycle.
+ * WebPreferenceKeysPrivate.h: Add key for 'WebKitShowTiledScrollingIndicator'
+ * WebPreferences.cpp:
+ (WebPreferences::QueryInterface): Recognize the new IWebPreferencesPrivate3 API.
+ (WebPreferences::showTiledScrollingIndicator): Added.
+ (WebPreferences::setShowTiledScrollingIndicator): Ditto.
+ * WebPreferences.h:
+ * WebView.cpp:
+ (WebView::notifyPreferencesChanged): Update to recognize 'showTiledScrollingIndicator'.
+ (WebView::setAcceleratedCompositing): Link the CACFLayerTreeHost to the WebCore Page object
+ so that it can see settings information.
+
</ins><span class="cx"> 2015-09-18 Brent Fulgham <bfulgham@apple.com>
</span><span class="cx">
</span><span class="cx"> [Win] Use tiled drawing for main background layer
</span></span></pre></div>
<a id="trunkSourceWebKitwinInterfacesIWebPreferencesPrivateidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -168,4 +168,12 @@
</span><span class="cx"> HRESULT setJavaScriptRuntimeFlags([in] unsigned flags);
</span><span class="cx"> HRESULT allowDisplayAndRunningOfInsecureContent([out, retval] BOOL* enabled);
</span><span class="cx"> HRESULT setAllowDisplayAndRunningOfInsecureContent([in] BOOL enabled);
</span><del>-}
</del><span class="cx">\ No newline at end of file
</span><ins>+}
+
+[uuid(92809BFB-C24F-43AD-863F-601B08CC268D)]
+interface IWebPreferencesPrivate3 : IWebPreferencesPrivate2
+{
+ HRESULT showTiledScrollingIndicator([out, retval] BOOL* enabled);
+ HRESULT setShowTiledScrollingIndicator([in] BOOL enabled);
+}
+
</ins></span></pre></div>
<a id="trunkSourceWebKitwinWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -165,3 +165,5 @@
</span><span class="cx"> #define WebKitEnableInheritURIQueryComponentPreferenceKey "WebKitEnableInheritURIQueryComponent"
</span><span class="cx">
</span><span class="cx"> #define WebKitAllowDisplayAndRunningOfInsecureContentPreferenceKey "WebKitAllowDisplayAndRunningOfInsecureContent"
</span><ins>+
+#define WebKitShowTiledScrollingIndicatorPreferenceKey "WebKitShowTiledScrollingIndicator"
</ins></span></pre></div>
<a id="trunkSourceWebKitwinWebPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebPreferences.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebPreferences.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebKit/win/WebPreferences.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -532,6 +532,8 @@
</span><span class="cx"> *ppvObject = static_cast<IWebPreferencesPrivate*>(this);
</span><span class="cx"> else if (IsEqualGUID(riid, IID_IWebPreferencesPrivate2))
</span><span class="cx"> *ppvObject = static_cast<IWebPreferencesPrivate2*>(this);
</span><ins>+ else if (IsEqualGUID(riid, IID_IWebPreferencesPrivate3))
+ *ppvObject = static_cast<IWebPreferencesPrivate3*>(this);
</ins><span class="cx"> else if (IsEqualGUID(riid, CLSID_WebPreferences))
</span><span class="cx"> *ppvObject = this;
</span><span class="cx"> else
</span><span class="lines">@@ -1901,3 +1903,17 @@
</span><span class="cx"> setBoolValue(WebKitAllowDisplayAndRunningOfInsecureContentPreferenceKey, enabled);
</span><span class="cx"> return S_OK;
</span><span class="cx"> }
</span><ins>+
+HRESULT WebPreferences::showTiledScrollingIndicator(_Out_ BOOL* enabled)
+{
+ if (!enabled)
+ return E_POINTER;
+ *enabled = boolValueForKey(WebKitShowTiledScrollingIndicatorPreferenceKey);
+ return S_OK;
+}
+
+HRESULT WebPreferences::setShowTiledScrollingIndicator(BOOL enabled)
+{
+ setBoolValue(WebKitShowTiledScrollingIndicatorPreferenceKey, enabled);
+ return S_OK;
+}
</ins></span></pre></div>
<a id="trunkSourceWebKitwinWebPreferencesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebPreferences.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebPreferences.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebKit/win/WebPreferences.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> #include <WebCore/BString.h>
</span><span class="cx"> #include <wtf/RetainPtr.h>
</span><span class="cx">
</span><del>-class WebPreferences : public IWebPreferences, public IWebPreferencesPrivate2 {
</del><ins>+class WebPreferences : public IWebPreferences, public IWebPreferencesPrivate3 {
</ins><span class="cx"> public:
</span><span class="cx"> static WebPreferences* createInstance();
</span><span class="cx"> protected:
</span><span class="lines">@@ -230,6 +230,10 @@
</span><span class="cx"> virtual HRESULT STDMETHODCALLTYPE allowDisplayAndRunningOfInsecureContent(_Out_ BOOL*);
</span><span class="cx"> virtual HRESULT STDMETHODCALLTYPE setAllowDisplayAndRunningOfInsecureContent(BOOL);
</span><span class="cx">
</span><ins>+ // IWebPreferencesPrivate3
+ virtual HRESULT STDMETHODCALLTYPE showTiledScrollingIndicator(_Out_ BOOL*);
+ virtual HRESULT STDMETHODCALLTYPE setShowTiledScrollingIndicator(BOOL);
+
</ins><span class="cx"> // WebPreferences
</span><span class="cx">
</span><span class="cx"> // This method accesses a different preference key than developerExtrasEnabled.
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Source/WebKit/win/WebView.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -4935,7 +4935,7 @@
</span><span class="cx"> settings.setShouldDisplayTextDescriptions(enabled);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- COMPtr<IWebPreferencesPrivate2> prefsPrivate(Query, preferences);
</del><ins>+ COMPtr<IWebPreferencesPrivate3> prefsPrivate(Query, preferences);
</ins><span class="cx"> if (prefsPrivate) {
</span><span class="cx"> hr = prefsPrivate->localStorageDatabasePath(&str);
</span><span class="cx"> if (FAILED(hr))
</span><span class="lines">@@ -5181,6 +5181,11 @@
</span><span class="cx"> return hr;
</span><span class="cx"> settings.setShowRepaintCounter(enabled);
</span><span class="cx">
</span><ins>+ hr = prefsPrivate->showTiledScrollingIndicator(&enabled);
+ if (FAILED(hr))
+ return hr;
+ settings.setShowTiledScrollingIndicator(!!enabled);
+
</ins><span class="cx"> #if ENABLE(WEB_AUDIO)
</span><span class="cx"> settings.setWebAudioEnabled(true);
</span><span class="cx"> #endif // ENABLE(WEB_AUDIO)
</span><span class="lines">@@ -6817,6 +6822,7 @@
</span><span class="cx"> m_layerTreeHost->setClient(this);
</span><span class="cx"> ASSERT(m_viewWindow);
</span><span class="cx"> m_layerTreeHost->setWindow(m_viewWindow);
</span><ins>+ m_layerTreeHost->setPage(page());
</ins><span class="cx">
</span><span class="cx"> // FIXME: We could perhaps get better performance by never allowing this layer to
</span><span class="cx"> // become tiled (or choosing a higher-than-normal tiling threshold).
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Tools/ChangeLog        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -7,6 +7,20 @@
</span><span class="cx">
</span><span class="cx"> 2015-09-21 Brent Fulgham <bfulgham@apple.com>
</span><span class="cx">
</span><ins>+ [Win] Show tiled drawing debug overlay on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=149426
+
+ Reviewed by Dean Jackson.
+
+ * MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc: Add new menu option.
+ * MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h: Ditto.
+ * MiniBrowser/win/Common.cpp:
+ (::ToggleMenuItem): Recognize new menu item and toggle the 'showTiledScrollingIndicator'
+ flag if needed.
+ * MiniBrowser/win/MiniBrowser.h: Update to use new IWebPreferencesPrivate3 class.
+
+2015-09-21 Brent Fulgham <bfulgham@apple.com>
+
</ins><span class="cx"> [Win] Use command-line argument to launch in regular or High DPI mode.
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=149417
</span><span class="cx">
</span></span></pre></div>
<a id="trunkToolsMiniBrowserMiniBrowservcxprojMiniBrowserLibrc"></a>
<div class="modfile"><h4>Modified: trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -105,6 +105,7 @@
</span><span class="cx"> MENUITEM "Enable WebKit Full Screen", IDM_WK_FULLSCREEN, CHECKED
</span><span class="cx"> MENUITEM SEPARATOR
</span><span class="cx"> MENUITEM "Show Compositing Borders", IDM_COMPOSITING_BORDERS
</span><ins>+ MENUITEM "Show Tiled Drawing indicator", IDM_DEBUG_INFO_LAYER
</ins><span class="cx"> MENUITEM SEPARATOR
</span><span class="cx"> MENUITEM "Show Caches Window", IDM_CACHES
</span><span class="cx"> MENUITEM "Show Layer Tree", IDM_SHOW_LAYER_TREE
</span></span></pre></div>
<a id="trunkToolsMiniBrowserMiniBrowservcxprojMiniBrowserLibResourceh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Tools/MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -53,6 +53,7 @@
</span><span class="cx"> #define IDM_ZOOM_IN 172
</span><span class="cx"> #define IDM_ZOOM_OUT 173
</span><span class="cx"> #define IDM_SHOW_LAYER_TREE 174
</span><ins>+#define IDM_DEBUG_INFO_LAYER 175
</ins><span class="cx"> #define IDC_EMPTY_URL_CACHE 1000
</span><span class="cx"> #define IDC_RETURN_FREE_MEMORY 1001
</span><span class="cx"> #define IDC_EMPTY_WEBCORE_CACHE 1002
</span></span></pre></div>
<a id="trunkToolsMiniBrowserwinCommoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/MiniBrowser/win/Common.cpp (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/MiniBrowser/win/Common.cpp        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Tools/MiniBrowser/win/Common.cpp        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -393,6 +393,9 @@
</span><span class="cx"> gMiniBrowser->privatePreferences()->setShowDebugBorders(newState);
</span><span class="cx"> gMiniBrowser->privatePreferences()->setShowRepaintCounter(newState);
</span><span class="cx"> break;
</span><ins>+ case IDM_DEBUG_INFO_LAYER:
+ gMiniBrowser->privatePreferences()->setShowTiledScrollingIndicator(newState);
+ break;
</ins><span class="cx"> case IDM_INVERT_COLORS:
</span><span class="cx"> gMiniBrowser->privatePreferences()->setShouldInvertColors(newState);
</span><span class="cx"> break;
</span></span></pre></div>
<a id="trunkToolsMiniBrowserwinMiniBrowserh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/MiniBrowser/win/MiniBrowser.h (190090 => 190091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/MiniBrowser/win/MiniBrowser.h        2015-09-22 00:05:17 UTC (rev 190090)
+++ trunk/Tools/MiniBrowser/win/MiniBrowser.h        2015-09-22 00:07:40 UTC (rev 190091)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebHistory, &__uuidof(IWebHistory)>> IWebHistoryPtr;
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebHistoryItem, &__uuidof(IWebHistoryItem)>> IWebHistoryItemPtr;
</span><span class="cx"> typedef _com_ptr_t<_com_IIID<IWebPreferences, &__uuidof(IWebPreferences)>> IWebPreferencesPtr;
</span><del>-typedef _com_ptr_t<_com_IIID<IWebPreferencesPrivate, &__uuidof(IWebPreferencesPrivate)>> IWebPreferencesPrivatePtr;
</del><ins>+typedef _com_ptr_t<_com_IIID<IWebPreferencesPrivate3, &__uuidof(IWebPreferencesPrivate3)>> IWebPreferencesPrivatePtr;
</ins><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></span></pre>
</div>
</div>
</body>
</html>