WebKit Bugzilla
Attachment 369125 Details for
Bug 197614
: Introduce SPI to request modern compatibility mode but defer to site-specific quirks
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197614-20190506092825.patch (text/plain), 6.57 KB, created by
Wenson Hsieh
on 2019-05-06 09:28:26 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Wenson Hsieh
Created:
2019-05-06 09:28:26 PDT
Size:
6.57 KB
patch
obsolete
>Subversion Revision: 244956 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index c3aa76e21057b2b1bc2ae7c1a20dd1bb0e7bb5ef..f923c1f177614111e53f3b60c30b744df6464999 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,27 @@ >+2019-05-06 Wenson Hsieh <wenson_hsieh@apple.com> >+ >+ Introduce SPI to request modern compatibility mode but defer to site-specific quirks >+ https://bugs.webkit.org/show_bug.cgi?id=197614 >+ <rdar://problem/50208577> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add plumbing for a new _allowSiteSpecificQuirksToOverrideCompatibilityMode SPI property on >+ WKWebpagePreferences. >+ >+ * UIProcess/API/APIWebsitePolicies.cpp: >+ (API::WebsitePolicies::copy const): >+ * UIProcess/API/APIWebsitePolicies.h: >+ * UIProcess/API/Cocoa/WKWebpagePreferences.mm: >+ (-[WKWebpagePreferences _allowSiteSpecificQuirksToOverrideCompatibilityMode]): >+ (-[WKWebpagePreferences _setAllowSiteSpecificQuirksToOverrideCompatibilityMode:]): >+ * UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h: >+ * UIProcess/WebPageProxy.cpp: >+ >+ Use currentRequest instead of originalRequest; see internal change for more details. >+ >+ (WebKit::WebPageProxy::decidePolicyForNavigationAction): >+ > 2019-05-04 Alex Christensen <achristensen@webkit.org> > > Revert r244953 and r244954 because they broke internal builds. >diff --git a/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp b/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp >index aa95a4448d6e86b7a56cbafd35eccdb92bd95520..7e44338141341f901fcfdbac395125ca91c1cb36 100644 >--- a/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp >+++ b/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp >@@ -65,6 +65,7 @@ Ref<WebsitePolicies> WebsitePolicies::copy() const > for (auto& field : m_customHeaderFields) > customHeaderFields.append(WebCore::HTTPHeaderField(field)); > policies->setCustomHeaderFields(WTFMove(customHeaderFields)); >+ policies->setAllowSiteSpecificQuirksToOverrideCompatibilityMode(m_allowSiteSpecificQuirksToOverrideCompatibilityMode); > return policies; > } > >diff --git a/Source/WebKit/UIProcess/API/APIWebsitePolicies.h b/Source/WebKit/UIProcess/API/APIWebsitePolicies.h >index f2e11ff892221da1580c97c175b26c7a9ddad17c..f290b69b73b7ed64144c68d9bf6576be16881ce0 100644 >--- a/Source/WebKit/UIProcess/API/APIWebsitePolicies.h >+++ b/Source/WebKit/UIProcess/API/APIWebsitePolicies.h >@@ -101,6 +101,9 @@ public: > WebKit::WebsiteSimulatedMouseEventsDispatchPolicy simulatedMouseEventsDispatchPolicy() const { return m_simulatedMouseEventsDispatchPolicy; } > void setSimulatedMouseEventsDispatchPolicy(WebKit::WebsiteSimulatedMouseEventsDispatchPolicy policy) { m_simulatedMouseEventsDispatchPolicy = policy; } > >+ bool allowSiteSpecificQuirksToOverrideCompatibilityMode() const { return m_allowSiteSpecificQuirksToOverrideCompatibilityMode; } >+ void setAllowSiteSpecificQuirksToOverrideCompatibilityMode(bool value) { m_allowSiteSpecificQuirksToOverrideCompatibilityMode = value; } >+ > private: > WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebKit::WebsiteAutoplayQuirk>, WebKit::WebsiteAutoplayPolicy, Vector<WebCore::HTTPHeaderField>&&, WebKit::WebsitePopUpPolicy, RefPtr<WebsiteDataStore>&&); > >@@ -120,6 +123,7 @@ private: > WebKit::WebsiteMetaViewportPolicy m_metaViewportPolicy { WebKit::WebsiteMetaViewportPolicy::Default }; > WebKit::WebsiteMediaSourcePolicy m_mediaSourcePolicy { WebKit::WebsiteMediaSourcePolicy::Default }; > WebKit::WebsiteSimulatedMouseEventsDispatchPolicy m_simulatedMouseEventsDispatchPolicy { WebKit::WebsiteSimulatedMouseEventsDispatchPolicy::Default }; >+ bool m_allowSiteSpecificQuirksToOverrideCompatibilityMode { false }; > }; > > } // namespace API >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm >index 9f5cd76f2fe6130f0b5959a4ed8cb0ae0221874c..3922f1c5e269110a7fc5a76499a65f2df1df22f4 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm >@@ -276,6 +276,16 @@ - (NSString *)_customNavigatorPlatform > return _websitePolicies->customNavigatorPlatform(); > } > >+- (BOOL)_allowSiteSpecificQuirksToOverrideCompatibilityMode >+{ >+ return _websitePolicies->allowSiteSpecificQuirksToOverrideCompatibilityMode(); >+} >+ >+- (void)_setAllowSiteSpecificQuirksToOverrideCompatibilityMode:(BOOL)value >+{ >+ _websitePolicies->setAllowSiteSpecificQuirksToOverrideCompatibilityMode(value); >+} >+ > - (API::Object&)_apiObject > { > return *_websitePolicies; >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h b/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h >index 66a2ebc9ecc0430a8a0c69feb39d798e3ba8fb52..692f3296d7a9097c3dfd0b2fd87fde26b4454500 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h >@@ -67,5 +67,6 @@ typedef NS_OPTIONS(NSUInteger, _WKWebsiteDeviceOrientationAndMotionAccessPolicy) > @property (nonatomic, copy, setter=_setCustomJavaScriptUserAgentAsSiteSpecificQuirks:) NSString *_customJavaScriptUserAgentAsSiteSpecificQuirks; > @property (nonatomic, copy, setter=_setCustomNavigatorPlatform:) NSString *_customNavigatorPlatform; > @property (nonatomic, setter=_setDeviceOrientationAndMotionAccessPolicy:) _WKWebsiteDeviceOrientationAndMotionAccessPolicy _deviceOrientationAndMotionAccessPolicy; >+@property (nonatomic, setter=_setAllowSiteSpecificQuirksToOverrideCompatibilityMode:) BOOL _allowSiteSpecificQuirksToOverrideCompatibilityMode; > > @end >diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp >index e291eca0729bde15fa31cb04bafa5cb6db20f961..ac1130b9a5870ae889144b9340babcfe1027dcee 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.cpp >+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp >@@ -4614,7 +4614,7 @@ void WebPageProxy::decidePolicyForNavigationAction(Ref<WebProcessProxy>&& proces > policies = defaultPolicies->copy(); > } > if (policies) >- navigation->setEffectiveCompatibilityMode(effectiveCompatibilityModeAfterAdjustingPolicies(*policies, navigation->originalRequest())); >+ navigation->setEffectiveCompatibilityMode(effectiveCompatibilityModeAfterAdjustingPolicies(*policies, navigation->currentRequest())); > } > receivedNavigationPolicyDecision(policyAction, navigation.get(), processSwapRequestedByClient, frame, policies.get(), WTFMove(sender)); > };
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197614
: 369125