<!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>[184033] trunk/Tools</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/184033">184033</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2015-05-08 17:33:37 -0700 (Fri, 08 May 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[Content Extensions] Add simple tester that takes an extension and compiles it
https://bugs.webkit.org/show_bug.cgi?id=144781

Reviewed by Dan Bates.

* ContentExtensionTester: Added.
* ContentExtensionTester/Configurations: Added.
* ContentExtensionTester/Configurations/Base.xcconfig: Copied from Source/bmalloc/Configurations/Base.xcconfig.
* ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig: Copied from Source/bmalloc/Configurations/bmalloc.xcconfig.
* ContentExtensionTester/Configurations/DebugRelease.xcconfig: Copied from Source/bmalloc/Configurations/DebugRelease.xcconfig.
* ContentExtensionTester/ContentExtensionTester.xcodeproj: Added.
* ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj: Added.
* ContentExtensionTester/Makefile: Copied from Tools/TestWebKitAPI/Makefile.
* ContentExtensionTester/main.m: Added.
* Scripts/run-content-extension-tester: Copied from Tools/Scripts/run-webkit-tests.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Tools/ContentExtensionTester/</li>
<li>trunk/Tools/ContentExtensionTester/Configurations/</li>
<li><a href="#trunkToolsContentExtensionTesterConfigurationsBasexcconfig">trunk/Tools/ContentExtensionTester/Configurations/Base.xcconfig</a></li>
<li><a href="#trunkToolsContentExtensionTesterConfigurationsContentExtensionTesterxcconfig">trunk/Tools/ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig</a></li>
<li><a href="#trunkToolsContentExtensionTesterConfigurationsDebugReleasexcconfig">trunk/Tools/ContentExtensionTester/Configurations/DebugRelease.xcconfig</a></li>
<li>trunk/Tools/ContentExtensionTester/ContentExtensionTester.xcodeproj/</li>
<li><a href="#trunkToolsContentExtensionTesterContentExtensionTesterxcodeprojprojectpbxproj">trunk/Tools/ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkToolsContentExtensionTesterMakefile">trunk/Tools/ContentExtensionTester/Makefile</a></li>
<li><a href="#trunkToolsContentExtensionTestermainm">trunk/Tools/ContentExtensionTester/main.m</a></li>
<li><a href="#trunkToolsScriptsruncontentextensiontester">trunk/Tools/Scripts/run-content-extension-tester</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (184032 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-05-09 00:18:43 UTC (rev 184032)
+++ trunk/Tools/ChangeLog        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2015-05-07  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        [Content Extensions] Add simple tester that takes an extension and compiles it
+        https://bugs.webkit.org/show_bug.cgi?id=144781
+
+        Reviewed by Dan Bates.
+
+        * ContentExtensionTester: Added.
+        * ContentExtensionTester/Configurations: Added.
+        * ContentExtensionTester/Configurations/Base.xcconfig: Copied from Source/bmalloc/Configurations/Base.xcconfig.
+        * ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig: Copied from Source/bmalloc/Configurations/bmalloc.xcconfig.
+        * ContentExtensionTester/Configurations/DebugRelease.xcconfig: Copied from Source/bmalloc/Configurations/DebugRelease.xcconfig.
+        * ContentExtensionTester/ContentExtensionTester.xcodeproj: Added.
+        * ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj: Added.
+        * ContentExtensionTester/Makefile: Copied from Tools/TestWebKitAPI/Makefile.
+        * ContentExtensionTester/main.m: Added.
+        * Scripts/run-content-extension-tester: Copied from Tools/Scripts/run-webkit-tests.
+
</ins><span class="cx"> 2015-05-08  Alexey Proskuryakov  &lt;ap@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Build fix.
</span></span></pre></div>
<a id="trunkToolsContentExtensionTesterConfigurationsBasexcconfigfromrev183966trunkSourcebmallocConfigurationsBasexcconfig"></a>
<div class="copfile"><h4>Copied: trunk/Tools/ContentExtensionTester/Configurations/Base.xcconfig (from rev 183966, trunk/Source/bmalloc/Configurations/Base.xcconfig) (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ContentExtensionTester/Configurations/Base.xcconfig                                (rev 0)
+++ trunk/Tools/ContentExtensionTester/Configurations/Base.xcconfig        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,85 @@
</span><ins>+// Copyright (C) 2015 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+
+#include &quot;../../../../Internal/Configurations/HaveInternalSDK.xcconfig&quot;
+
+USE_INTERNAL_SDK = $(USE_INTERNAL_SDK_$(CONFIGURATION));
+USE_INTERNAL_SDK_Production = YES;
+USE_INTERNAL_SDK_Debug = $(HAVE_INTERNAL_SDK);
+USE_INTERNAL_SDK_Release = $(HAVE_INTERNAL_SDK);
+
+CLANG_CXX_LANGUAGE_STANDARD = gnu++0x;
+CLANG_CXX_LIBRARY = libc++;
+CLANG_WARN_BOOL_CONVERSION = YES;
+CLANG_WARN_CONSTANT_CONVERSION = YES;
+CLANG_WARN_CXX0X_EXTENSIONS = NO;
+CLANG_WARN_EMPTY_BODY = YES;
+CLANG_WARN_ENUM_CONVERSION = YES;
+CLANG_WARN_INT_CONVERSION = YES;
+CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+DEBUG_INFORMATION_FORMAT = dwarf-with-dsym;
+GCC_C_LANGUAGE_STANDARD = gnu99;
+GCC_DEBUGGING_SYMBOLS = default;
+GCC_ENABLE_CPP_EXCEPTIONS = NO;
+GCC_ENABLE_CPP_RTTI = NO;
+GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+GCC_ENABLE_SYMBOL_SEPARATION = NO;
+GCC_FAST_OBJC_DISPATCH = YES;
+GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+GCC_OBJC_CALL_CXX_CDTORS = YES;
+GCC_PRECOMPILE_PREFIX_HEADER = YES;
+GCC_PREPROCESSOR_DEFINITIONS = $(DEBUG_DEFINES) $(inherited);
+GCC_STRICT_ALIASING = YES;
+GCC_THREADSAFE_STATICS = NO;
+GCC_TREAT_WARNINGS_AS_ERRORS = YES;
+GCC_WARN_64_TO_32_BIT_CONVERSION_ = YES;
+GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+GCC_WARN_ABOUT_RETURN_TYPE = YES;
+GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
+GCC_WARN_SIGN_COMPARE = YES;
+GCC_WARN_UNDECLARED_SELECTOR = YES;
+GCC_WARN_UNINITIALIZED_AUTOS = YES;
+GCC_WARN_UNUSED_FUNCTION = YES;
+GCC_WARN_UNUSED_VARIABLE = YES;
+LINKER_DISPLAYS_MANGLED_NAMES = YES;
+WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough;
+
+TARGET_MAC_OS_X_VERSION_MAJOR = $(MAC_OS_X_VERSION_MAJOR);
+
+// DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL, STRIP_INSTALLED_PRODUCT and DEAD_CODE_STRIPPING vary between the debug and normal variants.
+// We set up the values for each variant here, and have the Debug configuration in the Xcode project use the _debug variant.
+DEBUG_DEFINES_debug = ;
+DEBUG_DEFINES_normal = NDEBUG;
+DEBUG_DEFINES = $(DEBUG_DEFINES_$(CURRENT_VARIANT));
+
+GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_$(CURRENT_VARIANT));
+GCC_OPTIMIZATION_LEVEL_normal = 3;
+GCC_OPTIMIZATION_LEVEL_debug = 0;
+
+SDKROOT = macosx.internal;
+
+OTHER_CFLAGS = $(ASAN_OTHER_CFLAGS);
+OTHER_CPLUSPLUSFLAGS = $(ASAN_OTHER_CPLUSPLUSFLAGS);
+OTHER_LDFLAGS = $(ASAN_OTHER_LDFLAGS);
</ins></span></pre></div>
<a id="trunkToolsContentExtensionTesterConfigurationsContentExtensionTesterxcconfigfromrev183966trunkSourcebmallocConfigurationsbmallocxcconfig"></a>
<div class="copfile"><h4>Copied: trunk/Tools/ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig (from rev 183966, trunk/Source/bmalloc/Configurations/bmalloc.xcconfig) (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig                                (rev 0)
+++ trunk/Tools/ContentExtensionTester/Configurations/ContentExtensionTester.xcconfig        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+// Copyright (C) 2015 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+
+PRODUCT_NAME = $(TARGET_NAME);
</ins></span></pre></div>
<a id="trunkToolsContentExtensionTesterConfigurationsDebugReleasexcconfigfromrev183966trunkSourcebmallocConfigurationsDebugReleasexcconfig"></a>
<div class="copfile"><h4>Copied: trunk/Tools/ContentExtensionTester/Configurations/DebugRelease.xcconfig (from rev 183966, trunk/Source/bmalloc/Configurations/DebugRelease.xcconfig) (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ContentExtensionTester/Configurations/DebugRelease.xcconfig                                (rev 0)
+++ trunk/Tools/ContentExtensionTester/Configurations/DebugRelease.xcconfig        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+// Copyright (C) 2015 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+//    notice, this list of conditions and the following disclaimer in the
+//    documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+
+#include &quot;Base.xcconfig&quot;
+
+ONLY_ACTIVE_ARCH = YES;
+
+MACOSX_DEPLOYMENT_TARGET = $(MACOSX_DEPLOYMENT_TARGET_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
+MACOSX_DEPLOYMENT_TARGET_macosx_1090 = 10.9;
+MACOSX_DEPLOYMENT_TARGET_macosx_101000 = 10.10;
+MACOSX_DEPLOYMENT_TARGET_macosx_101100 = 10.11;
+
+GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+DEBUG_INFORMATION_FORMAT = dwarf;
+
+SDKROOT[sdk=iphone*] = $(SDKROOT);
+SDKROOT = $(SDKROOT_$(PLATFORM_NAME)_$(USE_INTERNAL_SDK));
+SDKROOT_macosx_ = macosx;
+SDKROOT_macosx_YES = macosx.internal;
</ins></span></pre></div>
<a id="trunkToolsContentExtensionTesterContentExtensionTesterxcodeproj"></a>
<div class="propset"><h4>Property changes: trunk/Tools/ContentExtensionTester/ContentExtensionTester.xcodeproj</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnignore"></a>
<div class="addfile"><h4>Added: svn:ignore</h4></div>
<span class="cx">xcuserdata
</span><a id="trunkToolsContentExtensionTesterContentExtensionTesterxcodeprojprojectpbxproj"></a>
<div class="addfile"><h4>Added: trunk/Tools/ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj                                (rev 0)
+++ trunk/Tools/ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,200 @@
</span><ins>+// !$*UTF8*$!
+{
+        archiveVersion = 1;
+        classes = {
+        };
+        objectVersion = 46;
+        objects = {
+
+/* Begin PBXBuildFile section */
+                7C4AB3AC1AF02798003FC8D1 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C4AB3AB1AF02798003FC8D1 /* WebKit.framework */; };
+                7CB6844B1AFA7978002B305C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CB6844A1AFA7978002B305C /* main.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+                7C4AB39F1AF0276C003FC8D1 /* CopyFiles */ = {
+                        isa = PBXCopyFilesBuildPhase;
+                        buildActionMask = 2147483647;
+                        dstPath = /usr/share/man/man1/;
+                        dstSubfolderSpec = 0;
+                        files = (
+                        );
+                        runOnlyForDeploymentPostprocessing = 1;
+                };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+                7C2227511AFC4D9C008C3338 /* Base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C2227521AFC4D9C008C3338 /* ContentExtensionTester.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = ContentExtensionTester.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C2227531AFC4D9C008C3338 /* DebugRelease.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C4AB3A11AF0276C003FC8D1 /* ContentExtensionTester */ = {isa = PBXFileReference; explicitFileType = &quot;compiled.mach-o.executable&quot;; includeInIndex = 0; path = ContentExtensionTester; sourceTree = BUILT_PRODUCTS_DIR; };
+                7C4AB3AB1AF02798003FC8D1 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
+                7CB6844A1AFA7978002B305C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+                7C4AB39E1AF0276C003FC8D1 /* Frameworks */ = {
+                        isa = PBXFrameworksBuildPhase;
+                        buildActionMask = 2147483647;
+                        files = (
+                                7C4AB3AC1AF02798003FC8D1 /* WebKit.framework in Frameworks */,
+                        );
+                        runOnlyForDeploymentPostprocessing = 0;
+                };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+                7C2227501AFC4D0A008C3338 /* Configurations */ = {
+                        isa = PBXGroup;
+                        children = (
+                                7C2227511AFC4D9C008C3338 /* Base.xcconfig */,
+                                7C2227521AFC4D9C008C3338 /* ContentExtensionTester.xcconfig */,
+                                7C2227531AFC4D9C008C3338 /* DebugRelease.xcconfig */,
+                        );
+                        path = Configurations;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
+                7C4AB3981AF0276C003FC8D1 = {
+                        isa = PBXGroup;
+                        children = (
+                                7C4AB3AB1AF02798003FC8D1 /* WebKit.framework */,
+                                7C4AB3A31AF0276C003FC8D1 /* ContentExtensionTester */,
+                                7C2227501AFC4D0A008C3338 /* Configurations */,
+                                7C4AB3A21AF0276C003FC8D1 /* Products */,
+                        );
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
+                7C4AB3A21AF0276C003FC8D1 /* Products */ = {
+                        isa = PBXGroup;
+                        children = (
+                                7C4AB3A11AF0276C003FC8D1 /* ContentExtensionTester */,
+                        );
+                        name = Products;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
+                7C4AB3A31AF0276C003FC8D1 /* ContentExtensionTester */ = {
+                        isa = PBXGroup;
+                        children = (
+                                7CB6844A1AFA7978002B305C /* main.m */,
+                        );
+                        path = ContentExtensionTester;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+                7C4AB3A01AF0276C003FC8D1 /* ContentExtensionTester */ = {
+                        isa = PBXNativeTarget;
+                        buildConfigurationList = 7C4AB3A81AF0276C003FC8D1 /* Build configuration list for PBXNativeTarget &quot;ContentExtensionTester&quot; */;
+                        buildPhases = (
+                                7C4AB39D1AF0276C003FC8D1 /* Sources */,
+                                7C4AB39E1AF0276C003FC8D1 /* Frameworks */,
+                                7C4AB39F1AF0276C003FC8D1 /* CopyFiles */,
+                        );
+                        buildRules = (
+                        );
+                        dependencies = (
+                        );
+                        name = ContentExtensionTester;
+                        productName = ContentExtensionTester;
+                        productReference = 7C4AB3A11AF0276C003FC8D1 /* ContentExtensionTester */;
+                        productType = &quot;com.apple.product-type.tool&quot;;
+                };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+                7C4AB3991AF0276C003FC8D1 /* Project object */ = {
+                        isa = PBXProject;
+                        attributes = {
+                                LastUpgradeCheck = 0700;
+                                ORGANIZATIONNAME = &quot;Sam Weinig&quot;;
+                                TargetAttributes = {
+                                        7C4AB3A01AF0276C003FC8D1 = {
+                                                CreatedOnToolsVersion = 7.0;
+                                        };
+                                };
+                        };
+                        buildConfigurationList = 7C4AB39C1AF0276C003FC8D1 /* Build configuration list for PBXProject &quot;ContentExtensionTester&quot; */;
+                        compatibilityVersion = &quot;Xcode 3.2&quot;;
+                        developmentRegion = English;
+                        hasScannedForEncodings = 0;
+                        knownRegions = (
+                                en,
+                        );
+                        mainGroup = 7C4AB3981AF0276C003FC8D1;
+                        productRefGroup = 7C4AB3A21AF0276C003FC8D1 /* Products */;
+                        projectDirPath = &quot;&quot;;
+                        projectRoot = &quot;&quot;;
+                        targets = (
+                                7C4AB3A01AF0276C003FC8D1 /* ContentExtensionTester */,
+                        );
+                };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+                7C4AB39D1AF0276C003FC8D1 /* Sources */ = {
+                        isa = PBXSourcesBuildPhase;
+                        buildActionMask = 2147483647;
+                        files = (
+                                7CB6844B1AFA7978002B305C /* main.m in Sources */,
+                        );
+                        runOnlyForDeploymentPostprocessing = 0;
+                };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+                7C4AB3A61AF0276C003FC8D1 /* Debug */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 7C2227531AFC4D9C008C3338 /* DebugRelease.xcconfig */;
+                        buildSettings = {
+                                DEBUG_DEFINES = &quot;$(DEBUG_DEFINES_debug)&quot;;
+                                GCC_OPTIMIZATION_LEVEL = &quot;$(GCC_OPTIMIZATION_LEVEL_debug)&quot;;
+                        };
+                        name = Debug;
+                };
+                7C4AB3A71AF0276C003FC8D1 /* Release */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 7C2227531AFC4D9C008C3338 /* DebugRelease.xcconfig */;
+                        buildSettings = {
+                        };
+                        name = Release;
+                };
+                7C4AB3A91AF0276C003FC8D1 /* Debug */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 7C2227521AFC4D9C008C3338 /* ContentExtensionTester.xcconfig */;
+                        buildSettings = {
+                        };
+                        name = Debug;
+                };
+                7C4AB3AA1AF0276C003FC8D1 /* Release */ = {
+                        isa = XCBuildConfiguration;
+                        baseConfigurationReference = 7C2227521AFC4D9C008C3338 /* ContentExtensionTester.xcconfig */;
+                        buildSettings = {
+                        };
+                        name = Release;
+                };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+                7C4AB39C1AF0276C003FC8D1 /* Build configuration list for PBXProject &quot;ContentExtensionTester&quot; */ = {
+                        isa = XCConfigurationList;
+                        buildConfigurations = (
+                                7C4AB3A61AF0276C003FC8D1 /* Debug */,
+                                7C4AB3A71AF0276C003FC8D1 /* Release */,
+                        );
+                        defaultConfigurationIsVisible = 0;
+                        defaultConfigurationName = Release;
+                };
+                7C4AB3A81AF0276C003FC8D1 /* Build configuration list for PBXNativeTarget &quot;ContentExtensionTester&quot; */ = {
+                        isa = XCConfigurationList;
+                        buildConfigurations = (
+                                7C4AB3A91AF0276C003FC8D1 /* Debug */,
+                                7C4AB3AA1AF0276C003FC8D1 /* Release */,
+                        );
+                        defaultConfigurationIsVisible = 0;
+                        defaultConfigurationName = Release;
+                };
+/* End XCConfigurationList section */
+        };
+        rootObject = 7C4AB3991AF0276C003FC8D1 /* Project object */;
+}
</ins></span></pre></div>
<a id="trunkToolsContentExtensionTesterMakefilefromrev183966trunkToolsTestWebKitAPIMakefile"></a>
<div class="copfile"><h4>Copied: trunk/Tools/ContentExtensionTester/Makefile (from rev 183966, trunk/Tools/TestWebKitAPI/Makefile) (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ContentExtensionTester/Makefile                                (rev 0)
+++ trunk/Tools/ContentExtensionTester/Makefile        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+SCRIPTS_PATH = ../Scripts
+include ../../Makefile.shared
</ins></span></pre></div>
<a id="trunkToolsContentExtensionTestermainm"></a>
<div class="addfile"><h4>Added: trunk/Tools/ContentExtensionTester/main.m (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ContentExtensionTester/main.m                                (rev 0)
+++ trunk/Tools/ContentExtensionTester/main.m        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import &lt;Foundation/Foundation.h&gt;
+#import &lt;WebKit/_WKUserContentExtensionStorePrivate.h&gt;
+
+static void run(bool* done)
+{
+    while (!*done)
+        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantPast]];
+}
+
+int main(int argc, const char* argv[])
+{
+    @autoreleasepool {
+        if (argc &lt; 2) {
+            NSLog(@&quot;Not enough arguments.&quot;);
+            return -1;
+        }
+
+        [[_WKUserContentExtensionStore defaultStore] _removeAllContentExtensions];
+
+        NSString *path = [NSString stringWithUTF8String:argv[1]];
+        NSString *jsonString = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
+
+        __block bool doneCompiling = false;
+        [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:@&quot;TestExtension&quot; encodedContentExtension:jsonString completionHandler:^(_WKUserContentFilter *filter __attribute__((unused)), NSError *error) {
+            if (error)
+                printf(&quot;Failed to compile extension at %s with error %s&quot;, path.UTF8String , error.description.UTF8String);
+            else
+                printf(&quot;Succeeded in compiling extension at %s&quot;, path.UTF8String);
+
+            doneCompiling = true;
+        }];
+
+        run(&amp;doneCompiling);
+    }
+
+    return 0;
+}
</ins></span></pre></div>
<a id="trunkToolsScriptsruncontentextensiontesterfromrev183966trunkToolsScriptsrunwebkittests"></a>
<div class="copfile"><h4>Copied: trunk/Tools/Scripts/run-content-extension-tester (from rev 183966, trunk/Tools/Scripts/run-webkit-tests) (0 => 184033)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/run-content-extension-tester                                (rev 0)
+++ trunk/Tools/Scripts/run-content-extension-tester        2015-05-09 00:33:37 UTC (rev 184033)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+#!/usr/bin/perl -w
+
+# Copyright (C) 2015 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+use strict;
+use FindBin;
+use lib $FindBin::Bin;
+use webkitdirs;
+
+printHelpAndExitForRunAndDebugWebKitAppIfNeeded();
+
+setConfiguration();
+
+if (!isAppleMacWebKit()) {
+    exit 1;
+}
+
+exit exitStatus(runMacWebKitApp(File::Spec-&gt;catfile(productDir(), &quot;ContentExtensionTester&quot;)));
</ins></span></pre>
</div>
</div>

</body>
</html>