Title: [240444] trunk
Revision
240444
Author
[email protected]
Date
2019-01-24 11:17:09 -0800 (Thu, 24 Jan 2019)

Log Message

Add Ad Click Attribution as an internal/experimental feature
https://bugs.webkit.org/show_bug.cgi?id=193685
<rdar://problem/47450399>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/adClickAttribution/anchor-tag-attributes-reflect.html

* html/HTMLAnchorElement.h:
* html/HTMLAnchorElement.idl:
* html/HTMLAttributeNames.in:
    Addeed two new experimental attributes:
    - adcampaignid: Ad campaign ID.
    - addestination: Ad link destination site.
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::adClickAttributionEnabled const):
(WebCore::RuntimeEnabledFeatures::setAdClickAttributionEnabled):
* page/Settings.yaml:

Source/WebKit:

* Shared/WebPreferences.yaml:
    Added AdClickAttributionEnabled as a runtime enabled feature, off by default.

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences adClickAttributionEnabled]):
(-[WebPreferences setAdClickAttributionEnabled:]):
    Added support for experimental ad click attribution.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

Added test option adClickAttributionEnabled.

* DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
* DumpRenderTree/TestOptions.h:
* DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):

LayoutTests:

* http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt: Added.
* http/tests/adClickAttribution/anchor-tag-attributes-reflect.html: Added.
* platform/win/TestExpectations:
    Skipped on Windows for now.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (240443 => 240444)


--- trunk/LayoutTests/ChangeLog	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/LayoutTests/ChangeLog	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1,3 +1,16 @@
+2019-01-24  John Wilander  <[email protected]>
+
+        Add Ad Click Attribution as an internal/experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=193685
+        <rdar://problem/47450399>
+
+        Reviewed by Brent Fulgham.
+
+        * http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt: Added.
+        * http/tests/adClickAttribution/anchor-tag-attributes-reflect.html: Added.
+        * platform/win/TestExpectations:
+            Skipped on Windows for now.
+
 2019-01-23  Oriol Brufau  <[email protected]>
 
         Allow failures in flaky tests from bug 193657

Added: trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt (0 => 240444)


--- trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt	2019-01-24 19:17:09 UTC (rev 240444)
@@ -0,0 +1,11 @@
+Test for the new ad click attribution attributes on anchor tags.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS anchorTag.adcampaignid is "40"
+PASS anchorTag.addestination is "destination.example"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect.html (0 => 240444)


--- trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect.html	                        (rev 0)
+++ trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect.html	2019-01-24 19:17:09 UTC (rev 240444)
@@ -0,0 +1,17 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AdClickAttributionEnabled=true ] -->
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <script src=""
+</head>
+<body>
+<a id="testTag" href="" adcampaignid="40" addestination="destination.example"></a>
+<script>
+    description("Test for the new ad click attribution attributes on anchor tags.");
+
+    const anchorTag = document.getElementById("testTag");
+    shouldBeEqualToString("anchorTag.adcampaignid", "40");
+    shouldBeEqualToString("anchorTag.addestination", "destination.example");
+</script>
+</body>
+</html>

Modified: trunk/LayoutTests/platform/win/TestExpectations (240443 => 240444)


--- trunk/LayoutTests/platform/win/TestExpectations	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/LayoutTests/platform/win/TestExpectations	2019-01-24 19:17:09 UTC (rev 240444)
@@ -110,6 +110,7 @@
 webkit.org/b/173281 editing/selection/selection-across-shadow-boundaries-readonly-2.html [ Skip ]
 webkit.org/b/173281 editing/selection/selection-across-shadow-boundaries-readonly-3.html [ Skip ]
 webkit.org/b/173281 editing/selection/selection-across-shadow-boundaries-user-select-all-1.html [ Skip ]
+webkit.org/b/193748 http/tests/adClickAttribution [ Skip ]
 
 # TODO HW filters not yet supported on Windows
 webkit.org/b/74716 css3/filters/effect-blur-hw.html [ Skip ]

Modified: trunk/Source/WebCore/ChangeLog (240443 => 240444)


--- trunk/Source/WebCore/ChangeLog	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebCore/ChangeLog	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1,3 +1,24 @@
+2019-01-24  John Wilander  <[email protected]>
+
+        Add Ad Click Attribution as an internal/experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=193685
+        <rdar://problem/47450399>
+
+        Reviewed by Brent Fulgham.
+
+        Test: http/tests/adClickAttribution/anchor-tag-attributes-reflect.html
+
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAnchorElement.idl:
+        * html/HTMLAttributeNames.in:
+            Addeed two new experimental attributes:
+            - adcampaignid: Ad campaign ID.
+            - addestination: Ad link destination site.
+        * page/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::adClickAttributionEnabled const):
+        (WebCore::RuntimeEnabledFeatures::setAdClickAttributionEnabled):
+        * page/Settings.yaml:
+
 2019-01-24  Youenn Fablet  <[email protected]>
 
         Use MonotonicTime in WorkerRunLoop

Modified: trunk/Source/WebCore/html/HTMLAnchorElement.idl (240443 => 240444)


--- trunk/Source/WebCore/html/HTMLAnchorElement.idl	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.idl	2019-01-24 19:17:09 UTC (rev 240444)
@@ -19,6 +19,8 @@
  */
 
 interface HTMLAnchorElement : HTMLElement {
+    [CEReactions=NotNeeded, EnabledAtRuntime=AdClickAttribution, Reflect] attribute DOMString adcampaignid;
+    [CEReactions=NotNeeded, EnabledAtRuntime=AdClickAttribution, Reflect] attribute DOMString addestination;
     [CEReactions=NotNeeded, Reflect] attribute DOMString charset;
     [CEReactions=NotNeeded, Reflect] attribute DOMString coords;
     [CEReactions=NotNeeded, Conditional=DOWNLOAD_ATTRIBUTE, EnabledAtRuntime=DownloadAttribute, Reflect] attribute DOMString download;

Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (240443 => 240444)


--- trunk/Source/WebCore/html/HTMLAttributeNames.in	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in	2019-01-24 19:17:09 UTC (rev 240444)
@@ -66,6 +66,8 @@
 aria-valuetext
 as
 async
+adcampaignid
+addestination
 autocomplete
 autofocus
 autoplay

Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (240443 => 240444)


--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2019-01-24 19:17:09 UTC (rev 240444)
@@ -341,6 +341,9 @@
     void setCSSLogicalEnabled(bool isEnabled) { m_CSSLogicalEnabled = isEnabled; }
     bool cssLogicalEnabled() const { return m_CSSLogicalEnabled; }
 
+    bool adClickAttributionEnabled() const { return m_adClickAttributionEnabled; }
+    void setAdClickAttributionEnabled(bool isEnabled) { m_adClickAttributionEnabled = isEnabled; }
+
     WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
 
 private:
@@ -516,6 +519,8 @@
 
     bool m_CSSLogicalEnabled { false };
 
+    bool m_adClickAttributionEnabled { false };
+
     friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
 };
 

Modified: trunk/Source/WebCore/page/Settings.yaml (240443 => 240444)


--- trunk/Source/WebCore/page/Settings.yaml	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebCore/page/Settings.yaml	2019-01-24 19:17:09 UTC (rev 240444)
@@ -788,3 +788,6 @@
 
 editableImagesEnabled:
   initial: false
+
+adClickAttributionEnabled:
+  initial: false

Modified: trunk/Source/WebKit/ChangeLog (240443 => 240444)


--- trunk/Source/WebKit/ChangeLog	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKit/ChangeLog	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1,3 +1,14 @@
+2019-01-24  John Wilander  <[email protected]>
+
+        Add Ad Click Attribution as an internal/experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=193685
+        <rdar://problem/47450399>
+
+        Reviewed by Brent Fulgham.
+
+        * Shared/WebPreferences.yaml:
+            Added AdClickAttributionEnabled as a runtime enabled feature, off by default.
+
 2019-01-24  Antti Koivisto  <[email protected]>
 
         [PSON] Flash on back navigation on Mac

Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (240443 => 240444)


--- trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1543,3 +1543,11 @@
   humanReadableDescription: "Enable CSS Logical Properties and Values"
   webcoreBinding: RuntimeEnabledFeatures
   category: internal
+
+AdClickAttributionEnabled:
+  type: bool
+  defaultValue: false
+  humanReadableName: "Ad Click Attribution"
+  humanReadableDescription: "Enable Ad Click Attribution for Cross-Site Link Navigations"
+  webcoreBinding: RuntimeEnabledFeatures
+  category: internal

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (240443 => 240444)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1,3 +1,21 @@
+2019-01-24  John Wilander  <[email protected]>
+
+        Add Ad Click Attribution as an internal/experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=193685
+        <rdar://problem/47450399>
+
+        Reviewed by Brent Fulgham.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences adClickAttributionEnabled]):
+        (-[WebPreferences setAdClickAttributionEnabled:]):
+            Added support for experimental ad click attribution.
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2019-01-24  Ross Kirsling  <[email protected]>
 
         Move FileSystem to WTF

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (240443 => 240444)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2019-01-24 19:17:09 UTC (rev 240444)
@@ -264,3 +264,4 @@
 #define WebKitServerTimingEnabledPreferenceKey @"WebKitServerTimingEnabled"
 #define WebKitSelectionAcrossShadowBoundariesEnabledPreferenceKey @"WebKitSelectionAcrossShadowBoundariesEnabled"
 #define WebKitCSSLogicalEnabledPreferenceKey @"WebKitCSSLogicalEnabled"
+#define WebKitAdClickAttributionEnabledPreferenceKey @"WebKitAdClickAttributionEnabled"

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (240443 => 240444)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2019-01-24 19:17:09 UTC (rev 240444)
@@ -670,6 +670,7 @@
 #endif
         [NSNumber numberWithBool:YES], WebKitSelectionAcrossShadowBoundariesEnabledPreferenceKey,
         [NSNumber numberWithBool:NO], WebKitCSSLogicalEnabledPreferenceKey,
+        [NSNumber numberWithBool:NO], WebKitAdClickAttributionEnabledPreferenceKey,
 #if ENABLE(INTERSECTION_OBSERVER)
         @NO, WebKitIntersectionObserverEnabledPreferenceKey,
 #endif
@@ -3390,6 +3391,16 @@
     [self _setBoolValue:flag forKey:WebKitCSSLogicalEnabledPreferenceKey];
 }
 
+- (BOOL)adClickAttributionEnabled
+{
+    return [self _boolValueForKey:WebKitAdClickAttributionEnabledPreferenceKey];
+}
+
+- (void)setAdClickAttributionEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitAdClickAttributionEnabledPreferenceKey];
+}
+
 @end
 
 @implementation WebPreferences (WebInternal)

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (240443 => 240444)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2019-01-24 19:17:09 UTC (rev 240444)
@@ -585,6 +585,9 @@
 - (void)setCSSLogicalEnabled:(BOOL)flag;
 - (BOOL)cssLogicalEnabled;
 
+- (BOOL)adClickAttributionEnabled;
+- (void)setAdClickAttributionEnabled:(BOOL)flag;
+
 @property (nonatomic) BOOL visualViewportEnabled;
 @property (nonatomic) BOOL visualViewportAPIEnabled;
 @property (nonatomic) BOOL CSSOMViewScrollingAPIEnabled;

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (240443 => 240444)


--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2019-01-24 19:17:09 UTC (rev 240444)
@@ -3079,6 +3079,8 @@
 
     RuntimeEnabledFeatures::sharedFeatures().setCSSLogicalEnabled([preferences cssLogicalEnabled]);
 
+    RuntimeEnabledFeatures::sharedFeatures().setAdClickAttributionEnabled([preferences adClickAttributionEnabled]);
+
     settings.setHiddenPageDOMTimerThrottlingEnabled([preferences hiddenPageDOMTimerThrottlingEnabled]);
 
     settings.setHiddenPageCSSAnimationSuspensionEnabled([preferences hiddenPageCSSAnimationSuspensionEnabled]);

Modified: trunk/Tools/ChangeLog (240443 => 240444)


--- trunk/Tools/ChangeLog	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Tools/ChangeLog	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1,3 +1,19 @@
+2019-01-24  John Wilander  <[email protected]>
+
+        Add Ad Click Attribution as an internal/experimental feature
+        https://bugs.webkit.org/show_bug.cgi?id=193685
+        <rdar://problem/47450399>
+
+        Reviewed by Brent Fulgham.
+
+        Added test option adClickAttributionEnabled.
+
+        * DumpRenderTree/TestOptions.cpp:
+        (TestOptions::TestOptions):
+        * DumpRenderTree/TestOptions.h:
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (setWebPreferencesForTestOptions):
+
 2019-01-24  Antti Koivisto  <[email protected]>
 
         [PSON] Flash on back navigation on Mac

Modified: trunk/Tools/DumpRenderTree/TestOptions.cpp (240443 => 240444)


--- trunk/Tools/DumpRenderTree/TestOptions.cpp	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Tools/DumpRenderTree/TestOptions.cpp	2019-01-24 19:17:09 UTC (rev 240444)
@@ -109,6 +109,8 @@
             enableWebGPU = parseBooleanTestHeaderValue(value);
         else if (key == "internal:CSSLogicalEnabled")
             enableCSSLogical = parseBooleanTestHeaderValue(value);
+        else if (key == "internal:AdClickAttributionEnabled")
+            adClickAttributionEnabled = parseBooleanTestHeaderValue(value);
         pairStart = pairEnd + 1;
     }
 }

Modified: trunk/Tools/DumpRenderTree/TestOptions.h (240443 => 240444)


--- trunk/Tools/DumpRenderTree/TestOptions.h	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Tools/DumpRenderTree/TestOptions.h	2019-01-24 19:17:09 UTC (rev 240444)
@@ -45,6 +45,7 @@
     bool enableSelectionAcrossShadowBoundaries { true };
     bool enableWebGPU { false };
     bool enableCSSLogical { false };
+    bool adClickAttributionEnabled { false };
     std::string jscOptions;
 
     TestOptions(const std::string& pathOrURL, const std::string& absolutePath);

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (240443 => 240444)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2019-01-24 18:35:05 UTC (rev 240443)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2019-01-24 19:17:09 UTC (rev 240444)
@@ -1011,6 +1011,7 @@
     preferences.selectionAcrossShadowBoundariesEnabled = options.enableSelectionAcrossShadowBoundaries;
     preferences.webGPUEnabled = options.enableWebGPU;
     preferences.CSSLogicalEnabled = options.enableCSSLogical;
+    preferences.adClickAttributionEnabled = options.adClickAttributionEnabled;
 }
 
 // Called once on DumpRenderTree startup.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to