Title: [205379] trunk
Revision
205379
Author
[email protected]
Date
2016-09-02 15:52:13 -0700 (Fri, 02 Sep 2016)

Log Message

WebKitTestRunner needs layoutTestController.setDashboardCompatibilityMode
https://bugs.webkit.org/show_bug.cgi?id=42547
Source/WebKit2:

Reviewed by Darin Adler.

Added access to setUseDashBoardCompatibilityMode for WebKit2.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Ditto.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setUseDashboardCompatibilityMode): Ditto.
* WebProcess/InjectedBundle/InjectedBundle.h: Ditto.

Tools:

Reviewed by Darin Adler.

Added _javascript_ bindings and C++ implementation of setUseDashboardCompatibilityMode for the WebKit2 sTestRunner.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Added dashboard compatiblity mode setter.
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting): Reset dashboard compatibility mode.
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setJavaScriptCanAccessClipboard): Code style changes.
(WTR::TestRunner::setPrivateBrowsingEnabled): Code style changes.
(WTR::TestRunner::setUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.
(WTR::TestRunner::setPopupBlockingEnabled): Code style changes.
(WTR::TestRunner::setAuthorAndUserStylesEnabled): Code style changes.
(WTR::TestRunner::addOriginAccessWhitelistEntry): Code style changes.
* WebKitTestRunner/InjectedBundle/TestRunner.h: Added dashboard compatiblity mode setter.

LayoutTests:

Reviewed by Darin Adler.

The addition of setUseDashboardCompatibilityMode to the WebKit2 TestRunner means the set of tests removed from the expected failures list now pass.
Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.

* platform/ios-simulator-wk2/TestExpectations:  Changed reason test was excluded.
* platform/wk2/TestExpectations: Remove tests which use setUseDashboardCompatibilityMode from expected failures.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (205378 => 205379)


--- trunk/LayoutTests/ChangeLog	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/LayoutTests/ChangeLog	2016-09-02 22:52:13 UTC (rev 205379)
@@ -1,3 +1,16 @@
+2016-09-02  Jonathan Bedard  <[email protected]>
+
+        WebKitTestRunner needs layoutTestController.setDashboardCompatibilityMode
+        https://bugs.webkit.org/show_bug.cgi?id=42547
+
+        Reviewed by Darin Adler.
+
+        The addition of setUseDashboardCompatibilityMode to the WebKit2 TestRunner means the set of tests removed from the expected failures list now pass.
+        Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.
+
+        * platform/ios-simulator-wk2/TestExpectations:  Changed reason test was excluded.
+        * platform/wk2/TestExpectations: Remove tests which use setUseDashboardCompatibilityMode from expected failures.
+
 2016-09-02  Ryan Haddad  <[email protected]>
 
         Marking editing/pasteboard/5478250.html as flaky on mac-wk2.

Modified: trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations (205378 => 205379)


--- trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/LayoutTests/platform/ios-simulator-wk2/TestExpectations	2016-09-02 22:52:13 UTC (rev 205379)
@@ -90,8 +90,13 @@
 scrollbars/scrolling-by-page-on-keyboard-spacebar.html [ Failure ]
 scrollbars/scrollbars-on-positioned-content.html [ Failure ]
 
-# WebKitTestRunner needs testRunner.setUseDashboardCompatibilityMode
-mathml/mathml-in-dashboard.html [ Skip ]
+# iOS doesn’t support dashboard.
+mathml/mathml-in-dashboard.html [ Failure ]
+svg/custom/embedded-svg-allowed-in-dashboard.xml [ Failure ]
+svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html [ Failure ]
+svg/custom/manually-parsed-svg-allowed-in-dashboard.html [ Failure ]
+svg/custom/svg-allowed-in-dashboard-object.html [ Failure ]
+http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html [ Failure ]
 
 # SVG tests that time out (these require EventSender)
 svg/animations/animVal-basics.html
@@ -264,7 +269,6 @@
 imported/mozilla/svg/image/image-y-01.svg [ ImageOnlyFailure ]
 imported/mozilla/svg/text/text-shadow.svg [ ImageOnlyFailure ]
 svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg [ ImageOnlyFailure ]
-svg/custom/embedded-svg-allowed-in-dashboard.xml [ Failure ]
 svg/custom/focus-event-handling-keyboard.xhtml [ Failure ]
 svg/custom/focus-event-handling.xhtml [ Failure ]
 svg/custom/foreignObject-crash-on-hover.xml [ Failure ]
@@ -274,8 +278,6 @@
 svg/custom/hover-default-fill.svg [ Failure ]
 svg/custom/image-clipped-hit.svg [ Failure ]
 svg/custom/invisible-text-after-scrolling.xhtml [ Failure ]
-svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html [ Failure ]
-svg/custom/manually-parsed-svg-allowed-in-dashboard.html [ Failure ]
 svg/custom/marker-changes.svg [ Failure ]
 svg/custom/non-scaling-stroke-update.svg [ ImageOnlyFailure ]
 svg/custom/pointer-events-image-css-transform.svg [ Failure ]
@@ -285,7 +287,6 @@
 svg/custom/pointer-events-text.svg [ Failure ]
 svg/custom/polyline-hittest.svg [ Failure ]
 svg/custom/stroke-width-click.svg [ Failure ]
-svg/custom/svg-allowed-in-dashboard-object.html [ Failure ]
 svg/custom/svg-fonts-fallback.xhtml [ Failure ]
 svg/custom/text-hit-test.svg [ Failure ]
 svg/custom/use-clipped-hit.svg [ Failure ]
@@ -376,7 +377,6 @@
 http/tests/security/redirect-BLOCKED-to-localURL.html [ Failure ]
 http/tests/security/setDomainRelaxationForbiddenForURLScheme.html [ Failure ]
 http/tests/uri/css-href.php [ Failure ]
-http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html [ Failure ]
 
 # HTTP tests that assert:
 http/tests/navigation/new-window-redirect-history.html

Modified: trunk/LayoutTests/platform/win/TestExpectations (205378 => 205379)


--- trunk/LayoutTests/platform/win/TestExpectations	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/LayoutTests/platform/win/TestExpectations	2016-09-02 22:52:13 UTC (rev 205379)
@@ -105,7 +105,7 @@
 # testRunner.setAlwaysAcceptCookies() is not implemented on Windows.
 http/tests/xmlhttprequest/cross-origin-cookie-storage.html [ Skip ]
 
-# TODO No Dashboard compatibility mode on Windows
+# No Dashboard compatibility mode on Windows.
 http/tests/xmlhttprequest/default-content-type-dashboard.html [ Skip ]
 http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html [ Skip ]
 svg/custom/embedded-svg-allowed-in-dashboard.xml [ Skip ]

Modified: trunk/LayoutTests/platform/wk2/TestExpectations (205378 => 205379)


--- trunk/LayoutTests/platform/wk2/TestExpectations	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/LayoutTests/platform/wk2/TestExpectations	2016-09-02 22:52:13 UTC (rev 205379)
@@ -113,16 +113,6 @@
 platform/mac/fast/text/attributed-substring-from-range.html
 platform/mac/fast/text/justified-text-rect.html
 
-# WebKitTestRunner needs testRunner.setDashboardCompatibilityMode
-# <https://bugs.webkit.org/show_bug.cgi?id=42547>
-fast/canvas/canvas-gradient-addStop-error.html
-http/tests/xmlhttprequest/default-content-type-dashboard.html
-http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html
-svg/custom/embedded-svg-allowed-in-dashboard.xml
-svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html
-svg/custom/manually-parsed-svg-allowed-in-dashboard.html
-svg/custom/svg-allowed-in-dashboard-object.html
-
 # WebKitTestRunner needs testRunner.setMainFrameIsFirstResponder
 # <https://bugs.webkit.org/show_bug.cgi?id=42685>
 editing/selection/caret-and-focus-ring.html
@@ -302,10 +292,6 @@
 fast/frames/location-redirect-user-gesture.html
 fast/frames/meta-refresh-user-gesture.html
 
-# WebKitTestRunner needs testRunner.setUseDashboardCompatibilityMode
-platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk.html [ Skip ]
-mathml/mathml-in-dashboard.html [ Skip ]
-
 # WebKitTestRunner needs testRunner.addURLToRedirect
 http/tests/loading/cross-origin-XHR-willLoadRequest.html
 

Modified: trunk/Source/WebKit2/ChangeLog (205378 => 205379)


--- trunk/Source/WebKit2/ChangeLog	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Source/WebKit2/ChangeLog	2016-09-02 22:52:13 UTC (rev 205379)
@@ -1,3 +1,20 @@
+2016-09-02  Jonathan Bedard  <[email protected]>
+
+        WebKitTestRunner needs layoutTestController.setDashboardCompatibilityMode
+        https://bugs.webkit.org/show_bug.cgi?id=42547
+
+        Reviewed by Darin Adler.
+
+        Added access to setUseDashBoardCompatibilityMode for WebKit2.
+        Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.
+
+        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+        (WKBundleSetUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.
+        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Ditto.
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::setUseDashboardCompatibilityMode): Ditto.
+        * WebProcess/InjectedBundle/InjectedBundle.h: Ditto.
+
 2016-09-02  Joseph Pecoraro  <[email protected]>
 
         [Mac] RetainPtr misuse, AnimationController leaks

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp (205378 => 205379)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp	2016-09-02 22:52:13 UTC (rev 205379)
@@ -165,6 +165,11 @@
     toImpl(bundleRef)->setPrivateBrowsingEnabled(toImpl(pageGroupRef), enabled);
 }
 
+void WKBundleSetUseDashboardCompatibilityMode(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled)
+{
+    toImpl(bundleRef)->setUseDashboardCompatibilityMode(toImpl(pageGroupRef), enabled);
+}
+
 void WKBundleSetPopupBlockingEnabled(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled)
 {
     toImpl(bundleRef)->setPopupBlockingEnabled(toImpl(pageGroupRef), enabled);

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h (205378 => 205379)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h	2016-09-02 22:52:13 UTC (rev 205379)
@@ -51,6 +51,7 @@
 WK_EXPORT void WKBundleSetJavaScriptCanAccessClipboard(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetAutomaticLinkDetectionEnabled(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled);
 WK_EXPORT void WKBundleSetPrivateBrowsingEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
+WK_EXPORT void WKBundleSetUseDashboardCompatibilityMode(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetPopupBlockingEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetAuthorAndUserStylesEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);
 WK_EXPORT void WKBundleSetSpatialNavigationEnabled(WKBundleRef bundle, WKBundlePageGroupRef pageGroup, bool enabled);

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp (205378 => 205379)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp	2016-09-02 22:52:13 UTC (rev 205379)
@@ -327,6 +327,14 @@
         (*iter)->enableLegacyPrivateBrowsing(enabled);
 }
 
+void InjectedBundle::setUseDashboardCompatibilityMode(WebPageGroupProxy* pageGroup, bool enabled)
+{
+#if ENABLE(DASHBOARD_SUPPORT)
+    for (auto& page : PageGroup::pageGroup(pageGroup->identifier())->pages())
+        page->settings().setUsesDashboardBackwardCompatibilityMode(enabled);
+#endif
+}
+
 void InjectedBundle::setPopupBlockingEnabled(WebPageGroupProxy* pageGroup, bool enabled)
 {
     const HashSet<Page*>& pages = PageGroup::pageGroup(pageGroup->identifier())->pages();

Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h (205378 => 205379)


--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h	2016-09-02 22:52:13 UTC (rev 205379)
@@ -108,6 +108,7 @@
     void setJavaScriptCanAccessClipboard(WebPageGroupProxy*, bool);
     void setAutomaticLinkDetectionEnabled(WebPageGroupProxy*, bool enabled);
     void setPrivateBrowsingEnabled(WebPageGroupProxy*, bool);
+    void setUseDashboardCompatibilityMode(WebPageGroupProxy*, bool);
     void setPopupBlockingEnabled(WebPageGroupProxy*, bool);
     void setAuthorAndUserStylesEnabled(WebPageGroupProxy*, bool);
     void setSpatialNavigationEnabled(WebPageGroupProxy*, bool);

Modified: trunk/Tools/ChangeLog (205378 => 205379)


--- trunk/Tools/ChangeLog	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Tools/ChangeLog	2016-09-02 22:52:13 UTC (rev 205379)
@@ -1,3 +1,25 @@
+2016-09-02  Jonathan Bedard  <[email protected]>
+
+        WebKitTestRunner needs layoutTestController.setDashboardCompatibilityMode
+        https://bugs.webkit.org/show_bug.cgi?id=42547
+ 
+        Reviewed by Darin Adler.
+
+        Added _javascript_ bindings and C++ implementation of setUseDashboardCompatibilityMode for the WebKit2 sTestRunner.
+        Note: this bug mistakenly called this function setDashboardCompatibilityMode, it is actually setUseDashboardCompatibilityMode.
+
+        * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Added dashboard compatiblity mode setter.
+        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+        (WTR::InjectedBundle::beginTesting): Reset dashboard compatibility mode.
+        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+        (WTR::TestRunner::setJavaScriptCanAccessClipboard): Code style changes.
+        (WTR::TestRunner::setPrivateBrowsingEnabled): Code style changes.
+        (WTR::TestRunner::setUseDashboardCompatibilityMode): Added dashboard compatiblity mode setter.
+        (WTR::TestRunner::setPopupBlockingEnabled): Code style changes.
+        (WTR::TestRunner::setAuthorAndUserStylesEnabled): Code style changes.
+        (WTR::TestRunner::addOriginAccessWhitelistEntry): Code style changes.
+        * WebKitTestRunner/InjectedBundle/TestRunner.h: Added dashboard compatiblity mode setter.
+
 2016-09-02  Jer Noble  <[email protected]>
 
         Unreviewed build fix: restore storyboard files to Xcode 7-compatability.

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl (205378 => 205379)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl	2016-09-02 22:52:13 UTC (rev 205379)
@@ -64,6 +64,7 @@
     void setJavaScriptCanAccessClipboard(boolean value);
     void setAutomaticLinkDetectionEnabled(boolean value);
     void setPrivateBrowsingEnabled(boolean value);
+    void setUseDashboardCompatibilityMode(boolean value);
     void setPopupBlockingEnabled(boolean value);
     void setAuthorAndUserStylesEnabled(boolean value);
     void setCustomPolicyDelegate(boolean enabled, boolean permissive);

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp (205378 => 205379)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp	2016-09-02 22:52:13 UTC (rev 205379)
@@ -296,6 +296,7 @@
     WKBundleSetJavaScriptCanAccessClipboard(m_bundle, m_pageGroup, true);
     WKBundleSetAutomaticLinkDetectionEnabled(m_bundle, m_pageGroup, false);
     WKBundleSetPrivateBrowsingEnabled(m_bundle, m_pageGroup, false);
+    WKBundleSetUseDashboardCompatibilityMode(m_bundle, m_pageGroup, false);
     WKBundleSetAuthorAndUserStylesEnabled(m_bundle, m_pageGroup, true);
     WKBundleSetFrameFlatteningEnabled(m_bundle, m_pageGroup, false);
     WKBundleSetMinimumLogicalFontSize(m_bundle, m_pageGroup, 9);

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (205378 => 205379)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp	2016-09-02 22:52:13 UTC (rev 205379)
@@ -408,7 +408,7 @@
 void TestRunner::setJavaScriptCanAccessClipboard(bool enabled)
 {
     auto& injectedBundle = InjectedBundle::singleton();
-     WKBundleSetJavaScriptCanAccessClipboard(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
+    WKBundleSetJavaScriptCanAccessClipboard(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
 }
 
 void TestRunner::setAutomaticLinkDetectionEnabled(bool enabled)
@@ -420,19 +420,27 @@
 void TestRunner::setPrivateBrowsingEnabled(bool enabled)
 {
     auto& injectedBundle = InjectedBundle::singleton();
-     WKBundleSetPrivateBrowsingEnabled(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
+    WKBundleSetPrivateBrowsingEnabled(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
 }
 
+void TestRunner::setUseDashboardCompatibilityMode(bool enabled)
+{
+#if ENABLE(DASHBOARD_SUPPORT)
+    auto& injectedBundle = InjectedBundle::singleton();
+    WKBundleSetUseDashboardCompatibilityMode(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
+#endif
+}
+    
 void TestRunner::setPopupBlockingEnabled(bool enabled)
 {
     auto& injectedBundle = InjectedBundle::singleton();
-     WKBundleSetPopupBlockingEnabled(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
+    WKBundleSetPopupBlockingEnabled(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
 }
 
 void TestRunner::setAuthorAndUserStylesEnabled(bool enabled)
 {
     auto& injectedBundle = InjectedBundle::singleton();
-     WKBundleSetAuthorAndUserStylesEnabled(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
+    WKBundleSetAuthorAndUserStylesEnabled(injectedBundle.bundle(), injectedBundle.pageGroup(), enabled);
 }
 
 void TestRunner::addOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains)

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h (205378 => 205379)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h	2016-09-02 22:44:15 UTC (rev 205378)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h	2016-09-02 22:52:13 UTC (rev 205379)
@@ -111,6 +111,7 @@
     void setJavaScriptCanAccessClipboard(bool);
     void setAutomaticLinkDetectionEnabled(bool);
     void setPrivateBrowsingEnabled(bool);
+    void setUseDashboardCompatibilityMode(bool);
     void setPopupBlockingEnabled(bool);
     void setAuthorAndUserStylesEnabled(bool);
     void setCustomPolicyDelegate(bool enabled, bool permissive = false);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to