summaryrefslogtreecommitdiff
path: root/Tools/Scripts/webkitperl
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitperl')
-rw-r--r--Tools/Scripts/webkitperl/FeatureList.pm189
-rw-r--r--Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl36
-rw-r--r--Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiffWithMockFiles.pl181
-rw-r--r--Tools/Scripts/webkitperl/VCSUtils_unittest/parseGitDiffHeader.pl228
-rw-r--r--Tools/Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl120
-rw-r--r--Tools/Scripts/webkitperl/httpd.pm18
-rw-r--r--Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests-expected.txt135
7 files changed, 645 insertions, 262 deletions
diff --git a/Tools/Scripts/webkitperl/FeatureList.pm b/Tools/Scripts/webkitperl/FeatureList.pm
index c104d1f31..0e39102ed 100644
--- a/Tools/Scripts/webkitperl/FeatureList.pm
+++ b/Tools/Scripts/webkitperl/FeatureList.pm
@@ -44,35 +44,42 @@ BEGIN {
my (
$threeDRenderingSupport,
$accelerated2DCanvasSupport,
- $animationAPISupport,
$batteryStatusSupport,
$blobSupport,
+ $canvasPathSupport,
+ $canvasProxySupport,
$channelMessagingSupport,
$cspNextSupport,
- $css3BackgroundSupport,
$css3ConditionalRulesSupport,
$css3TextSupport,
+ $css3TextLineBreakSupport,
+ $css4ImagesSupport,
$cssBoxDecorationBreakSupport,
$cssDeviceAdaptation,
$cssExclusionsSupport,
$cssFiltersSupport,
- $cssHierarchiesSupport,
$cssImageOrientationSupport,
$cssImageResolutionSupport,
+ $cssImageSetSupport,
$cssRegionsSupport,
$cssShadersSupport,
+ $cssShapesSupport,
+ $cssStickyPositionSupport,
$cssCompositingSupport,
+ $cssAnimationsTransformsUnprefixedSupport,
$cssVariablesSupport,
$customSchemeHandlerSupport,
$dataTransferItemsSupport,
- $datalistSupport,
- $detailsSupport,
+ $datalistElementSupport,
+ $detailsElementSupport,
$deviceOrientationSupport,
$dialogElementSupport,
$directoryUploadSupport,
+ $dom4EventsConstructor,
$downloadAttributeSupport,
$fileSystemSupport,
$filtersSupport,
+ $fontLoadEventsSupport,
$ftpDirSupport,
$fullscreenAPISupport,
$gamepadSupport,
@@ -80,7 +87,6 @@ my (
$highDPICanvasSupport,
$icondatabaseSupport,
$iframeSeamlessSupport,
- $imageResizerSupport,
$indexedDatabaseSupport,
$inputSpeechSupport,
$inputTypeColorSupport,
@@ -102,72 +108,79 @@ my (
$mediaSourceSupport,
$mediaStatisticsSupport,
$mediaStreamSupport,
- $meterTagSupport,
+ $meterElementSupport,
$mhtmlSupport,
$microdataSupport,
- $mutationObserversSupport,
+ $mouseCursorScaleSupport,
$netscapePluginAPISupport,
$networkInfoSupport,
+ $nosniffSupport,
$notificationsSupport,
$orientationEventsSupport,
$pageVisibilityAPISupport,
- $progressTagSupport,
+ $performanceTimelineSupport,
+ $progressElementSupport,
$proximityEventsSupport,
$quotaSupport,
$resolutionMediaQuerySupport,
$registerProtocolHandlerSupport,
$requestAnimationFrameSupport,
+ $resourceTimingSupport,
$scriptedSpeechSupport,
+ $seccompFiltersSupport,
$shadowDOMSupport,
$sharedWorkersSupport,
$sqlDatabaseSupport,
$styleScopedSupport,
+ $suidLinuxSandbox,
$svgDOMObjCBindingsSupport,
$svgFontsSupport,
$svgSupport,
$systemMallocSupport,
- $templateTagSupport,
+ $templateElementSupport,
$textAutosizingSupport,
$tiledBackingStoreSupport,
+ $threadedHTMLParserSupport,
$touchEventsSupport,
$touchSliderSupport,
$touchIconLoadingSupport,
+ $userTimingSupport,
$vibrationSupport,
$videoSupport,
$videoTrackSupport,
$webglSupport,
$webAudioSupport,
- $webIntentsSupport,
- $webIntentsTagSupport,
$webSocketsSupport,
$webTimingSupport,
$workersSupport,
- $xhrResponseBlobSupport,
$xhrTimeoutSupport,
$xsltSupport,
);
my @features = (
{ option => "3d-rendering", desc => "Toggle 3D Rendering support",
- define => "ENABLE_3D_RENDERING", default => (isAppleMacWebKit() || isQt()), value => \$threeDRenderingSupport },
+ define => "ENABLE_3D_RENDERING", default => (isAppleMacWebKit() || isGtk() || isEfl()), value => \$threeDRenderingSupport },
{ option => "accelerated-2d-canvas", desc => "Toggle Accelerated 2D Canvas support",
define => "ENABLE_ACCELERATED_2D_CANVAS", default => 0, value => \$accelerated2DCanvasSupport },
- { option => "animation-api", desc => "Toggle Animation API support",
- define => "ENABLE_ANIMATION_API", default => (isBlackBerry() || isEfl()), value => \$animationAPISupport },
-
{ option => "battery-status", desc => "Toggle Battery Status support",
define => "ENABLE_BATTERY_STATUS", default => (isEfl() || isBlackBerry()), value => \$batteryStatusSupport },
{ option => "blob", desc => "Toggle Blob support",
- define => "ENABLE_BLOB", default => (isAppleMacWebKit() || isGtk() || isChromium() || isBlackBerry() || isEfl()), value => \$blobSupport },
+ define => "ENABLE_BLOB", default => (isAppleMacWebKit() || isGtk() || isBlackBerry() || isEfl()), value => \$blobSupport },
+
+ { option => "canvas-path", desc => "Toggle Canvas Path support",
+ define => "ENABLE_CANVAS_PATH", default => 1, value => \$canvasPathSupport },
+
+ { option => "canvas-proxy", desc => "Toggle CanvasProxy support",
+ define => "ENABLE_CANVAS_PROXY", default => 0, value => \$canvasProxySupport },
{ option => "channel-messaging", desc => "Toggle Channel Messaging support",
define => "ENABLE_CHANNEL_MESSAGING", default => 1, value => \$channelMessagingSupport },
{ option => "csp-next", desc => "Toggle Content Security Policy 1.1 support",
- define => "ENABLE_CSP_NEXT", default => 0, value => \$cspNextSupport },
+ define => "ENABLE_CSP_NEXT", default => isGtk(), value => \$cspNextSupport },
{ option => "css-device-adaptation", desc => "Toggle CSS Device Adaptation support",
define => "ENABLE_CSS_DEVICE_ADAPTATION", default => isEfl(), value => \$cssDeviceAdaptation },
@@ -175,26 +188,32 @@ my @features = (
{ option => "css-exclusions", desc => "Toggle CSS Exclusions support",
define => "ENABLE_CSS_EXCLUSIONS", default => 1, value => \$cssExclusionsSupport },
+ { option => "css-shapes", desc => "Toggle CSS Shapes support",
+ define => "ENABLE_CSS_SHAPES", default => 1, value => \$cssShapesSupport },
+
{ option => "css-filters", desc => "Toggle CSS Filters support",
define => "ENABLE_CSS_FILTERS", default => isAppleWebKit() || isBlackBerry(), value => \$cssFiltersSupport },
- { option => "css3-background", desc => "Toggle CSS3 Background support",
- define => "ENABLE_CSS3_BACKGROUND", default => 0, value => \$css3BackgroundSupport },
-
{ option => "css3-conditional-rules", desc => "Toggle CSS3 Conditional Rules support (i.e. \@supports)",
define => "ENABLE_CSS3_CONDITIONAL_RULES", default => 0, value => \$css3ConditionalRulesSupport },
{ option => "css3-text", desc => "Toggle CSS3 Text support",
- define => "ENABLE_CSS3_TEXT", default => isEfl(), value => \$css3TextSupport },
+ define => "ENABLE_CSS3_TEXT", default => (isEfl() || isGtk()), value => \$css3TextSupport },
+
+ { option => "css3-text-line-break", desc => "Toggle CSS3 Text Line Break support",
+ define => "ENABLE_CSS3_TEXT_LINE_BREAK", default => 0, value => \$css3TextLineBreakSupport },
{ option => "css-box-decoration-break", desc => "Toggle CSS box-decoration-break support",
define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport },
{ option => "css-image-orientation", desc => "Toggle CSS image-orientation support",
- define => "ENABLE_CSS_IMAGE_ORIENTATION", default => 0, value => \$cssImageOrientationSupport },
+ define => "ENABLE_CSS_IMAGE_ORIENTATION", default => isGtk(), value => \$cssImageOrientationSupport },
{ option => "css-image-resolution", desc => "Toggle CSS image-resolution support",
- define => "ENABLE_CSS_IMAGE_RESOLUTION", default => 0, value => \$cssImageResolutionSupport },
+ define => "ENABLE_CSS_IMAGE_RESOLUTION", default => (isBlackBerry() || isGtk()), value => \$cssImageResolutionSupport },
+
+ { option => "css-image-set", desc => "Toggle CSS image-set support",
+ define => "ENABLE_CSS_IMAGE_SET", default => (isEfl() || isGtk()), value => \$cssImageSetSupport },
{ option => "css-regions", desc => "Toggle CSS Regions support",
define => "ENABLE_CSS_REGIONS", default => 1, value => \$cssRegionsSupport },
@@ -202,33 +221,42 @@ my @features = (
{ option => "css-shaders", desc => "Toggle CSS Shaders support",
define => "ENABLE_CSS_SHADERS", default => isAppleMacWebKit(), value => \$cssShadersSupport },
+ { option => "css-sticky-position", desc => "Toggle CSS sticky position support",
+ define => "ENABLE_CSS_STICKY_POSITION", default => (isGtk() || isEfl()), value => \$cssStickyPositionSupport },
+
{ option => "css-compositing", desc => "Toggle CSS Compositing support",
define => "ENABLE_CSS_COMPOSITING", default => isAppleWebKit(), value => \$cssCompositingSupport },
+ { option => "css-transforms-animations-unprefixed", desc => "Toggle support for unprefixed CSS animations and transforms",
+ define => "ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED", default => 1, value => \$cssAnimationsTransformsUnprefixedSupport },
+
{ option => "css-variables", desc => "Toggle CSS Variable support",
- define => "ENABLE_CSS_VARIABLES", default => (isBlackBerry() || isEfl()), value => \$cssVariablesSupport },
+ define => "ENABLE_CSS_VARIABLES", default => (isBlackBerry() || isEfl() || isGtk()), value => \$cssVariablesSupport },
{ option => "custom-scheme-handler", desc => "Toggle Custom Scheme Handler support",
define => "ENABLE_CUSTOM_SCHEME_HANDLER", default => (isBlackBerry() || isEfl()), value => \$customSchemeHandlerSupport },
- { option => "datalist", desc => "Toggle Datalist support",
- define => "ENABLE_DATALIST_ELEMENT", default => isEfl(), value => \$datalistSupport },
+ { option => "datalist-element", desc => "Toggle Datalist Element support",
+ define => "ENABLE_DATALIST_ELEMENT", default => isEfl(), value => \$datalistElementSupport },
{ option => "data-transfer-items", desc => "Toggle Data Transfer Items support",
define => "ENABLE_DATA_TRANSFER_ITEMS", default => 0, value => \$dataTransferItemsSupport },
- { option => "details", desc => "Toggle Details support",
- define => "ENABLE_DETAILS_ELEMENT", default => 1, value => \$detailsSupport },
+ { option => "details-element", desc => "Toggle Details Element support",
+ define => "ENABLE_DETAILS_ELEMENT", default => 1, value => \$detailsElementSupport },
{ option => "device-orientation", desc => "Toggle Device Orientation support",
define => "ENABLE_DEVICE_ORIENTATION", default => isBlackBerry(), value => \$deviceOrientationSupport },
- { option => "dialog", desc => "Toggle Dialog Element support",
+ { option => "dialog-element", desc => "Toggle Dialog Element support",
define => "ENABLE_DIALOG_ELEMENT", default => 0, value => \$dialogElementSupport },
{ option => "directory-upload", desc => "Toggle Directory Upload support",
define => "ENABLE_DIRECTORY_UPLOAD", default => 0, value => \$directoryUploadSupport },
+ { option => "dom4-events-constructor", desc => "Expose DOM4 Events constructors",
+ define => "ENABLE_DOM4_EVENTS_CONSTRUCTOR", default => (isAppleWebKit() || isGtk() || isEfl()), value => \$dom4EventsConstructor },
+
{ option => "download-attribute", desc => "Toggle Download Attribute support",
define => "ENABLE_DOWNLOAD_ATTRIBUTE", default => (isBlackBerry() || isEfl()), value => \$downloadAttributeSupport },
@@ -236,16 +264,19 @@ my @features = (
define => "ENABLE_FILE_SYSTEM", default => isBlackBerry(), value => \$fileSystemSupport },
{ option => "filters", desc => "Toggle Filters support",
- define => "ENABLE_FILTERS", default => (isAppleWebKit() || isGtk() || isQt() || isEfl() || isBlackBerry()), value => \$filtersSupport },
+ define => "ENABLE_FILTERS", default => (isAppleWebKit() || isGtk() || isEfl() || isBlackBerry()), value => \$filtersSupport },
+
+ { option => "font-load-events", desc => "Toggle Font Load Events support",
+ define => "ENABLE_FONT_LOAD_EVENTS", default => 0, value => \$fontLoadEventsSupport },
{ option => "ftpdir", desc => "Toggle FTP Directory support",
define => "ENABLE_FTPDIR", default => !isWinCE(), value => \$ftpDirSupport },
{ option => "fullscreen-api", desc => "Toggle Fullscreen API support",
- define => "ENABLE_FULLSCREEN_API", default => (isAppleMacWebKit() || isEfl() || isGtk() || isBlackBerry() || isQt()), value => \$fullscreenAPISupport },
+ define => "ENABLE_FULLSCREEN_API", default => (isAppleMacWebKit() || isEfl() || isGtk() || isBlackBerry()), value => \$fullscreenAPISupport },
{ option => "gamepad", desc => "Toggle Gamepad support",
- define => "ENABLE_GAMEPAD", default => (isEfl() || isGtk() || isQt()), value => \$gamepadSupport },
+ define => "ENABLE_GAMEPAD", default => (isEfl() || isGtk()), value => \$gamepadSupport },
{ option => "geolocation", desc => "Toggle Geolocation support",
define => "ENABLE_GEOLOCATION", default => (isAppleWebKit() || isGtk() || isBlackBerry()), value => \$geolocationSupport },
@@ -260,19 +291,19 @@ my @features = (
define => "ENABLE_IFRAME_SEAMLESS", default => 1, value => \$iframeSeamlessSupport },
{ option => "indexed-database", desc => "Toggle Indexed Database support",
- define => "ENABLE_INDEXED_DATABASE", default => 0, value => \$indexedDatabaseSupport },
+ define => "ENABLE_INDEXED_DATABASE", default => (isGtk() || isEfl()), value => \$indexedDatabaseSupport },
{ option => "input-speech", desc => "Toggle Input Speech support",
define => "ENABLE_INPUT_SPEECH", default => 0, value => \$inputSpeechSupport },
{ option => "input-type-color", desc => "Toggle Input Type Color support",
- define => "ENABLE_INPUT_TYPE_COLOR", default => (isBlackBerry() || isEfl() || isQt()), value => \$inputTypeColorSupport },
+ define => "ENABLE_INPUT_TYPE_COLOR", default => (isBlackBerry() || isEfl()), value => \$inputTypeColorSupport },
{ option => "input-type-date", desc => "Toggle Input Type Date support",
define => "ENABLE_INPUT_TYPE_DATE", default => 0, value => \$inputTypeDateSupport },
- { option => "input-type-datetime", desc => "Toggle Input Type Datetime support",
- define => "ENABLE_INPUT_TYPE_DATETIME", default => 0, value => \$inputTypeDatetimeSupport },
+ { option => "input-type-datetime", desc => "Toggle broken Input Type Datetime support",
+ define => "ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE", default => 0, value => \$inputTypeDatetimeSupport },
{ option => "input-type-datetimelocal", desc => "Toggle Input Type Datetimelocal support",
define => "ENABLE_INPUT_TYPE_DATETIMELOCAL", default => 0, value => \$inputTypeDatetimelocalSupport },
@@ -296,7 +327,7 @@ my @features = (
define => "ENABLE_LEGACY_NOTIFICATIONS", default => isBlackBerry(), value => \$legacyNotificationsSupport },
{ option => "legacy-vendor-prefixes", desc => "Toggle Legacy Vendor Prefix support",
- define => "ENABLE_LEGACY_VENDOR_PREFIXES", default => !isChromium(), value => \$legacyVendorPrefixSupport },
+ define => "ENABLE_LEGACY_VENDOR_PREFIXES", default => 1, value => \$legacyVendorPrefixSupport },
{ option => "legacy-web-audio", desc => "Toggle Legacy Web Audio support",
define => "ENABLE_LEGACY_WEB_AUDIO", default => 1, value => \$legacyWebAudioSupport },
@@ -304,11 +335,8 @@ my @features = (
{ option => "link-prefetch", desc => "Toggle Link Prefetch support",
define => "ENABLE_LINK_PREFETCH", default => (isGtk() || isEfl()), value => \$linkPrefetchSupport },
- { option => "link-prerender", desc => "Toggle Link Prerender support",
- define => "ENABLE_LINK_PRERENDER", default => 0, value => \$linkPrerenderSupport },
-
{ option => "mathml", desc => "Toggle MathML support",
- define => "ENABLE_MATHML", default => 1, value => \$mathmlSupport },
+ define => "ENABLE_MATHML", default => !isBlackBerry(), value => \$mathmlSupport },
{ option => "media-capture", desc => "Toggle Media Capture support",
define => "ENABLE_MEDIA_CAPTURE", default => isEfl(), value => \$mediaCaptureSupport },
@@ -320,19 +348,19 @@ my @features = (
define => "ENABLE_MEDIA_STATISTICS", default => 0, value => \$mediaStatisticsSupport },
{ option => "media-stream", desc => "Toggle Media Stream support",
- define => "ENABLE_MEDIA_STREAM", default => (isChromium() || isGtk() || isBlackBerry()), value => \$mediaStreamSupport },
+ define => "ENABLE_MEDIA_STREAM", default => isBlackBerry(), value => \$mediaStreamSupport },
- { option => "meter-tag", desc => "Toggle Meter Tag support",
- define => "ENABLE_METER_ELEMENT", default => !isAppleWinWebKit(), value => \$meterTagSupport },
+ { option => "meter-element", desc => "Toggle Meter Element support",
+ define => "ENABLE_METER_ELEMENT", default => !isAppleWinWebKit(), value => \$meterElementSupport },
{ option => "mhtml", desc => "Toggle MHTML support",
- define => "ENABLE_MHTML", default => isGtk(), value => \$mhtmlSupport },
+ define => "ENABLE_MHTML", default => (isGtk() || isEfl()), value => \$mhtmlSupport },
{ option => "microdata", desc => "Toggle Microdata support",
- define => "ENABLE_MICRODATA", default => (isEfl() || isBlackBerry()), value => \$microdataSupport },
+ define => "ENABLE_MICRODATA", default => (isEfl() || isBlackBerry() || isGtk()), value => \$microdataSupport },
- { option => "mutation-observers", desc => "Toggle Mutation Observers support",
- define => "ENABLE_MUTATION_OBSERVERS", default => 1, value => \$mutationObserversSupport },
+ { option => "mouse-cursor-scale", desc => "Toggle Scaled mouse cursor support",
+ define => "ENABLE_MOUSE_CURSOR_SCALE", default => isEfl(), value => \$mouseCursorScaleSupport },
{ option => "navigator-content-utils", desc => "Toggle Navigator Content Utils support",
define => "ENABLE_NAVIGATOR_CONTENT_UTILS", default => (isBlackBerry() || isEfl()), value => \$registerProtocolHandlerSupport },
@@ -343,6 +371,9 @@ my @features = (
{ option => "network-info", desc => "Toggle Network Info support",
define => "ENABLE_NETWORK_INFO", default => (isEfl() || isBlackBerry()), value => \$networkInfoSupport },
+ { option => "nosniff", desc => "Toggle support for 'X-Content-Type-Options: nosniff'",
+ define => "ENABLE_NOSNIFF", default => 0, value => \$nosniffSupport },
+
{ option => "notifications", desc => "Toggle Notifications support",
define => "ENABLE_NOTIFICATIONS", default => isBlackBerry(), value => \$notificationsSupport },
@@ -350,10 +381,13 @@ my @features = (
define => "ENABLE_ORIENTATION_EVENTS", default => isBlackBerry(), value => \$orientationEventsSupport },
{ option => "page-visibility-api", desc => "Toggle Page Visibility API support",
- define => "ENABLE_PAGE_VISIBILITY_API", default => (isBlackBerry() || isEfl()), value => \$pageVisibilityAPISupport },
+ define => "ENABLE_PAGE_VISIBILITY_API", default => (isBlackBerry() || isEfl() || isGtk()), value => \$pageVisibilityAPISupport },
+
+ { option => "performance-timeline", desc => "Toggle Performance Timeline support",
+ define => "ENABLE_PERFORMANCE_TIMELINE", default => isGtk(), value => \$performanceTimelineSupport },
- { option => "progress-tag", desc => "Toggle Progress Tag support",
- define => "ENABLE_PROGRESS_ELEMENT", default => 1, value => \$progressTagSupport },
+ { option => "progress-element", desc => "Toggle Progress Element support",
+ define => "ENABLE_PROGRESS_ELEMENT", default => 1, value => \$progressElementSupport },
{ option => "proximity-events", desc => "Toggle Proximity Events support",
define => "ENABLE_PROXIMITY_EVENTS", default => 0, value => \$proximityEventsSupport },
@@ -362,16 +396,22 @@ my @features = (
define => "ENABLE_QUOTA", default => 0, value => \$quotaSupport },
{ option => "resolution-media-query", desc => "Toggle resolution media query support",
- define => "ENABLE_RESOLUTION_MEDIA_QUERY", default => (isEfl() || isQt()), value => \$resolutionMediaQuerySupport },
+ define => "ENABLE_RESOLUTION_MEDIA_QUERY", default => isEfl(), value => \$resolutionMediaQuerySupport },
+
+ { option => "resource-timing", desc => "Toggle Resource Timing support",
+ define => "ENABLE_RESOURCE_TIMING", default => isGtk(), value => \$resourceTimingSupport },
{ option => "request-animation-frame", desc => "Toggle Request Animation Frame support",
define => "ENABLE_REQUEST_ANIMATION_FRAME", default => (isAppleMacWebKit() || isGtk() || isEfl() || isBlackBerry()), value => \$requestAnimationFrameSupport },
+ { option => "seccomp-filters", desc => "Toggle Seccomp Filter sandbox",
+ define => "ENABLE_SECCOMP_FILTERS", default => 0, value => \$seccompFiltersSupport },
+
{ option => "scripted-speech", desc => "Toggle Scripted Speech support",
define => "ENABLE_SCRIPTED_SPEECH", default => 0, value => \$scriptedSpeechSupport },
{ option => "shadow-dom", desc => "Toggle Shadow DOM support",
- define => "ENABLE_SHADOW_DOM", default => (isGtk() || isEfl()), value => \$shadowDOMSupport },
+ define => "ENABLE_SHADOW_DOM", default => 0, value => \$shadowDOMSupport },
{ option => "shared-workers", desc => "Toggle Shared Workers support",
define => "ENABLE_SHARED_WORKERS", default => (isAppleWebKit() || isGtk() || isBlackBerry() || isEfl()), value => \$sharedWorkersSupport },
@@ -380,31 +420,34 @@ my @features = (
define => "ENABLE_SQL_DATABASE", default => 1, value => \$sqlDatabaseSupport },
{ option => "style-scoped", desc => "Toggle Style Scoped support",
- define => "ENABLE_STYLE_SCOPED", default => isBlackBerry(), value => \$styleScopedSupport },
+ define => "ENABLE_STYLE_SCOPED", default => (isBlackBerry() || isGtk()), value => \$styleScopedSupport },
+
+ { option => "suid-linux-sandbox", desc => "Toggle suid sandbox for linux",
+ define => "ENABLE_SUID_SANDBOX_LINUX", default => 0, value => \$suidLinuxSandbox },
{ option => "svg", desc => "Toggle SVG support",
define => "ENABLE_SVG", default => 1, value => \$svgSupport },
- { option => "svg-dom-objc-bindings", desc => "Toggle SVG DOM ObjC Bindings support",
- define => "ENABLE_SVG_DOM_OBJC_BINDINGS", default => isAppleMacWebKit(), value => \$svgDOMObjCBindingsSupport },
-
{ option => "svg-fonts", desc => "Toggle SVG Fonts support",
define => "ENABLE_SVG_FONTS", default => 1, value => \$svgFontsSupport },
{ option => "system-malloc", desc => "Toggle system allocator instead of TCmalloc",
- define => "USE_SYSTEM_MALLOC", default => isWinCE(), value => \$systemMallocSupport },
+ define => "USE_SYSTEM_MALLOC", default => (isBlackBerry() || isWinCE()), value => \$systemMallocSupport },
- { option => "template-tag", desc => "Toggle Templates Tag support",
- define => "ENABLE_TEMPLATE_ELEMENT", default => !isAppleWinWebKit(), value => \$templateTagSupport },
+ { option => "template-element", desc => "Toggle HTMLTemplateElement support",
+ define => "ENABLE_TEMPLATE_ELEMENT", default => (isEfl() || isGtk()), value => \$templateElementSupport },
{ option => "text-autosizing", desc => "Toggle Text Autosizing support",
- define => "ENABLE_TEXT_AUTOSIZING", default => 0, value => \$textAutosizingSupport },
+ define => "ENABLE_TEXT_AUTOSIZING", default => isBlackBerry(), value => \$textAutosizingSupport },
{ option => "tiled-backing-store", desc => "Toggle Tiled Backing Store support",
- define => "WTF_USE_TILED_BACKING_STORE", default => (isQt() || isEfl()), value => \$tiledBackingStoreSupport },
+ define => "WTF_USE_TILED_BACKING_STORE", default => isEfl(), value => \$tiledBackingStoreSupport },
+
+ { option => "threaded-html-parser", desc => "Toggle threaded HTML parser support",
+ define => "ENABLE_THREADED_HTML_PARSER", default => 0, value => \$threadedHTMLParserSupport },
{ option => "touch-events", desc => "Toggle Touch Events support",
- define => "ENABLE_TOUCH_EVENTS", default => (isQt() || isBlackBerry() || isEfl()), value => \$touchEventsSupport },
+ define => "ENABLE_TOUCH_EVENTS", default => (isBlackBerry() || isEfl()), value => \$touchEventsSupport },
{ option => "touch-slider", desc => "Toggle Touch Slider support",
define => "ENABLE_TOUCH_SLIDER", default => isBlackBerry(), value => \$touchSliderSupport },
@@ -412,6 +455,9 @@ my @features = (
{ option => "touch-icon-loading", desc => "Toggle Touch Icon Loading Support",
define => "ENABLE_TOUCH_ICON_LOADING", default => 0, value => \$touchIconLoadingSupport },
+ { option => "user-timing", desc => "Toggle User Timing support",
+ define => "ENABLE_USER_TIMING", default => isGtk(), value => \$userTimingSupport },
+
{ option => "vibration", desc => "Toggle Vibration support",
define => "ENABLE_VIBRATION", default => (isEfl() || isBlackBerry()), value => \$vibrationSupport },
@@ -422,16 +468,10 @@ my @features = (
define => "ENABLE_VIDEO_TRACK", default => (isAppleWebKit() || isGtk() || isEfl() || isBlackBerry()), value => \$videoTrackSupport },
{ option => "webgl", desc => "Toggle WebGL support",
- define => "ENABLE_WEBGL", default => (isAppleMacWebKit() || isGtk()), value => \$webglSupport },
+ define => "ENABLE_WEBGL", default => (isAppleMacWebKit() || isGtk() || isEfl()), value => \$webglSupport },
{ option => "web-audio", desc => "Toggle Web Audio support",
- define => "ENABLE_WEB_AUDIO", default => 0, value => \$webAudioSupport },
-
- { option => "web-intents", desc => "Toggle Web Intents support",
- define => "ENABLE_WEB_INTENTS", default => isEfl(), value => \$webIntentsSupport },
-
- { option => "web-intents-tag", desc => "Toggle Web Intents Tag support",
- define => "ENABLE_WEB_INTENTS_TAG", default => isEfl(), value => \$webIntentsTagSupport },
+ define => "ENABLE_WEB_AUDIO", default => (isEfl() || isGtk()), value => \$webAudioSupport },
{ option => "web-sockets", desc => "Toggle Web Sockets support",
define => "ENABLE_WEB_SOCKETS", default => 1, value => \$webSocketsSupport },
@@ -442,9 +482,6 @@ my @features = (
{ option => "workers", desc => "Toggle Workers support",
define => "ENABLE_WORKERS", default => (isAppleWebKit() || isGtk() || isBlackBerry() || isEfl()), value => \$workersSupport },
- { option => "xhr-response-blob", desc => "Toggle XHR Response BLOB support",
- define => "ENABLE_XHR_RESPONSE_BLOB", default => isBlackBerry(), value => \$xhrResponseBlobSupport },
-
{ option => "xhr-timeout", desc => "Toggle XHR Timeout support",
define => "ENABLE_XHR_TIMEOUT", default => (isEfl() || isGtk() || isAppleMacWebKit()), value => \$xhrTimeoutSupport },
diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl
index d4165620b..5b30fcbb8 100644
--- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl
+++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl
@@ -980,11 +980,11 @@ index f5d5e74..3b6aa92 100644
END
expectedReturn => [
[{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: Makefile
index f5d5e74..3b6aa92 100644
---- Makefile
-+++ Makefile
+--- Makefile\t(revision 0)
++++ Makefile\t(working copy)
@@ -1,1 +1,1 @@ public:
END
indexPath => "Makefile",
@@ -1008,11 +1008,11 @@ index 863339f..db418b2 100644
END
expectedReturn => [
[{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo
index 863339f..db418b2 100644
---- foo
-+++ foo
+--- foo\t(revision 0)
++++ foo\t(working copy)
@@ -1 +1,2 @@
Passed
+
@@ -1039,12 +1039,12 @@ index d45dd40..3494526 100644
END
expectedReturn => [
[{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo.h
new file mode 100644
index 0000000..3c9f114
---- foo.h
-+++ foo.h
+--- foo.h\t(revision 0)
++++ foo.h\t(working copy)
@@ -0,0 +1,34 @@
+<html>
END
@@ -1071,12 +1071,12 @@ index d45dd40..3494526 100644
END
expectedReturn => [
[{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo
deleted file mode 100644
index 1e50d1d..0000000
---- foo
-+++ foo
+--- foo\t(revision 0)
++++ foo\t(working copy)
@@ -1,1 +0,0 @@
-line1
END
@@ -1103,11 +1103,11 @@ Index: Makefile_new
END
expectedReturn => [
[{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: Makefile
index f5d5e74..3b6aa92 100644
---- Makefile
-+++ Makefile
+--- Makefile\t(revision 0)
++++ Makefile\t(working copy)
@@ -1,1 +1,1 @@ public:
Index: Makefile_new
===================================================================
@@ -1199,14 +1199,14 @@ END
indexPath => "foo_new",
isGit => 1,
numTextChunks => 1,
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo_new
similarity index 99%
rename from foo
rename to foo_new
index 1e50d1d..1459d21 100644
---- foo_new
-+++ foo_new
+--- foo_new\t(revision 0)
++++ foo_new\t(working copy)
@@ -15,3 +15,4 @@ release r deployment dep deploy:
line1
line2
diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiffWithMockFiles.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiffWithMockFiles.pl
index ee9fff903..2b1d1a201 100644
--- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiffWithMockFiles.pl
+++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseDiffWithMockFiles.pl
@@ -1,6 +1,7 @@
#!/usr/bin/perl -w
#
# Copyright (C) 2011 Research In Motion Limited. All rights reserved.
+# Copyright (C) 2013 Apple Inc. All rights reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -26,6 +27,33 @@ use POSIX qw/getcwd/;
use Test::More;
use VCSUtils;
+# We should consider moving escapeNewLineCharacters() and toMacLineEndings()
+# to VCSUtils.pm if they're useful in other places.
+sub escapeNewLineCharacters($)
+{
+ my ($text) = @_;
+ my @characters = split(//, $text);
+ my $result = "";
+ foreach (@characters) {
+ if (/^\r$/) {
+ $result .= '\r';
+ next;
+ }
+ if (/^\n$/) {
+ $result .= '\n';
+ }
+ $result .= $_;
+ }
+ return $result;
+}
+
+sub toMacLineEndings($)
+{
+ my ($text) = @_;
+ $text =~ s/\n/\r/g;
+ return $text;
+}
+
my $gitDiffHeaderForNewFile = <<EOF;
diff --git a/Makefile b/Makefile
new file mode 100644
@@ -43,20 +71,20 @@ index 756e864..04d2ae1 100644
@@ -1,3 +1,4 @@
EOF
-my $svnConvertedGitDiffHeader = <<EOF;
+my $svnConvertedGitDiffHeader = <<"EOF";
Index: Makefile
index 756e864..04d2ae1 100644
---- Makefile
-+++ Makefile
+--- Makefile\t(revision 0)
++++ Makefile\t(working copy)
@@ -1,3 +1,4 @@
EOF
-my $svnConvertedGitDiffHeaderForNewFile = <<EOF;
+my $svnConvertedGitDiffHeaderForNewFile = <<"EOF";
Index: Makefile
new file mode 100644
index 0000000..756e864
---- Makefile
-+++ Makefile
+--- Makefile\t(revision 0)
++++ Makefile\t(working copy)
@@ -0,0 +1,17 @@
EOF
@@ -92,6 +120,7 @@ EOF
my $mockDir = File::Temp->tempdir("parseDiffXXXX", CLEANUP => 1);
writeToFile(File::Spec->catfile($mockDir, "MakefileWithUnixEOL"), $MakefileContents);
writeToFile(File::Spec->catfile($mockDir, "MakefileWithWindowsEOL"), toWindowsLineEndings($MakefileContents));
+writeToFile(File::Spec->catfile($mockDir, "MakefileWithMacEOL"), toMacLineEndings($MakefileContents));
# The array of test cases.
my @testCaseHashRefs = (
@@ -145,6 +174,76 @@ undef],
},
{
# New test
+ diffName => "SVN: Patch adds Windows newline to EOF and IndexPath has Windows line endings",
+ inputText => <<"EOF",
+Index: MakefileWithWindowsEOL
+===================================================================
+--- MakefileWithWindowsEOL (revision 53052)
++++ MakefileWithWindowsEOL (working copy)
+@@ -1,3 +1,4 @@\r
+ MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r
+ \r
+-all:
+\\ No newline at end of file
++all:\r
++\r
+EOF
+ expectedReturn => [
+[{
+ # Same as input text
+ svnConvertedText => <<"EOF",
+Index: MakefileWithWindowsEOL
+===================================================================
+--- MakefileWithWindowsEOL (revision 53052)
++++ MakefileWithWindowsEOL (working copy)
+@@ -1,3 +1,4 @@\r
+ MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r
+ \r
+-all:
+\\ No newline at end of file
++all:\r
++\r
+EOF
+ indexPath => "MakefileWithWindowsEOL",
+ isSvn => 1,
+ numTextChunks => 1,
+ sourceRevision => 53052
+}],
+undef],
+ expectedNextLine => undef,
+},
+{
+ # New test
+ diffName => "SVN: Patch adds Mac newline to EOF and IndexPath has Mac line endings",
+ inputText => <<"EOF",
+Index: MakefileWithMacEOL
+===================================================================
+--- MakefileWithMacEOL (revision 53052)
++++ MakefileWithMacEOL (working copy)
+@@ -1,3 +1,4 @@\r MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r \r-all:
+\\ No newline at end of file
++all:\r+\r
+EOF
+ expectedReturn => [
+[{
+ # Same as input text
+ svnConvertedText => q(Index: MakefileWithMacEOL
+===================================================================
+--- MakefileWithMacEOL (revision 53052)
++++ MakefileWithMacEOL (working copy)
+@@ -1,3 +1,4 @@\r MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r \r-all:
+\\ No newline at end of file
++all:\r+\r),
+ indexPath => "MakefileWithMacEOL",
+ isSvn => 1,
+ numTextChunks => 1,
+ sourceRevision => 53052
+}],
+undef],
+ expectedNextLine => undef,
+},
+{
+ # New test
diffName => "SVN: Patch with Unix line endings and IndexPath has Windows line endings",
inputText => substituteString($svnDiffHeader, "Makefile", "MakefileWithWindowsEOL") . $diffBody,
expectedReturn => [
@@ -235,6 +334,74 @@ undef],
},
{
# New test
+ diffName => "Git: Patch adds newline to EOF with Windows line endings and IndexPath has Windows line endings",
+ inputText => <<"EOF",
+diff --git a/MakefileWithWindowsEOL b/MakefileWithWindowsEOL
+index e7e8475..ae16fc3 100644
+--- a/MakefileWithWindowsEOL
++++ b/MakefileWithWindowsEOL
+@@ -1,3 +1,4 @@\r
+ MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r
+ \r
+-all:
+\\ No newline at end of file
++all:\r
++\r
+EOF
+ expectedReturn => [
+[{
+ # Same as input text
+ svnConvertedText => <<"EOF",
+Index: MakefileWithWindowsEOL
+index e7e8475..ae16fc3 100644
+--- MakefileWithWindowsEOL\t(revision 0)
++++ MakefileWithWindowsEOL\t(working copy)
+@@ -1,3 +1,4 @@\r
+ MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r
+ \r
+-all:
+\\ No newline at end of file
++all:\r
++\r
+EOF
+ indexPath => "MakefileWithWindowsEOL",
+ isGit => 1,
+ numTextChunks => 1
+}],
+undef],
+ expectedNextLine => undef,
+},
+{
+ # New test
+ diffName => "Git: Patch adds Mac newline to EOF and IndexPath has Mac line endings",
+ inputText => <<"EOF",
+diff --git a/MakefileWithMacEOL b/MakefileWithMacEOL
+index e7e8475..ae16fc3 100644
+--- a/MakefileWithMacEOL
++++ b/MakefileWithMacEOL
+@@ -1,3 +1,4 @@\r MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r \r-all:
+\\ No newline at end of file
++all:\r+\r
+EOF
+ expectedReturn => [
+[{
+ # Same as input text
+ svnConvertedText => qq(Index: MakefileWithMacEOL
+index e7e8475..ae16fc3 100644
+--- MakefileWithMacEOL\t(revision 0)
++++ MakefileWithMacEOL\t(working copy)
+@@ -1,3 +1,4 @@\r MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools\r \r-all:
+\\ No newline at end of file
++all:\r+\r),
+ indexPath => "MakefileWithMacEOL",
+ isGit => 1,
+ numTextChunks => 1
+}],
+undef],
+ expectedNextLine => undef,
+},
+{
+ # New test
diffName => "Git: Patch with Unix line endings and IndexPath has Windows line endings",
inputText => substituteString($gitDiffHeader, "Makefile", "MakefileWithWindowsEOL") . $diffBody,
expectedReturn => [
@@ -294,6 +461,8 @@ foreach my $testCase (@testCaseHashRefs) {
my @got = VCSUtils::parseDiff($fileHandle, $line);
my $expectedReturn = $testCase->{expectedReturn};
+ $got[0][0]->{svnConvertedText} = escapeNewLineCharacters($got[0][0]->{svnConvertedText});
+ $expectedReturn->[0][0]->{svnConvertedText} = escapeNewLineCharacters($expectedReturn->[0][0]->{svnConvertedText});
is_deeply(\@got, $expectedReturn, "$testNameStart return value.");
my $gotNextLine = <$fileHandle>;
diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseGitDiffHeader.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseGitDiffHeader.pl
index bc0d4d41c..841e28387 100644
--- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseGitDiffHeader.pl
+++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseGitDiffHeader.pl
@@ -45,11 +45,35 @@ index f5d5e74..3b6aa92 100644
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo.h
index f5d5e74..3b6aa92 100644
---- foo.h
-+++ foo.h
+--- foo.h\t(revision 0)
++++ foo.h\t(working copy)
+END
+ indexPath => "foo.h",
+},
+"@@ -1 +1 @@\n"],
+ expectedNextLine => "-file contents\n",
+},
+{
+ diffName => "Modified file using --src-prefix and --dst-prefix option",
+ inputText => <<'END',
+diff --git s/foo.h d/foo.h
+index f5d5e74..3b6aa92 100644
+--- s/foo.h
++++ d/foo.h
+@@ -1 +1 @@
+-file contents
++new file contents
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<"END",
+Index: foo.h
+index f5d5e74..3b6aa92 100644
+--- foo.h\t(revision 0)
++++ foo.h\t(working copy)
END
indexPath => "foo.h",
},
@@ -57,6 +81,54 @@ END
expectedNextLine => "-file contents\n",
},
{ # New test
+ diffName => "Modified file which have space characters in path",
+ inputText => <<'END',
+diff --git a/foo bar.h b/foo bar.h
+index f5d5e74..3b6aa92 100644
+--- a/foo bar.h
++++ b/foo bar.h
+@@ -1 +1 @@
+-file contents
++new file contents
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<"END",
+Index: foo bar.h
+index f5d5e74..3b6aa92 100644
+--- foo bar.h\t(revision 0)
++++ foo bar.h\t(working copy)
+END
+ indexPath => "foo bar.h",
+},
+"@@ -1 +1 @@\n"],
+ expectedNextLine => "-file contents\n",
+},
+{ # New test
+ diffName => "Modified file which have space characters in path using --no-prefix",
+ inputText => <<'END',
+diff --git directory/foo bar.h directory/foo bar.h
+index f5d5e74..3b6aa92 100644
+--- directory/foo bar.h
++++ directory/foo bar.h
+@@ -1 +1 @@
+-file contents
++new file contents
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<"END",
+Index: directory/foo bar.h
+index f5d5e74..3b6aa92 100644
+--- directory/foo bar.h\t(revision 0)
++++ directory/foo bar.h\t(working copy)
+END
+ indexPath => "directory/foo bar.h",
+},
+"@@ -1 +1 @@\n"],
+ expectedNextLine => "-file contents\n",
+},
+{ # New test
diffName => "new file",
inputText => <<'END',
diff --git a/foo.h b/foo.h
@@ -69,12 +141,12 @@ index 0000000..3c9f114
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo.h
new file mode 100644
index 0000000..3c9f114
---- foo.h
-+++ foo.h
+--- foo.h\t(revision 0)
++++ foo.h\t(working copy)
END
indexPath => "foo.h",
isNew => 1,
@@ -97,12 +169,12 @@ index d45dd40..3494526 100644
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo
deleted file mode 100644
index 1e50d1d..0000000
---- foo
-+++ foo
+--- foo\t(revision 0)
++++ foo\t(working copy)
END
indexPath => "foo",
isDeletion => 1,
@@ -110,6 +182,34 @@ END
"@@ -1,1 +0,0 @@\n"],
expectedNextLine => "-line1\n",
},
+{
+ diffName => "delete file which have space characters in path using --no-prefix",
+ inputText => <<'END',
+diff --git directory/foo bar.h directory/foo bar.h
+deleted file mode 100644
+index 1e50d1d..0000000
+--- directory/foo bar.h
++++ /dev/null
+@@ -1,1 +0,0 @@
+-line1
+diff --git a/configure.ac b/configure.ac
+index d45dd40..3494526 100644
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<"END",
+Index: directory/foo bar.h
+deleted file mode 100644
+index 1e50d1d..0000000
+--- directory/foo bar.h\t(revision 0)
++++ directory/foo bar.h\t(working copy)
+END
+ indexPath => "directory/foo bar.h",
+ isDeletion => 1,
+},
+"@@ -1,1 +0,0 @@\n"],
+ expectedNextLine => "-line1\n",
+},
{ # New test
diffName => "using --no-prefix",
inputText => <<'END',
@@ -122,11 +222,11 @@ index c925780..9e65c43 100644
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo.h
index c925780..9e65c43 100644
---- foo.h
-+++ foo.h
+--- foo.h\t(revision 0)
++++ foo.h\t(working copy)
END
indexPath => "foo.h",
},
@@ -160,6 +260,30 @@ END
"diff --git a/bar b/bar\n"],
expectedNextLine => "index d45dd40..3494526 100644\n",
},
+{
+ diffName => "copy file which have space characters in path using --no-prefix (with similarity index 100%)",
+ inputText => <<'END',
+diff --git directory/foo bar.h directory/foo baz.h
+similarity index 100%
+copy from directory/foo bar.h
+copy to directory/foo baz.h
+diff --git a/bar b/bar
+index d45dd40..3494526 100644
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<'END',
+Index: directory/foo baz.h
+similarity index 100%
+copy from directory/foo bar.h
+copy to directory/foo baz.h
+END
+ copiedFromPath => "directory/foo bar.h",
+ indexPath => "directory/foo baz.h",
+},
+"diff --git a/bar b/bar\n"],
+ expectedNextLine => "index d45dd40..3494526 100644\n",
+},
{ # New test
diffName => "copy (with similarity index < 100%)",
inputText => <<'END',
@@ -210,6 +334,31 @@ END
"diff --git a/bar b/bar\n"],
expectedNextLine => "index d45dd40..3494526 100644\n",
},
+{
+ diffName => "rename file which have space characters in path using --no-prefix (with similarity index 100%)",
+ inputText => <<'END',
+diff --git directory/foo bar.h directory/foo baz.h
+similarity index 100%
+rename from directory/foo bar.h
+rename to directory/foo baz.h
+diff --git a/bar b/bar
+index d45dd40..3494526 100644
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<'END',
+Index: directory/foo baz.h
+similarity index 100%
+rename from directory/foo bar.h
+rename to directory/foo baz.h
+END
+ copiedFromPath => "directory/foo bar.h",
+ indexPath => "directory/foo baz.h",
+ shouldDeleteSource => 1,
+},
+"diff --git a/bar b/bar\n"],
+ expectedNextLine => "index d45dd40..3494526 100644\n",
+},
{ # New test
diffName => "rename (with similarity index < 100%)",
inputText => <<'END',
@@ -230,14 +379,14 @@ index d45dd40..3494526 100644
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo_new
similarity index 99%
rename from foo
rename to foo_new
index 1e50d1d..1459d21 100644
---- foo_new
-+++ foo_new
+--- foo_new\t(revision 0)
++++ foo_new\t(working copy)
END
copiedFromPath => "foo",
indexPath => "foo_new",
@@ -359,11 +508,11 @@ index d03e242..435ad3a 100755
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo
index d03e242..435ad3a 100755
---- foo
-+++ foo
+--- foo\t(revision 0)
++++ foo\t(working copy)
END
indexPath => "foo",
},
@@ -429,12 +578,12 @@ index 0000000..d03e242
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo
new file mode 100755
index 0000000..d03e242
---- foo
-+++ foo
+--- foo\t(revision 0)
++++ foo\t(working copy)
END
executableBitDelta => 1,
indexPath => "foo",
@@ -458,12 +607,12 @@ index d03e242..0000000
END
expectedReturn => [
{
- svnConvertedText => <<'END',
+ svnConvertedText => <<"END",
Index: foo
deleted file mode 100755
index d03e242..0000000
---- foo
-+++ foo
+--- foo\t(revision 0)
++++ foo\t(working copy)
END
executableBitDelta => -1,
indexPath => "foo",
@@ -472,6 +621,37 @@ END
"@@ -1 +0,0 @@\n"],
expectedNextLine => "-file contents\n",
},
+{
+ # svn-apply rejected https://bug-111042-attachments.webkit.org/attachment.cgi?id=190663
+ diffName => "Modified file which have space characters in path. svn-apply rejected attachment #190663.",
+ inputText => <<'END',
+diff --git a/WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme b/WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme
+index 72d60effb9bbba0520e520ec3c1aa43f348c6997..b7924b96d5978c1ad1053dca7e554023235d9a16 100644
+--- a/WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme
++++ b/WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme
+@@ -161,7 +161,7 @@
+ <EnvironmentVariables>
+ <EnvironmentVariable
+ key = "DYLD_INSERT_LIBRARIES"
+- value = "$(BUILT_PRODUCTS_DIR)/WebProcessShim.dylib"
++ value = "$(BUILT_PRODUCTS_DIR)/SecItemShim.dylib"
+ isEnabled = "YES">
+ </EnvironmentVariable>
+ </EnvironmentVariables>
+END
+ expectedReturn => [
+{
+ svnConvertedText => <<"END",
+Index: WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme
+index 72d60effb9bbba0520e520ec3c1aa43f348c6997..b7924b96d5978c1ad1053dca7e554023235d9a16 100644
+--- WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme\t(revision 0)
++++ WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme\t(working copy)
+END
+ indexPath => "WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme",
+},
+"@@ -161,7 +161,7 @@\n"],
+ expectedNextLine => " <EnvironmentVariables>\n",
+},
);
my $testCasesCount = @testCaseHashRefs;
diff --git a/Tools/Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl b/Tools/Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl
new file mode 100644
index 000000000..0970e9aa2
--- /dev/null
+++ b/Tools/Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl
@@ -0,0 +1,120 @@
+#!/usr/bin/perl -w
+#
+# Copyright (C) 2013 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.
+
+# This script tests parts of filter-build-webkit.
+# This script runs the unittests specified in @testFiles.
+
+use strict;
+use warnings;
+
+use English;
+use FindBin;
+use Test::More;
+use lib File::Spec->catdir($FindBin::Bin, "..");
+use LoadAsModule qw(FilterBuildWebKit filter-build-webkit);
+
+sub description($);
+
+@FilterBuildWebKit::EXPORT_OK = qw(shouldIgnoreLine);
+FilterBuildWebKit->import(@FilterBuildWebKit::EXPORT_OK);
+
+#
+# Test whitespace
+#
+is(shouldIgnoreLine("", ""), 1, "Ignored: empty line");
+is(shouldIgnoreLine("", " "), 1, "Ignored: one space");
+is(shouldIgnoreLine("", "\t"), 1, "Ignored: one tab");
+
+#
+# Test input that should be ignored regardless of previous line
+#
+my @expectIgnoredLines = split(/$INPUT_RECORD_SEPARATOR/, <<'END');
+make: Nothing to be done for `all'.
+JavaScriptCore/create_hash_table JavaScriptCore/runtime/ArrayConstructor.cpp -i > ArrayConstructor.lut.h
+Creating hashtable for JavaScriptCore/runtime/ArrayConstructor.cpp
+Wrote output to /Volumes/Data/Build/Release/DerivedSources/WebCore/ExportFileGenerator.cpp
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: /Volumes/Data/Build/ANGLE.build/Release/ANGLE.build/Objects-normal/i386/debug.o has no symbols
+Showing first 200 notices only
+printf "WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl\nWebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl\nWebCore/Modules/encryptedmedia/MediaKeySession.idl\nWebCore/Modules/encryptedmedia/MediaKeys.idl\nWebCore/Modules/filesystem/DOMFileSystem.idl\nWebCore/Modules/filesystem/DOMFileSystemSync.idl\nWebCore/Modules/filesystem/DOMWindowFileSystem.idl\nWebCore/Modules/filesystem/DirectoryEntry.idl\nWebCore/Modules/filesystem/DirectoryEntrySync.idl\nWebCore/Modules/filesystem/DirectoryReader.idl\nWebCore/Modules/filesystem/DirectoryReaderSync.idl\nWebCore/Modules/filesystem/EntriesCallback.idl\nWebCore/Modules/filesystem/Entry.idl\nWebCore/Modules/filesystem/EntryArray.idl\nWebCore/Modules/filesystem/EntryArraySync.idl\nWebCore/Modules/filesystem/EntryCallback.idl\nWebCore/Modules/filesystem/EntrySync.idl\nWebCore/Modules/filesystem/ErrorCallback.idl\nWebCore/Modules/filesystem/FileCallback.idl\nWebCore/Modules/filesystem/FileEntry.idl\nWebCore/Modules/filesystem/FileEntrySync.idl\nWebCore/Modules/filesystem/FileSystemCallback.idl\nWebCore/Modules/filesystem/FileWriter.idl\nWebCore/Modules/filesystem/FileWriterCallback.idl\nWebCore/Modules/filesystem/FileWriterSync.idl\nWebCore/Modules/filesystem/Metadata.idl\nWebCore/Modules/filesystem/MetadataCallback.idl\nWebCore/Modules/filesystem/WorkerContextFileSystem.idl\nWebCore/Modules/geolocation/Coordinates.idl\nWebCore/Modules/geolocation/Geolocation.idl\nWebCore/Modules/geolocation/Geoposition.idl\nWebCore/Modules/geolocation/NavigatorGeolocation.idl\nWebCore/Modules/geolocation/PositionCallback.idl\nWebCore/Modules/geolocation/PositionError.idl\nWebCore/Modules/geolocation/PositionErrorCallback.idl\nWebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl\nWebCore/Modules/indexeddb/IDBAny.idl\nWebCore/Modules/indexeddb/IDBCursor.idl\nWebCore/Modules/indexeddb/IDBDatabase.idl\nWebCore/Modules/indexeddb/IDBFactory.idl\nWebCore/Modules/indexeddb/IDBIndex.idl\nWebCore/Modules/indexeddb/IDBKeyRange.idl\nWebCore/Modules/indexeddb/IDBObjectStore.idl\nWebCore/Modules/indexeddb/IDBRequest.idl\nWebCore/Modules/indexeddb/IDBTransaction.idl\nWebCore/Modules/indexeddb/IDBVersionChangeEvent.idl\nWebCore/Modules/indexeddb/WorkerContextIndexedDatabase.idl\nWebCore/Modules/mediasource/MediaSource.idl\nWebCore/Modules/mediasource/SourceBuffer.idl\nWebCore/Modules/mediasource/SourceBufferList.idl\nWebCore/Modules/notifications/DOMWindowNotifications.idl\nWebCore/Modules/notifications/Notification.idl\nWebCore/Modules/notifications/NotificationCenter.idl\nWebCore/Modules/notifications/NotificationPermissionCallback.idl\nWebCore/Modules/notifications/WorkerContextNotifications.idl\nWebCore/Modules/quota/DOMWindowQuota.idl\nWebCore/Modules/quota/NavigatorStorageQuota.idl\nWebCore/Modules/quota/StorageInfo.idl\nWebCore/Modules/quota/StorageErrorCallback.idl\nWebCore/Modules/quota/StorageQuota.idl\nWebCore/Modules/quota/StorageQuotaCallback.idl\nWebCore/Modules/quota/StorageUsageCallback.idl\nWebCore/Modules/quota/WorkerNavigatorStorageQuota.idl\nWebCore/Modules/speech/DOMWindowSpeechSynthesis.idl\nWebCore/Modules/speech/SpeechSynthesis.idl\nWebCore/Modules/speech/SpeechSynthesisEvent.idl\nWebCore/Modules/speech/SpeechSynthesisUtterance.idl\nWebCore/Modules/speech/SpeechSynthesisVoice.idl\nWebCore/Modules/webaudio/AudioBuffer.idl\nWebCore/Modules/webaudio/AudioBufferCallback.idl\nWebCore/Modules/webaudio/AudioBufferSourceNode.idl\nWebCore/Modules/webaudio/ChannelMergerNode.idl\nWebCore/Modules/webaudio/ChannelSplitterNode.idl\nWebCore/Modules/webaudio/AudioContext.idl\nWebCore/Modules/webaudio/AudioDestinationNode.idl\nWebCore/Modules/webaudio/GainNode.idl\nWebCore/Modules/webaudio/AudioListener.idl\nWebCore/Modules/webaudio/AudioNode.idl\nWebCore/Modules/webaudio/PannerNode.idl\nWebCore/Modules/webaudio/AudioParam.idl\nWebCore/Modules/webaudio/AudioProcessingEvent.idl\nWebCore/Modules/webaudio/BiquadFilterNode.idl\nWebCore/Modules/webaudio/ConvolverNode.idl\nWebCore/Modules/webaudio/DOMWindowWebAudio.idl\nWebCore/Modules/webaudio/DelayNode.idl\nWebCore/Modules/webaudio/DynamicsCompressorNode.idl\nWebCore/Modules/webaudio/ScriptProcessorNode.idl\nWebCore/Modules/webaudio/MediaElementAudioSourceNode.idl\nWebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl\nWebCore/Modules/webaudio/OscillatorNode.idl\nWebCore/Modules/webaudio/OfflineAudioContext.idl\nWebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl\nWebCore/Modules/webaudio/AnalyserNode.idl\nWebCore/Modules/webaudio/WaveShaperNode.idl\nWebCore/Modules/webaudio/WaveTable.idl\nWebCore/Modules/webdatabase/DOMWindowWebDatabase.idl\nWebCore/Modules/webdatabase/Database.idl\nWebCore/Modules/webdatabase/DatabaseCallback.idl\nWebCore/Modules/webdatabase/DatabaseSync.idl\nWebCore/Modules/webdatabase/SQLError.idl\nWebCore/Modules/webdatabase/SQLException.idl\nWebCore/Modules/webdatabase/SQLResultSet.idl\nWebCore/Modules/webdatabase/SQLResultSetRowList.idl\nWebCore/Modules/webdatabase/SQLStatementCallback.idl\nWebCore/Modules/webdatabase/SQLStatementErrorCallback.idl\nWebCore/Modules/webdatabase/SQLTransaction.idl\nWebCore/Modules/webdatabase/SQLTransactionCallback.idl\nWebCore/Modules/webdatabase/SQLTransactionErrorCallback.idl\nWebCore/Modules/webdatabase/SQLTransactionSync.idl\nWebCore/Modules/webdatabase/SQLTransactionSyncCallback.idl\nWebCore/Modules/webdatabase/WorkerContextWebDatabase.idl\nWebCore/Modules/websockets/CloseEvent.idl\nWebCore/Modules/websockets/DOMWindowWebSocket.idl\nWebCore/Modules/websockets/WebSocket.idl\nWebCore/Modules/websockets/WorkerContextWebSocket.idl\nWebCore/css/CSSCharsetRule.idl\nWebCore/css/CSSFontFaceLoadEvent.idl\nWebCore/css/CSSFontFaceRule.idl\nWebCore/css/CSSHostRule.idl\nWebCore/css/CSSImportRule.idl\nWebCore/css/CSSMediaRule.idl\nWebCore/css/CSSPageRule.idl\nWebCore/css/CSSPrimitiveValue.idl\nWebCore/css/CSSRule.idl\nWebCore/css/CSSRuleList.idl\nWebCore/css/CSSStyleDeclaration.idl\nWebCore/css/CSSStyleRule.idl\nWebCore/css/CSSStyleSheet.idl\nWebCore/css/CSSSupportsRule.idl\nWebCore/css/CSSUnknownRule.idl\nWebCore/css/CSSValue.idl\nWebCore/css/CSSValueList.idl\nWebCore/css/Counter.idl\nWebCore/css/DOMWindowCSS.idl\nWebCore/css/FontLoader.idl\nWebCore/css/MediaList.idl\nWebCore/css/MediaQueryList.idl\nWebCore/css/MediaQueryListListener.idl\nWebCore/css/RGBColor.idl\nWebCore/css/Rect.idl\nWebCore/css/StyleMedia.idl\nWebCore/css/StyleSheet.idl\nWebCore/css/StyleSheetList.idl\nWebCore/css/WebKitCSSFilterValue.idl\nWebCore/css/WebKitCSSFilterRule.idl\nWebCore/css/WebKitCSSKeyframeRule.idl\nWebCore/css/WebKitCSSKeyframesRule.idl\nWebCore/css/WebKitCSSMatrix.idl\nWebCore/css/WebKitCSSMixFunctionValue.idl\nWebCore/css/WebKitCSSRegionRule.idl\nWebCore/css/WebKitCSSTransformValue.idl\nWebCore/css/WebKitCSSViewportRule.idl\nWebCore/dom/Attr.idl\nWebCore/dom/BeforeLoadEvent.idl\nWebCore/dom/CDATASection.idl\nWebCore/dom/CharacterData.idl\nWebCore/dom/ClientRect.idl\nWebCore/dom/ClientRectList.idl\nWebCore/dom/Clipboard.idl\nWebCore/dom/Comment.idl\nWebCore/dom/CompositionEvent.idl\nWebCore/dom/CustomElementConstructor.idl\nWebCore/dom/CustomEvent.idl\nWebCore/dom/DOMCoreException.idl\nWebCore/dom/DOMError.idl\nWebCore/dom/DOMImplementation.idl\nWebCore/dom/DOMStringList.idl\nWebCore/dom/DOMStringMap.idl\nWebCore/dom/DataTransferItem.idl\nWebCore/dom/DataTransferItemList.idl\nWebCore/dom/DeviceMotionEvent.idl\nWebCore/dom/DeviceOrientationEvent.idl\nWebCore/dom/Document.idl\nWebCore/dom/DocumentFragment.idl\nWebCore/dom/DocumentType.idl\nWebCore/dom/Element.idl\nWebCore/dom/Entity.idl\nWebCore/dom/EntityReference.idl\nWebCore/dom/ErrorEvent.idl\nWebCore/dom/Event.idl\nWebCore/dom/EventException.idl\nWebCore/dom/EventListener.idl\nWebCore/dom/EventTarget.idl\nWebCore/dom/FocusEvent.idl\nWebCore/dom/HashChangeEvent.idl\nWebCore/dom/KeyboardEvent.idl\nWebCore/dom/MessageChannel.idl\nWebCore/dom/MessageEvent.idl\nWebCore/dom/MessagePort.idl\nWebCore/dom/MouseEvent.idl\nWebCore/dom/MutationEvent.idl\nWebCore/dom/MutationObserver.idl\nWebCore/dom/MutationRecord.idl\nWebCore/dom/DOMNamedFlowCollection.idl\nWebCore/dom/NamedNodeMap.idl\nWebCore/dom/Node.idl\nWebCore/dom/NodeFilter.idl\nWebCore/dom/NodeIterator.idl\nWebCore/dom/NodeList.idl\nWebCore/dom/Notation.idl\nWebCore/dom/OverflowEvent.idl\nWebCore/dom/PageTransitionEvent.idl\nWebCore/dom/PopStateEvent.idl\nWebCore/dom/ProcessingInstruction.idl\nWebCore/dom/ProgressEvent.idl\nWebCore/dom/ProgressEvent.idl\nWebCore/dom/PropertyNodeList.idl\nWebCore/dom/Range.idl\nWebCore/dom/RangeException.idl\nWebCore/dom/RequestAnimationFrameCallback.idl\nWebCore/dom/ShadowRoot.idl\nWebCore/dom/StringCallback.idl\nWebCore/dom/Text.idl\nWebCore/dom/TextEvent.idl\nWebCore/dom/Touch.idl\nWebCore/dom/TouchEvent.idl\nWebCore/dom/TouchList.idl\nWebCore/dom/TransitionEvent.idl\nWebCore/dom/TreeWalker.idl\nWebCore/dom/UIEvent.idl\nWebCore/dom/WebKitAnimationEvent.idl\nWebCore/dom/WebKitNamedFlow.idl\nWebCore/dom/WebKitTransitionEvent.idl\nWebCore/dom/WheelEvent.idl\nWebCore/fileapi/Blob.idl\nWebCore/fileapi/File.idl\nWebCore/fileapi/FileError.idl\nWebCore/fileapi/FileException.idl\nWebCore/fileapi/FileList.idl\nWebCore/fileapi/FileReader.idl\nWebCore/fileapi/FileReaderSync.idl\nWebCore/html/DOMFormData.idl\nWebCore/html/DOMSettableTokenList.idl\nWebCore/html/DOMTokenList.idl\nWebCore/html/DOMURL.idl\nWebCore/html/HTMLAllCollection.idl\nWebCore/html/HTMLAnchorElement.idl\nWebCore/html/HTMLAppletElement.idl\nWebCore/html/HTMLAreaElement.idl\nWebCore/html/HTMLAudioElement.idl\nWebCore/html/HTMLBRElement.idl\nWebCore/html/HTMLBaseElement.idl\nWebCore/html/HTMLBaseFontElement.idl\nWebCore/html/HTMLBodyElement.idl\nWebCore/html/HTMLButtonElement.idl\nWebCore/html/HTMLCanvasElement.idl\nWebCore/html/HTMLCollection.idl\nWebCore/html/HTMLDListElement.idl\nWebCore/html/HTMLDataListElement.idl\nWebCore/html/HTMLDetailsElement.idl\nWebCore/html/HTMLDialogElement.idl\nWebCore/html/HTMLDirectoryElement.idl\nWebCore/html/HTMLDivElement.idl\nWebCore/html/HTMLDocument.idl\nWebCore/html/HTMLElement.idl\nWebCore/html/HTMLEmbedElement.idl\nWebCore/html/HTMLFieldSetElement.idl\nWebCore/html/HTMLFontElement.idl\nWebCore/html/HTMLFormControlsCollection.idl\nWebCore/html/HTMLFormElement.idl\nWebCore/html/HTMLFrameElement.idl\nWebCore/html/HTMLFrameSetElement.idl\nWebCore/html/HTMLHRElement.idl\nWebCore/html/HTMLHeadElement.idl\nWebCore/html/HTMLHeadingElement.idl\nWebCore/html/HTMLHtmlElement.idl\nWebCore/html/HTMLIFrameElement.idl\nWebCore/html/HTMLImageElement.idl\nWebCore/html/HTMLInputElement.idl\nWebCore/html/HTMLKeygenElement.idl\nWebCore/html/HTMLLIElement.idl\nWebCore/html/HTMLLabelElement.idl\nWebCore/html/HTMLLegendElement.idl\nWebCore/html/HTMLLinkElement.idl\nWebCore/html/HTMLMapElement.idl\nWebCore/html/HTMLMarqueeElement.idl\nWebCore/html/HTMLMediaElement.idl\nWebCore/html/HTMLMenuElement.idl\nWebCore/html/HTMLMetaElement.idl\nWebCore/html/HTMLMeterElement.idl\nWebCore/html/HTMLModElement.idl\nWebCore/html/HTMLOListElement.idl\nWebCore/html/HTMLObjectElement.idl\nWebCore/html/HTMLOptGroupElement.idl\nWebCore/html/HTMLOptionElement.idl\nWebCore/html/HTMLOptionsCollection.idl\nWebCore/html/HTMLOutputElement.idl\nWebCore/html/HTMLParagraphElement.idl\nWebCore/html/HTMLParamElement.idl\nWebCore/html/HTMLPreElement.idl\nWebCore/html/HTMLProgressElement.idl\nWebCore/html/HTMLPropertiesCollection.idl\nWebCore/html/HTMLQuoteElement.idl\nWebCore/html/HTMLScriptElement.idl\nWebCore/html/HTMLSelectElement.idl\nWebCore/html/HTMLSourceElement.idl\nWebCore/html/HTMLSpanElement.idl\nWebCore/html/HTMLStyleElement.idl\nWebCore/html/HTMLTableCaptionElement.idl\nWebCore/html/HTMLTableCellElement.idl\nWebCore/html/HTMLTableColElement.idl\nWebCore/html/HTMLTableElement.idl\nWebCore/html/HTMLTableRowElement.idl\nWebCore/html/HTMLTableSectionElement.idl\nWebCore/html/HTMLTemplateElement.idl\nWebCore/html/HTMLTextAreaElement.idl\nWebCore/html/HTMLTitleElement.idl\nWebCore/html/HTMLTrackElement.idl\nWebCore/html/HTMLUListElement.idl\nWebCore/html/HTMLUnknownElement.idl\nWebCore/html/HTMLVideoElement.idl\nWebCore/html/ImageData.idl\nWebCore/html/MediaController.idl\nWebCore/html/MediaError.idl\nWebCore/html/MediaKeyError.idl\nWebCore/html/MediaKeyEvent.idl\nWebCore/html/MicroDataItemValue.idl\nWebCore/html/RadioNodeList.idl\nWebCore/html/TextMetrics.idl\nWebCore/html/TimeRanges.idl\nWebCore/html/ValidityState.idl\nWebCore/html/VoidCallback.idl\nWebCore/html/canvas/ArrayBuffer.idl\nWebCore/html/canvas/ArrayBufferView.idl\nWebCore/html/canvas/CanvasGradient.idl\nWebCore/html/canvas/CanvasPattern.idl\nWebCore/html/canvas/CanvasProxy.idl\nWebCore/html/canvas/CanvasRenderingContext.idl\nWebCore/html/canvas/CanvasRenderingContext2D.idl\nWebCore/html/canvas/DataView.idl\nWebCore/html/canvas/DOMPath.idl\nWebCore/html/canvas/EXTDrawBuffers.idl\nWebCore/html/canvas/EXTTextureFilterAnisotropic.idl\nWebCore/html/canvas/Float32Array.idl\nWebCore/html/canvas/Float64Array.idl\nWebCore/html/canvas/Int16Array.idl\nWebCore/html/canvas/Int32Array.idl\nWebCore/html/canvas/Int8Array.idl\nWebCore/html/canvas/OESElementIndexUint.idl\nWebCore/html/canvas/OESStandardDerivatives.idl\nWebCore/html/canvas/OESTextureFloat.idl\nWebCore/html/canvas/OESTextureHalfFloat.idl\nWebCore/html/canvas/OESVertexArrayObject.idl\nWebCore/html/canvas/Uint16Array.idl\nWebCore/html/canvas/Uint32Array.idl\nWebCore/html/canvas/Uint8Array.idl\nWebCore/html/canvas/Uint8ClampedArray.idl\nWebCore/html/canvas/WebGLActiveInfo.idl\nWebCore/html/canvas/WebGLBuffer.idl\nWebCore/html/canvas/WebGLCompressedTextureATC.idl\nWebCore/html/canvas/WebGLCompressedTexturePVRTC.idl\nWebCore/html/canvas/WebGLCompressedTextureS3TC.idl\nWebCore/html/canvas/WebGLContextAttributes.idl\nWebCore/html/canvas/WebGLContextEvent.idl\nWebCore/html/canvas/WebGLDepthTexture.idl\nWebCore/html/canvas/WebGLFramebuffer.idl\nWebCore/html/canvas/WebGLLoseContext.idl\nWebCore/html/canvas/WebGLProgram.idl\nWebCore/html/canvas/WebGLRenderbuffer.idl\nWebCore/html/canvas/WebGLRenderingContext.idl\nWebCore/html/canvas/WebGLShader.idl\nWebCore/html/canvas/WebGLShaderPrecisionFormat.idl\nWebCore/html/canvas/WebGLTexture.idl\nWebCore/html/canvas/WebGLUniformLocation.idl\nWebCore/html/canvas/WebGLVertexArrayObjectOES.idl\nWebCore/html/shadow/HTMLContentElement.idl\nWebCore/html/shadow/HTMLShadowElement.idl\nWebCore/html/track/TextTrack.idl\nWebCore/html/track/TextTrackCue.idl\nWebCore/html/track/TextTrackCueList.idl\nWebCore/html/track/TextTrackList.idl\nWebCore/html/track/TrackEvent.idl\nWebCore/inspector/InjectedScriptHost.idl\nWebCore/inspector/InspectorFrontendHost.idl\nWebCore/inspector/ScriptProfile.idl\nWebCore/inspector/ScriptProfileNode.idl\nWebCore/loader/appcache/DOMApplicationCache.idl\nWebCore/page/AbstractView.idl\nWebCore/page/BarInfo.idl\nWebCore/page/Console.idl\nWebCore/page/Crypto.idl\nWebCore/page/DOMSecurityPolicy.idl\nWebCore/page/DOMSelection.idl\nWebCore/page/DOMWindow.idl\nWebCore/page/EventSource.idl\nWebCore/page/History.idl\nWebCore/page/Location.idl\nWebCore/page/Navigator.idl\nWebCore/page/Performance.idl\nWebCore/page/PerformanceNavigation.idl\nWebCore/page/PerformanceTiming.idl\nWebCore/page/Screen.idl\nWebCore/page/SpeechInputEvent.idl\nWebCore/page/SpeechInputResult.idl\nWebCore/page/SpeechInputResultList.idl\nWebCore/page/WebKitPoint.idl\nWebCore/page/WorkerNavigator.idl\nWebCore/plugins/DOMMimeType.idl\nWebCore/plugins/DOMMimeTypeArray.idl\nWebCore/plugins/DOMPlugin.idl\nWebCore/plugins/DOMPluginArray.idl\nWebCore/storage/Storage.idl\nWebCore/storage/StorageEvent.idl\nWebCore/svg/ElementTimeControl.idl\nWebCore/svg/SVGAElement.idl\nWebCore/svg/SVGAltGlyphDefElement.idl\nWebCore/svg/SVGAltGlyphElement.idl\nWebCore/svg/SVGAltGlyphItemElement.idl\nWebCore/svg/SVGAngle.idl\nWebCore/svg/SVGAnimateColorElement.idl\nWebCore/svg/SVGAnimateElement.idl\nWebCore/svg/SVGAnimateMotionElement.idl\nWebCore/svg/SVGAnimateTransformElement.idl\nWebCore/svg/SVGAnimatedAngle.idl\nWebCore/svg/SVGAnimatedBoolean.idl\nWebCore/svg/SVGAnimatedEnumeration.idl\nWebCore/svg/SVGAnimatedInteger.idl\nWebCore/svg/SVGAnimatedLength.idl\nWebCore/svg/SVGAnimatedLengthList.idl\nWebCore/svg/SVGAnimatedNumber.idl\nWebCore/svg/SVGAnimatedNumberList.idl\nWebCore/svg/SVGAnimatedPreserveAspectRatio.idl\nWebCore/svg/SVGAnimatedRect.idl\nWebCore/svg/SVGAnimatedString.idl\nWebCore/svg/SVGAnimatedTransformList.idl\nWebCore/svg/SVGAnimationElement.idl\nWebCore/svg/SVGCircleElement.idl\nWebCore/svg/SVGClipPathElement.idl\nWebCore/svg/SVGColor.idl\nWebCore/svg/SVGComponentTransferFunctionElement.idl\nWebCore/svg/SVGCursorElement.idl\nWebCore/svg/SVGDefsElement.idl\nWebCore/svg/SVGDescElement.idl\nWebCore/svg/SVGDocument.idl\nWebCore/svg/SVGElement.idl\nWebCore/svg/SVGElementInstance.idl\nWebCore/svg/SVGElementInstanceList.idl\nWebCore/svg/SVGEllipseElement.idl\nWebCore/svg/SVGException.idl\nWebCore/svg/SVGExternalResourcesRequired.idl\nWebCore/svg/SVGFEBlendElement.idl\nWebCore/svg/SVGFEColorMatrixElement.idl\nWebCore/svg/SVGFEComponentTransferElement.idl\nWebCore/svg/SVGFECompositeElement.idl\nWebCore/svg/SVGFEConvolveMatrixElement.idl\nWebCore/svg/SVGFEDiffuseLightingElement.idl\nWebCore/svg/SVGFEDisplacementMapElement.idl\nWebCore/svg/SVGFEDistantLightElement.idl\nWebCore/svg/SVGFEDropShadowElement.idl\nWebCore/svg/SVGFEFloodElement.idl\nWebCore/svg/SVGFEFuncAElement.idl\nWebCore/svg/SVGFEFuncBElement.idl\nWebCore/svg/SVGFEFuncGElement.idl\nWebCore/svg/SVGFEFuncRElement.idl\nWebCore/svg/SVGFEGaussianBlurElement.idl\nWebCore/svg/SVGFEImageElement.idl\nWebCore/svg/SVGFEMergeElement.idl\nWebCore/svg/SVGFEMergeNodeElement.idl\nWebCore/svg/SVGFEMorphologyElement.idl\nWebCore/svg/SVGFEOffsetElement.idl\nWebCore/svg/SVGFEPointLightElement.idl\nWebCore/svg/SVGFESpecularLightingElement.idl\nWebCore/svg/SVGFESpotLightElement.idl\nWebCore/svg/SVGFETileElement.idl\nWebCore/svg/SVGFETurbulenceElement.idl\nWebCore/svg/SVGFilterElement.idl\nWebCore/svg/SVGFilterPrimitiveStandardAttributes.idl\nWebCore/svg/SVGFitToViewBox.idl\nWebCore/svg/SVGFontElement.idl\nWebCore/svg/SVGFontFaceElement.idl\nWebCore/svg/SVGFontFaceFormatElement.idl\nWebCore/svg/SVGFontFaceNameElement.idl\nWebCore/svg/SVGFontFaceSrcElement.idl\nWebCore/svg/SVGFontFaceUriElement.idl\nWebCore/svg/SVGForeignObjectElement.idl\nWebCore/svg/SVGGElement.idl\nWebCore/svg/SVGGlyphElement.idl\nWebCore/svg/SVGGlyphRefElement.idl\nWebCore/svg/SVGGradientElement.idl\nWebCore/svg/SVGHKernElement.idl\nWebCore/svg/SVGImageElement.idl\nWebCore/svg/SVGLangSpace.idl\nWebCore/svg/SVGLength.idl\nWebCore/svg/SVGLengthList.idl\nWebCore/svg/SVGLineElement.idl\nWebCore/svg/SVGLinearGradientElement.idl\nWebCore/svg/SVGLocatable.idl\nWebCore/svg/SVGMPathElement.idl\nWebCore/svg/SVGMarkerElement.idl\nWebCore/svg/SVGMaskElement.idl\nWebCore/svg/SVGMatrix.idl\nWebCore/svg/SVGMetadataElement.idl\nWebCore/svg/SVGMissingGlyphElement.idl\nWebCore/svg/SVGNumber.idl\nWebCore/svg/SVGNumberList.idl\nWebCore/svg/SVGPaint.idl\nWebCore/svg/SVGPathElement.idl\nWebCore/svg/SVGPathSeg.idl\nWebCore/svg/SVGPathSegArcAbs.idl\nWebCore/svg/SVGPathSegArcRel.idl\nWebCore/svg/SVGPathSegClosePath.idl\nWebCore/svg/SVGPathSegCurvetoCubicAbs.idl\nWebCore/svg/SVGPathSegCurvetoCubicRel.idl\nWebCore/svg/SVGPathSegCurvetoCubicSmoothAbs.idl\nWebCore/svg/SVGPathSegCurvetoCubicSmoothRel.idl\nWebCore/svg/SVGPathSegCurvetoQuadraticAbs.idl\nWebCore/svg/SVGPathSegCurvetoQuadraticRel.idl\nWebCore/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl\nWebCore/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl\nWebCore/svg/SVGPathSegLinetoAbs.idl\nWebCore/svg/SVGPathSegLinetoHorizontalAbs.idl\nWebCore/svg/SVGPathSegLinetoHorizontalRel.idl\nWebCore/svg/SVGPathSegLinetoRel.idl\nWebCore/svg/SVGPathSegLinetoVerticalAbs.idl\nWebCore/svg/SVGPathSegLinetoVerticalRel.idl\nWebCore/svg/SVGPathSegList.idl\nWebCore/svg/SVGPathSegMovetoAbs.idl\nWebCore/svg/SVGPathSegMovetoRel.idl\nWebCore/svg/SVGPatternElement.idl\nWebCore/svg/SVGPoint.idl\nWebCore/svg/SVGPointList.idl\nWebCore/svg/SVGPolygonElement.idl\nWebCore/svg/SVGPolylineElement.idl\nWebCore/svg/SVGPreserveAspectRatio.idl\nWebCore/svg/SVGRadialGradientElement.idl\nWebCore/svg/SVGRect.idl\nWebCore/svg/SVGRectElement.idl\nWebCore/svg/SVGRenderingIntent.idl\nWebCore/svg/SVGSVGElement.idl\nWebCore/svg/SVGScriptElement.idl\nWebCore/svg/SVGSetElement.idl\nWebCore/svg/SVGStopElement.idl\nWebCore/svg/SVGStringList.idl\nWebCore/svg/SVGStyleElement.idl\nWebCore/svg/SVGStyledElement.idl\nWebCore/svg/SVGSwitchElement.idl\nWebCore/svg/SVGSymbolElement.idl\nWebCore/svg/SVGTRefElement.idl\nWebCore/svg/SVGTSpanElement.idl\nWebCore/svg/SVGTests.idl\nWebCore/svg/SVGTextContentElement.idl\nWebCore/svg/SVGTextElement.idl\nWebCore/svg/SVGTextPathElement.idl\nWebCore/svg/SVGTextPositioningElement.idl\nWebCore/svg/SVGTitleElement.idl\nWebCore/svg/SVGTransform.idl\nWebCore/svg/SVGTransformList.idl\nWebCore/svg/SVGTransformable.idl\nWebCore/svg/SVGURIReference.idl\nWebCore/svg/SVGUnitTypes.idl\nWebCore/svg/SVGUseElement.idl\nWebCore/svg/SVGVKernElement.idl\nWebCore/svg/SVGViewElement.idl\nWebCore/svg/SVGViewSpec.idl\nWebCore/svg/SVGZoomAndPan.idl\nWebCore/svg/SVGZoomEvent.idl\nWebCore/testing/Internals.idl\nWebCore/testing/InternalSettings.idl\nWebCore/testing/MallocStatistics.idl\nWebCore/testing/MemoryInfo.idl\nWebCore/testing/TypeConversions.idl\nWebCore/workers/AbstractWorker.idl\nWebCore/workers/DedicatedWorkerContext.idl\nWebCore/workers/SharedWorker.idl\nWebCore/workers/SharedWorkerContext.idl\nWebCore/workers/Worker.idl\nWebCore/workers/WorkerContext.idl\nWebCore/workers/WorkerLocation.idl\nWebCore/xml/DOMParser.idl\nWebCore/xml/XMLHttpRequest.idl\nWebCore/xml/XMLHttpRequestException.idl\nWebCore/xml/XMLHttpRequestProgressEvent.idl\nWebCore/xml/XMLHttpRequestUpload.idl\nWebCore/xml/XMLSerializer.idl\nWebCore/xml/XPathEvaluator.idl\nWebCore/xml/XPathException.idl\nWebCore/xml/XPathExpression.idl\nWebCore/xml/XPathNSResolver.idl\nWebCore/xml/XPathResult.idl\nWebCore/xml/XSLTProcessor.idl\nInternalSettingsGenerated.idl\nWebCore/inspector/JavaScriptCallFrame.idl\n" > ./idl_files.tmp
+perl JavaScriptCore/docs/make-bytecode-docs.pl JavaScriptCore/interpreter/Interpreter.cpp docs/bytecode.html
+cat WebCore/css/CSSPropertyNames.in WebCore/css/SVGCSSPropertyNames.in > CSSPropertyNames.in
+rm -f ./idl_files.tmp
+python JavaScriptCore/KeywordLookupGenerator.py JavaScriptCore/parser/Keywords.table > KeywordLookup.h
+sed -e s/\<WebCore/\<WebKit/ -e s/DOMDOMImplementation/DOMImplementation/ /Volumes/Data/Build/Release/WebCore.framework/PrivateHeaders/DOM.h > /Volumes/Data/Build/Release/WebKit.framework/Versions/A/Headers/DOM.h
+END
+
+for my $line (@expectIgnoredLines) {
+ is(shouldIgnoreLine("", $line), 1, description("Ignored: " . $line));
+}
+
+#
+# Test input starting with four spaces
+#
+my @buildSettingsLines = split(/$INPUT_RECORD_SEPARATOR/, <<'END');
+Build settings from command line:
+ ARCHS = i386 x86_64
+ OBJROOT = /Volumes/Data/Build
+ ONLY_ACTIVE_ARCH = NO
+ SHARED_PRECOMPS_DIR = /Volumes/Data/Build/PrecompiledHeaders
+ SYMROOT = /Volumes/Data/Build
+END
+
+for my $i (0..scalar(@buildSettingsLines) - 1) {
+ my $previousLine = $i ? $buildSettingsLines[$i - 1] : "";
+ my $line = $buildSettingsLines[$i];
+ is(shouldIgnoreLine($previousLine, $line), 1, description("Ignored: " . $line));
+}
+
+#
+# Test input for undefined symbols error message
+#
+my @undefinedSymbolsLines = split(/$INPUT_RECORD_SEPARATOR/, <<'END');
+Undefined symbols for architecture x86_64:
+ "__ZN6WebKit12WebPageProxy28exposedRectChangedTimerFiredEPN7WebCore5TimerIS0_EE", referenced from:
+ __ZN6WebKit12WebPageProxyC2EPNS_10PageClientEN3WTF10PassRefPtrINS_15WebProcessProxyEEEPNS_12WebPageGroupEy in WebPageProxy.o
+ld: symbol(s) not found for architecture x86_64
+clang: error: linker command failed with exit code 1 (use -v to see invocation)
+END
+
+for my $i (0..scalar(@undefinedSymbolsLines) - 1) {
+ my $previousLine = $i ? $undefinedSymbolsLines[$i - 1] : "";
+ my $line = $undefinedSymbolsLines[$i];
+ is(shouldIgnoreLine($previousLine, $line), 0, description("Printed: " . $line));
+}
+
+done_testing();
+
+sub description($)
+{
+ my ($line) = @_;
+
+ my $maxLineLength = 200;
+ my $ellipsis = "...";
+ my $truncateLength = $maxLineLength - length($ellipsis);
+
+ my $description = length($line) > $maxLineLength ? substr($line, 0, $truncateLength) : $line;
+ $description .= $ellipsis if length($line) != length($description);
+
+ return $description;
+}
diff --git a/Tools/Scripts/webkitperl/httpd.pm b/Tools/Scripts/webkitperl/httpd.pm
index 58ff108d3..f61dfa00b 100644
--- a/Tools/Scripts/webkitperl/httpd.pm
+++ b/Tools/Scripts/webkitperl/httpd.pm
@@ -90,6 +90,14 @@ sub hasHTTPD
return system(@command) == 0;
}
+sub getApacheVersion
+{
+ my $httpdPath = getHTTPDPath();
+ my $version = `$httpdPath -v`;
+ $version =~ s/.*Server version: Apache\/(\d+\.\d+).*/$1/s;
+ return $version;
+}
+
sub getDefaultConfigForTestDirectory
{
my ($testDirectory) = @_;
@@ -112,11 +120,14 @@ sub getDefaultConfigForTestDirectory
"-c", "TypesConfig \"$typesConfig\"",
# Apache wouldn't run CGIs with permissions==700 otherwise
"-c", "User \"#$<\"",
- "-c", "LockFile \"$httpdLockFile\"",
"-c", "PidFile \"$httpdPidFile\"",
"-c", "ScoreBoardFile \"$httpdScoreBoardFile\"",
);
+ if (getApacheVersion() eq "2.2") {
+ push(@httpdArgs, "-c", "LockFile \"$httpdLockFile\"");
+ }
+
# FIXME: Enable this on Windows once <rdar://problem/5345985> is fixed
# The version of Apache we use with Cygwin does not support SSL
my $sslCertificate = "$testDirectory/http/conf/webkit-httpd.pem";
@@ -134,6 +145,7 @@ sub getHTTPDConfigPathForTestDirectory
my $httpdConfig;
my $httpdPath = getHTTPDPath();
my $httpdConfDirectory = "$testDirectory/http/conf/";
+ my $apacheVersion = getApacheVersion();
if (isCygwin()) {
my $libPHP4DllPath = "/usr/lib/apache/libphp4.dll";
@@ -144,9 +156,9 @@ sub getHTTPDConfigPathForTestDirectory
}
$httpdConfig = "cygwin-httpd.conf"; # This is an apache 1.3 config.
} elsif (isDebianBased()) {
- $httpdConfig = "apache2-debian-httpd.conf";
+ $httpdConfig = "debian-httpd-$apacheVersion.conf";
} elsif (isFedoraBased()) {
- $httpdConfig = "fedora-httpd.conf"; # This is an apache2 config, despite the name.
+ $httpdConfig = "fedora-httpd-$apacheVersion.conf";
} else {
# All other ports use apache2, so just use our default apache2 config.
$httpdConfig = "apache2-httpd.conf";
diff --git a/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests-expected.txt b/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests-expected.txt
index d94b07406..c58560e98 100644
--- a/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests-expected.txt
+++ b/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests-expected.txt
@@ -138,11 +138,6 @@
'Class2::func25'
],
[
- '158',
- '159',
- 'Class1'
- ],
- [
'162',
'164',
'Class1::func26'
@@ -183,11 +178,6 @@
'Class103::Class103'
],
[
- '204',
- '205',
- 'Struct1'
- ],
- [
'208',
'210',
'Struct1::func29'
@@ -198,159 +188,34 @@
'Struct2::func30'
],
[
- '219',
- '219',
- 'NameSpace1'
- ],
- [
'220',
'222',
'NameSpace1::func30'
],
[
- '223',
- '223',
- 'NameSpace1'
- ],
- [
- '228',
- '228',
- 'NameSpace2'
- ],
- [
'229',
'231',
'NameSpace1::NameSpace2::func31'
],
[
- '232',
- '232',
- 'NameSpace2'
- ],
- [
- '237',
- '240',
- 'Class104'
- ],
- [
- '244',
- '249',
- 'Class105'
- ],
- [
- '253',
- '254',
- 'Class106'
- ],
- [
'255',
'259',
'Class106::func32'
],
[
- '260',
- '261',
- 'Class106'
- ],
- [
'262',
'266',
'Class106::func33'
],
[
- '267',
- '268',
- 'Class106'
- ],
- [
- '272',
- '273',
- 'NameSpace3'
- ],
- [
- '275',
- '276',
- 'NameSpace4'
- ],
- [
- '278',
- '279',
- 'NameSpace3'
- ],
- [
- '283',
- '284',
- 'NameSpace5'
- ],
- [
- '286',
- '287',
- 'NameSpace6'
- ],
- [
- '289',
- '290',
- 'Class107'
- ],
- [
'291',
'295',
'NameSpace5::NameSpace6::Class107::func34'
],
[
- '296',
- '297',
- 'Class107'
- ],
- [
- '299',
- '300',
- 'NameSpace6'
- ],
- [
- '302',
- '303',
- 'NameSpace5'
- ],
- [
- '307',
- '307',
- 'Class108'
- ],
- [
'308',
'320',
'Class108::func35'
],
- [
- '321',
- '321',
- 'Class108'
- ],
- [
- '340',
- '354',
- 'NameSpace7'
- ],
- [
- '356',
- '369',
- 'NameSpace8'
- ],
- [
- '371',
- '371',
- 'NameSpace7'
- ],
- [
- '373',
- '386',
- 'Class109'
- ],
- [
- '388',
- '388',
- 'NameSpace7'
- ]
]
}