Changeset 243797 in webkit
- Timestamp:
- Apr 3, 2019 8:02:07 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r243796 r243797 1 2019-04-03 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Add plumbing for a compatibility mode preference in WebKit 4 https://bugs.webkit.org/show_bug.cgi?id=196005 5 6 Reviewed by Tim Horton. 7 8 Add plumbing between the Cocoa API object (WKWebpagePreferences) and the inner C++ API object 9 (API::WebsitePolicies) for compatibility mode. 10 11 * Shared/WebCompatibilityMode.h: Added. 12 * UIProcess/API/APIWebsitePolicies.h: 13 * UIProcess/API/Cocoa/WKWebpagePreferences.mm: 14 * UIProcess/Cocoa/NavigationState.mm: 15 (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): 16 * UIProcess/WebPageProxy.cpp: 17 (WebKit::WebPageProxy::adjustPoliciesForCompatibilityMode): 18 * UIProcess/WebPageProxy.h: 19 * UIProcess/ios/WebPageProxyIOS.mm: 20 * WebKit.xcodeproj/project.pbxproj: 21 1 22 2019-04-03 Carlos Garcia Campos <cgarcia@igalia.com> 2 23 -
trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.h
r242960 r243797 27 27 28 28 #include "APIObject.h" 29 #include "WebCompatibilityMode.h" 29 30 #include "WebsiteAutoplayPolicy.h" 30 31 #include "WebsiteAutoplayQuirk.h" … … 81 82 const WTF::String& customNavigatorPlatform() const { return m_customNavigatorPlatform; } 82 83 84 WebKit::WebCompatibilityMode preferredCompatibilityMode() const { return m_preferredCompatibilityMode; } 85 void setPreferredCompatibilityMode(WebKit::WebCompatibilityMode mode) { m_preferredCompatibilityMode = mode; } 86 83 87 private: 84 88 WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebKit::WebsiteAutoplayQuirk>, WebKit::WebsiteAutoplayPolicy, Vector<WebCore::HTTPHeaderField>&&, WebKit::WebsitePopUpPolicy, RefPtr<WebsiteDataStore>&&); … … 94 98 WTF::String m_customJavaScriptUserAgentAsSiteSpecificQuirks; 95 99 WTF::String m_customNavigatorPlatform; 100 WebKit::WebCompatibilityMode m_preferredCompatibilityMode { WebKit::WebCompatibilityMode::Default }; 96 101 }; 97 102 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm
r243726 r243797 29 29 #import "WKWebpagePreferencesInternal.h" 30 30 #import "WKWebsiteDataStoreInternal.h" 31 #import "WebCompatibilityMode.h" 31 32 #import "_WKWebsitePoliciesInternal.h" 32 33 #import <wtf/RetainPtr.h> … … 253 254 } 254 255 256 #if USE(APPLE_INTERNAL_SDK) 257 #import <WebKitAdditions/WKWebpagePreferencesAdditions.mm> 258 #endif 259 255 260 @end -
trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm
r243787 r243797 523 523 } 524 524 525 if (defaultWebsitePolicies) 526 webPage->adjustPoliciesForCompatibilityMode(navigationAction, *defaultWebsitePolicies); 527 525 528 if (!navigationAction->targetFrame()) { 526 529 listener->use(defaultWebsitePolicies.get()); … … 592 595 if (!apiWebsitePolicies->customNavigatorPlatform().isNull() && subframeNavigation) 593 596 [NSException raise:NSInvalidArgumentException format:@"WKWebpagePreferences._customNavigatorPlatform must be nil for subframe navigations."]; 597 598 webPageProxy->adjustPoliciesForCompatibilityMode(navigationAction, *apiWebsitePolicies); 594 599 } 595 600 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r243767 r243797 8903 8903 #endif // ENABLE(SPEECH_SYNTHESIS) 8904 8904 8905 #if !PLATFORM(IOS_FAMILY) || !USE(APPLE_INTERNAL_SDK) 8906 8907 void WebPageProxy::adjustPoliciesForCompatibilityMode(const API::NavigationAction&, API::WebsitePolicies&) 8908 { 8909 } 8910 8911 #endif // !PLATFORM(IOS_FAMILY) || !USE(APPLE_INTERNAL_SDK) 8912 8905 8913 void WebPageProxy::addObserver(WebViewDidMoveToWindowObserver& observer) 8906 8914 { -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r243630 r243797 1507 1507 1508 1508 void configureLoggingChannel(const String&, WTFLogChannelState, WTFLogLevel); 1509 void adjustPoliciesForCompatibilityMode(const API::NavigationAction&, API::WebsitePolicies&); 1509 1510 1510 1511 void addObserver(WebViewDidMoveToWindowObserver&); -
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r243630 r243797 29 29 #if PLATFORM(IOS_FAMILY) 30 30 31 #import "APINavigationAction.h" 31 32 #import "APIUIClient.h" 33 #import "APIWebsitePolicies.h" 32 34 #import "Connection.h" 33 35 #import "DataReference.h" … … 1242 1244 #endif 1243 1245 1246 #if USE(APPLE_INTERNAL_SDK) 1247 #import <WebKitAdditions/WebPageProxyIOSAdditions.mm> 1248 #endif 1249 1244 1250 } // namespace WebKit 1245 1251 -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r243787 r243797 1637 1637 ED82A7F2128C6FAF004477B3 /* WKBundlePageOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A22F0FF1289FCD90085E74F /* WKBundlePageOverlay.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1638 1638 F409BA181E6E64BC009DA28E /* WKDragDestinationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = F409BA171E6E64B3009DA28E /* WKDragDestinationAction.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1639 F430E94422473DFF005FE053 /* WebCompatibilityMode.h in Headers */ = {isa = PBXBuildFile; fileRef = F430E94322473DB8005FE053 /* WebCompatibilityMode.h */; }; 1639 1640 F438CD1C2241421400DE6DDA /* WKWebpagePreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = F438CD1B224140A600DE6DDA /* WKWebpagePreferences.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1640 1641 F438CD1F22414D4000DE6DDA /* WKWebpagePreferencesInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = F438CD1E22414D4000DE6DDA /* WKWebpagePreferencesInternal.h */; }; … … 4572 4573 F40D1B68220BDC0F00B49A01 /* WebAutocorrectionContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebAutocorrectionContext.h; path = ios/WebAutocorrectionContext.h; sourceTree = "<group>"; }; 4573 4574 F41056612130699A0092281D /* APIAttachmentCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = APIAttachmentCocoa.mm; sourceTree = "<group>"; }; 4575 F430E94322473DB8005FE053 /* WebCompatibilityMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebCompatibilityMode.h; sourceTree = "<group>"; }; 4574 4576 F438CD1B224140A600DE6DDA /* WKWebpagePreferences.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKWebpagePreferences.h; sourceTree = "<group>"; }; 4575 4577 F438CD1D22414AD600DE6DDA /* WKWebpagePreferences.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebpagePreferences.mm; sourceTree = "<group>"; }; … … 5164 5166 518D2CAC12D5153B003BB93B /* WebBackForwardListItem.h */, 5165 5167 BCF50726124329AA005955AE /* WebCertificateInfo.h */, 5168 F430E94322473DB8005FE053 /* WebCompatibilityMode.h */, 5166 5169 7C4ABECE1AA8E9F00088AA37 /* WebCompiledContentRuleList.cpp */, 5167 5170 7C4ABECF1AA8E9F00088AA37 /* WebCompiledContentRuleList.h */, … … 9528 9531 3F87B9C0158940D80090FF62 /* WebColorPicker.h in Headers */, 9529 9532 728E86F11795188C0087879E /* WebColorPickerMac.h in Headers */, 9533 F430E94422473DFF005FE053 /* WebCompatibilityMode.h in Headers */, 9530 9534 7C4ABED11AA8E9F00088AA37 /* WebCompiledContentRuleList.h in Headers */, 9531 9535 7C4ABED51AA8FCB80088AA37 /* WebCompiledContentRuleListData.h in Headers */, -
trunk/Tools/ChangeLog
r243794 r243797 1 2019-04-03 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Add plumbing for a compatibility mode preference in WebKit 4 https://bugs.webkit.org/show_bug.cgi?id=196005 5 6 Reviewed by Tim Horton. 7 8 Add new API tests. 9 10 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 11 * TestWebKitAPI/ios/PreferredCompatibilityMode.mm: Added. 12 1 13 2019-04-03 Claudio Saavedra <csaavedra@igalia.com> 2 14 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r243698 r243797 914 914 F4856CA31E649EA8009D7EE7 /* attachment-element.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4856CA21E6498A8009D7EE7 /* attachment-element.html */; }; 915 915 F486B1D01F67952300F34BDD /* DataTransfer-setDragImage.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F486B1CF1F6794FF00F34BDD /* DataTransfer-setDragImage.html */; }; 916 F48D6C10224B377000E3E2FB /* PreferredCompatibilityMode.mm in Sources */ = {isa = PBXBuildFile; fileRef = F48D6C0F224B377000E3E2FB /* PreferredCompatibilityMode.mm */; }; 916 917 F4A32EC41F05F3850047C544 /* dragstart-change-selection-offscreen.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4A32EC31F05F3780047C544 /* dragstart-change-selection-offscreen.html */; }; 917 918 F4A32ECB1F0643370047C544 /* contenteditable-in-iframe.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F4A32ECA1F0642F40047C544 /* contenteditable-in-iframe.html */; }; … … 2289 2290 F4856CA21E6498A8009D7EE7 /* attachment-element.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "attachment-element.html"; sourceTree = "<group>"; }; 2290 2291 F486B1CF1F6794FF00F34BDD /* DataTransfer-setDragImage.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "DataTransfer-setDragImage.html"; sourceTree = "<group>"; }; 2292 F48D6C0F224B377000E3E2FB /* PreferredCompatibilityMode.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PreferredCompatibilityMode.mm; sourceTree = "<group>"; }; 2291 2293 F493247C1F44DF8D006F4336 /* UIKitSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIKitSPI.h; sourceTree = "<group>"; }; 2292 2294 F4A32EC31F05F3780047C544 /* dragstart-change-selection-offscreen.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "dragstart-change-selection-offscreen.html"; sourceTree = "<group>"; }; … … 2720 2722 2E7765CC16C4D80A00BA2BB1 /* mainIOS.mm */, 2721 2723 2D61EC3021B0B75C00A7D1CB /* PencilKitTestSPI.h */, 2724 F48D6C0F224B377000E3E2FB /* PreferredCompatibilityMode.mm */, 2722 2725 F4517B652054C49500C26721 /* TestWKWebViewController.h */, 2723 2726 F4517B662054C49500C26721 /* TestWKWebViewController.mm */, … … 4247 4250 7CCE7F261A411AF600447C4C /* Preferences.mm in Sources */, 4248 4251 CD227E44211A4D5D00D285AF /* PreferredAudioBufferSize.mm in Sources */, 4252 F48D6C10224B377000E3E2FB /* PreferredCompatibilityMode.mm in Sources */, 4249 4253 7C1AF7951E8DCBAB002645B9 /* PrepareForMoveToWindow.mm in Sources */, 4250 4254 7CCE7F0B1A411AE600447C4C /* PreventEmptyUserAgent.cpp in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.