Diff
Modified: trunk/Source/WebKit2/ChangeLog (164665 => 164666)
--- trunk/Source/WebKit2/ChangeLog 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/ChangeLog 2014-02-25 21:10:14 UTC (rev 164666)
@@ -1,3 +1,35 @@
+2014-02-25 Dan Bernstein <[email protected]>
+
+ [Cocoa] Add delegate method for customizing actions on activated elements
+ https://bugs.webkit.org/show_bug.cgi?id=129290
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added. Declared new delegate method.
+
+ * UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
+ (_WKActivatedElementType): Defined enum of element types.
+ * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
+ (-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:]): Added type parameter
+ to the initializer, used to set the new type property.
+ * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
+
+ * UIProcess/Cocoa/UIClient.h:
+ * UIProcess/Cocoa/UIClient.mm:
+ (WebKit::UIClient::setDelegate): Initialize webViewActionsForElementDefaultActions member
+ of m_delegateMethods.
+ (WebKit::UIClient::actionsForElement): Added. Calls out to the new delegate method if
+ implemented. Otherwise returns the default actions.
+
+ * UIProcess/ios/WKActionSheetAssistant.mm:
+ (-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Use new _elementInfo ivar
+ instead of creating element info here.
+ (-[WKActionSheetAssistant showImageSheet]): Create element info here and assign it to
+ _elementInfo ivar if presenting a sheet. Call the UI client to get custom actions.
+ (-[WKActionSheetAssistant showLinkSheet]): Ditto.
+ (-[WKActionSheetAssistant cleanupSheet]): Clear _elementInfo ivar.
+ * WebKit2.xcodeproj/project.pbxproj: Added reference to WKUIDelegatePrivate.h.
+
2014-02-25 Michał Pakuła vel Rutka <[email protected]>
Unreviewed EFL build fix attempt after r164562
Added: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h (0 => 164666)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h 2014-02-25 21:10:14 UTC (rev 164666)
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+#import <WebKit2/WKUIDelegate.h>
+
+#if WK_API_ENABLED
+
+#import <WebKit2/_WKActivatedElementInfo.h>
+
+@protocol WKUIDelegatePrivate <WKUIDelegate>
+
+@optional
+
+#if TARGET_OS_IPHONE
+- (NSArray *)_webView:(WKWebView *)webView actionsForElement:(_WKActivatedElementInfo *)element defaultActions:(NSArray *)defaultActions;
+#endif
+
+@end
+
+#endif // WK_API_ENABLED
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.h (164665 => 164666)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.h 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.h 2014-02-25 21:10:14 UTC (rev 164666)
@@ -29,11 +29,17 @@
#import <Foundation/Foundation.h>
+typedef NS_ENUM(NSInteger, _WKActivatedElementType) {
+ _WKActivatedElementTypeLink,
+ _WKActivatedElementTypeImage,
+};
+
WK_API_CLASS
@interface _WKActivatedElementInfo : NSObject
@property (nonatomic, readonly) NSURL *URL;
@property (nonatomic, readonly) NSString *title;
+@property (nonatomic, readonly) _WKActivatedElementType type;
@end
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.mm (164665 => 164666)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.mm 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfo.mm 2014-02-25 21:10:14 UTC (rev 164666)
@@ -37,7 +37,7 @@
CGRect _boundingRect;
}
-- (instancetype)_initWithURL:(NSURL *)url location:(CGPoint)location title:(NSString *)title rect:(CGRect)rect
+- (instancetype)_initWithType:(_WKActivatedElementType)type URL:(NSURL *)url location:(CGPoint)location title:(NSString *)title rect:(CGRect)rect
{
if (!(self = [super init]))
return nil;
@@ -46,6 +46,7 @@
_interactionLocation = location;
_title = adoptNS([title copy]);
_boundingRect = rect;
+ _type = type;
return self;
}
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h (164665 => 164666)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h 2014-02-25 21:10:14 UTC (rev 164666)
@@ -29,7 +29,7 @@
@interface _WKActivatedElementInfo ()
-- (instancetype)_initWithURL:(NSURL *)url location:(CGPoint)location title:(NSString *)title rect:(CGRect)rect;
+- (instancetype)_initWithType:(_WKActivatedElementType)type URL:(NSURL *)url location:(CGPoint)location title:(NSString *)title rect:(CGRect)rect;
@property (nonatomic, readonly) CGPoint _interactionLocation;
@property (nonatomic, readonly) CGRect _boundingRect;
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h (164665 => 164666)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.h 2014-02-25 21:10:14 UTC (rev 164666)
@@ -34,6 +34,7 @@
#import "WeakObjCPtr.h"
#import <wtf/RetainPtr.h>
+@class _WKActivatedElementInfo;
@class WKWebView;
@protocol WKUIDelegate;
@@ -47,6 +48,8 @@
RetainPtr<id <WKUIDelegate> > delegate();
void setDelegate(id <WKUIDelegate>);
+ NSArray *actionsForElement(_WKActivatedElementInfo *, NSArray *defaultActions);
+
private:
// API::UIClient
virtual void runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String&, WebKit::WebFrameProxy*, std::function<void ()> completionHandler) override;
@@ -60,6 +63,9 @@
bool webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler : 1;
bool webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler : 1;
bool webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler : 1;
+#if PLATFORM(IOS)
+ bool webViewActionsForElementDefaultActions : 1;
+#endif
} m_delegateMethods;
};
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm (164665 => 164666)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UIClient.mm 2014-02-25 21:10:14 UTC (rev 164666)
@@ -29,7 +29,7 @@
#if WK_API_ENABLED
#import "WKFrameInfoInternal.h"
-#import "WKUIDelegate.h"
+#import "WKUIDelegatePrivate.h"
namespace WebKit {
@@ -54,8 +54,26 @@
m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:)];
m_delegateMethods.webViewRunJavaScriptConfirmPanelWithMessageInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:)];
m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler = [delegate respondsToSelector:@selector(webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:)];
+#if PLATFORM(IOS)
+ m_delegateMethods.webViewActionsForElementDefaultActions = [delegate respondsToSelector:@selector(_webView:actionsForElement:defaultActions:)];
+#endif
}
+NSArray *UIClient::actionsForElement(_WKActivatedElementInfo *elementInfo, NSArray *defaultActions)
+{
+#if PLATFORM(IOS)
+ if (!m_delegateMethods.webViewRunJavaScriptTextInputPanelWithPromptDefaultTextInitiatedByFrameCompletionHandler)
+ return defaultActions;
+
+ auto delegate = m_delegate.get();
+ if (!delegate)
+ return defaultActions;
+
+ return [(id <WKUIDelegatePrivate>)delegate _webView:m_webView actionsForElement:elementInfo defaultActions:defaultActions];
+#endif
+ return defaultActions;
+}
+
void UIClient::runJavaScriptAlert(WebKit::WebPageProxy*, const WTF::String& message, WebKit::WebFrameProxy* webFrameProxy, std::function<void ()> completionHandler)
{
if (!m_delegateMethods.webViewRunJavaScriptAlertPanelWithMessageInitiatedByFrameCompletionHandler) {
Modified: trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm (164665 => 164666)
--- trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm 2014-02-25 21:10:14 UTC (rev 164666)
@@ -28,6 +28,7 @@
#import "_WKActivatedElementInfoInternal.h"
#import "_WKElementActionInternal.h"
+#import "UIClient.h"
#import "WKActionSheet.h"
#import "WKContentViewInteraction.h"
#import "WebPageProxy.h"
@@ -53,8 +54,11 @@
SOFT_LINK_PRIVATE_FRAMEWORK(DataDetectorsUI)
SOFT_LINK_CLASS(DataDetectorsUI, DDDetectionController)
+using namespace WebKit;
+
@implementation WKActionSheetAssistant {
RetainPtr<WKActionSheet> _interactionSheet;
+ RetainPtr<_WKActivatedElementInfo> _elementInfo;
RetainPtr<NSArray> _elementActions;
WKContentView *_view;
}
@@ -154,12 +158,8 @@
if (actionSheet != _interactionSheet)
return;
- if (_elementActions && buttonIndex < (NSInteger)[_elementActions count]) {
- _WKActivatedElementInfo *actionInfo = [[_WKActivatedElementInfo alloc] _initWithURL:[NSURL URLWithString:_view.positionInformation.url]
- location:_view.positionInformation.point title:_view.positionInformation.title rect:_view.positionInformation.bounds];
- [[_elementActions objectAtIndex:buttonIndex] _runActionWithElementInfo:actionInfo view:_view];
- [actionInfo release];
- }
+ if (_elementActions && buttonIndex < (NSInteger)[_elementActions count])
+ [[_elementActions objectAtIndex:buttonIndex] _runActionWithElementInfo:_elementInfo.get() view:_view];
[self cleanupSheet];
}
@@ -215,24 +215,35 @@
- (void)showImageSheet
{
ASSERT(!_interactionSheet);
+ ASSERT(!_elementInfo);
- NSURL *targetURL = [NSURL URLWithString:_view.positionInformation.url];
- NSMutableArray *actions = [NSMutableArray array];
- if (!_view.positionInformation.url.isEmpty())
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeOpen]];
+ const auto& positionInformation = _view.positionInformation;
+
+ NSURL *targetURL = [NSURL URLWithString:positionInformation.url];
+ NSMutableArray *defaultActions = [NSMutableArray array];
+ if (!positionInformation.url.isEmpty())
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeOpen]];
if ([getSSReadingListClass() supportsURL:targetURL])
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeAddToReadingList]];
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeAddToReadingList]];
if (TCCAccessPreflight(getkTCCServicePhotos(), NULL) != kTCCAccessPreflightDenied)
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeSaveImage]];
- if (![[targetURL scheme] length] || [[targetURL scheme] caseInsensitiveCompare:@"_javascript_"] != NSOrderedSame)
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeCopy]];
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeSaveImage]];
+ if (!targetURL.scheme.length || [targetURL.scheme caseInsensitiveCompare:@"_javascript_"] != NSOrderedSame)
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeCopy]];
- // FIXME: Add call to delegate to add custom actions.
+ RetainPtr<_WKActivatedElementInfo> elementInfo = adoptNS([[_WKActivatedElementInfo alloc] _initWithType:_WKActivatedElementTypeImage
+ URL:targetURL location:positionInformation.point title:positionInformation.title rect:positionInformation.bounds]);
- [self _createSheetWithElementActions:actions showLinkTitle:YES];
+ RetainPtr<NSArray> actions = static_cast<UIClient&>(_view.page->uiClient()).actionsForElement(elementInfo.get(), [[defaultActions copy] autorelease]);
+
+ if (![actions count])
+ return;
+
+ [self _createSheetWithElementActions:actions.get() showLinkTitle:YES];
if (!_interactionSheet)
return;
+ _elementInfo = std::move(elementInfo);
+
if (![_interactionSheet presentSheet])
[self actionSheet:_interactionSheet.get() clickedButtonAtIndex:[_interactionSheet cancelButtonIndex]];
}
@@ -240,23 +251,35 @@
- (void)showLinkSheet
{
ASSERT(!_interactionSheet);
- NSURL *targetURL = [NSURL URLWithString:_view.positionInformation.url];
+ ASSERT(!_elementInfo);
+
+ const auto& positionInformation = _view.positionInformation;
+
+ NSURL *targetURL = [NSURL URLWithString:positionInformation.url];
if (!targetURL)
return;
- NSMutableArray *actions = [NSMutableArray array];
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeOpen]];
+ NSMutableArray *defaultActions = [NSMutableArray array];
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeOpen]];
if ([getSSReadingListClass() supportsURL:targetURL])
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeAddToReadingList]];
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeAddToReadingList]];
if (![[targetURL scheme] length] || [[targetURL scheme] caseInsensitiveCompare:@"_javascript_"] != NSOrderedSame)
- [actions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeCopy]];
+ [defaultActions addObject:[_WKElementAction elementActionWithType:_WKElementActionTypeCopy]];
- // FIXME: Add call to delegate to add custom actions.
+ RetainPtr<_WKActivatedElementInfo> elementInfo = adoptNS([[_WKActivatedElementInfo alloc] _initWithType:_WKActivatedElementTypeLink
+ URL:targetURL location:positionInformation.point title:positionInformation.title rect:positionInformation.bounds]);
- [self _createSheetWithElementActions:actions showLinkTitle:YES];
+ RetainPtr<NSArray> actions = static_cast<UIClient&>(_view.page->uiClient()).actionsForElement(elementInfo.get(), [[defaultActions copy] autorelease]);
+
+ if (![actions count])
+ return;
+
+ [self _createSheetWithElementActions:actions.get() showLinkTitle:YES];
if (!_interactionSheet)
return;
+ _elementInfo = std::move(elementInfo);
+
if (![_interactionSheet presentSheet])
[self actionSheet:_interactionSheet.get() clickedButtonAtIndex:[_interactionSheet cancelButtonIndex]];
}
@@ -321,6 +344,7 @@
[_interactionSheet setSheetDelegate:nil];
[_interactionSheet setDelegate:nil];
_interactionSheet = nil;
+ _elementInfo = nil;
_elementActions = nil;
}
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (164665 => 164666)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-02-25 20:56:27 UTC (rev 164665)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-02-25 21:10:14 UTC (rev 164666)
@@ -600,6 +600,7 @@
373D122518A473B30066D9CC /* WKBrowsingContextHandleInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 373D122418A473B30066D9CC /* WKBrowsingContextHandleInternal.h */; };
373D122718A473F60066D9CC /* WKFrameHandleInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 373D122618A473F60066D9CC /* WKFrameHandleInternal.h */; };
373D122D18A4B6EB0066D9CC /* WKWebProcessPlugInFramePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 373D122C18A4B6A80066D9CC /* WKWebProcessPlugInFramePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 3743925818BC4C60001C8675 /* WKUIDelegatePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3743925718BC4C60001C8675 /* WKUIDelegatePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
374436881820E7240049579F /* WKObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = 374436871820E7240049579F /* WKObject.mm */; };
3760881E150413E900FC82C7 /* WebRenderObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3760881C150413E900FC82C7 /* WebRenderObject.cpp */; };
3760881F150413E900FC82C7 /* WebRenderObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 3760881D150413E900FC82C7 /* WebRenderObject.h */; };
@@ -2333,6 +2334,7 @@
373D122418A473B30066D9CC /* WKBrowsingContextHandleInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBrowsingContextHandleInternal.h; sourceTree = "<group>"; };
373D122618A473F60066D9CC /* WKFrameHandleInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFrameHandleInternal.h; sourceTree = "<group>"; };
373D122C18A4B6A80066D9CC /* WKWebProcessPlugInFramePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInFramePrivate.h; sourceTree = "<group>"; };
+ 3743925718BC4C60001C8675 /* WKUIDelegatePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKUIDelegatePrivate.h; sourceTree = "<group>"; };
374436871820E7240049579F /* WKObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKObject.mm; sourceTree = "<group>"; };
375FB4731883415600BE34D4 /* Info-iOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = "<group>"; };
3760881C150413E900FC82C7 /* WebRenderObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebRenderObject.cpp; sourceTree = "<group>"; };
@@ -4448,6 +4450,7 @@
1A43E82B188F3CF5009E4D30 /* WKProcessPoolConfigurationPrivate.h */,
1A3CC16818907EB0001E6ED8 /* WKProcessPoolInternal.h */,
1AD8790918B6C38A006CAFD7 /* WKUIDelegate.h */,
+ 3743925718BC4C60001C8675 /* WKUIDelegatePrivate.h */,
1A3CC16518906ACF001E6ED8 /* WKWebView.h */,
1A3CC16418906ACF001E6ED8 /* WKWebView.mm */,
1ADF59191890528E0043C145 /* WKWebViewConfiguration.h */,
@@ -6541,6 +6544,7 @@
1A7865BA16CAC71500ACE83A /* PluginProcessConnectionManagerMessages.h in Headers */,
1A2BB6D114117B4D000F35D4 /* PluginProcessConnectionMessages.h in Headers */,
1A2D90D21281C966001EB962 /* PluginProcessCreationParameters.h in Headers */,
+ 3743925818BC4C60001C8675 /* WKUIDelegatePrivate.h in Headers */,
1A0EC603124A9F2C007EF4A5 /* PluginProcessManager.h in Headers */,
0FCB4E6618BBE3D9000FCFC9 /* WKPrintingView.h in Headers */,
1A1EC69E1872092100B951F0 /* ImportanceAssertion.h in Headers */,