WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 169805
[WK1] Support animated transitions when performing a data interaction operation
https://bugs.webkit.org/show_bug.cgi?id=169805
Summary
[WK1] Support animated transitions when performing a data interaction operation
Wenson Hsieh
Reported
2017-03-16 20:28:34 PDT
Support animated transitions when performing a data interaction operation in a WK1 web view.
Attachments
First pass
(17.25 KB, patch)
2017-03-16 21:22 PDT
,
Wenson Hsieh
no flags
Details
Formatted Diff
Diff
Fix OpenSource build
(17.54 KB, patch)
2017-03-17 09:01 PDT
,
Wenson Hsieh
no flags
Details
Formatted Diff
Diff
Fix OpenSource iOS builds
(17.66 KB, patch)
2017-03-17 09:47 PDT
,
Wenson Hsieh
bdakin
: review+
Details
Formatted Diff
Diff
Patch for landing
(17.62 KB, patch)
2017-03-17 11:50 PDT
,
Wenson Hsieh
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Wenson Hsieh
Comment 1
2017-03-16 21:08:30 PDT
<
rdar://problem/31045767
>
Wenson Hsieh
Comment 2
2017-03-16 21:22:25 PDT
Created
attachment 304751
[details]
First pass
Megan Gardner
Comment 3
2017-03-17 02:33:01 PDT
Comment on
attachment 304751
[details]
First pass View in context:
https://bugs.webkit.org/attachment.cgi?id=304751&action=review
> Source/WebKit/mac/WebCoreSupport/WebDragClient.h:52 > private:
Is this change needed, the implementations are empty.
> Source/WebKit/mac/WebCoreSupport/WebDragClient.mm:82 > +
empty implementations, do these belong in this patch?
> Source/WebKit/mac/WebCoreSupport/WebDragClient.mm:196 > +
empty implementations, do these belong in this patch?
> Source/WebKit/mac/WebView/WebView.mm:669 > + _contentImageWithoutSelectionRectInRootViewCoordinates = indicatorData.contentImageWithoutSelectionRectInRootViewCoordinates;
retain here, also release this and _contentImageWithoutSelection in dealloc.
> Source/WebKit/mac/WebView/WebView.mm:1912 > #endif // ENABLE(DATA_INTERACTION) && defined(__cplusplus)
empty method? what is it used for?
> Source/WebKit/mac/WebView/WebViewData.h:292 > #endif
is this the best way to transfer this data?
> Source/WebKit/mac/WebView/WebViewInternal.h:262 > #endif
The implementation is empty, is this used?
> Source/WebKit/mac/WebView/WebViewPrivate.h:-59 > -
Make sure that this removed from where it is needed first, so as to not cause code to stop compiling.
> Source/WebKit/mac/WebView/WebViewPrivate.h:194 > @end
Is everything above being used? Can we re-purpose some of the existing properties?
Wenson Hsieh
Comment 4
2017-03-17 08:36:44 PDT
Comment on
attachment 304751
[details]
First pass View in context:
https://bugs.webkit.org/attachment.cgi?id=304751&action=review
>> Source/WebKit/mac/WebCoreSupport/WebDragClient.h:52 >> private: > > Is this change needed, the implementations are empty.
The implementation we care about is in WebKitAdditions. It just takes a snapshot using TextIndicator and sets dataOperationTextIndicator -- I will post the patch later.
>> Source/WebKit/mac/WebCoreSupport/WebDragClient.mm:82 >> + > > empty implementations, do these belong in this patch?
Yes. didConcludeEditDrag() was formerly implemented in the header, now it's just declared there and defined in the implementation.
>> Source/WebKit/mac/WebCoreSupport/WebDragClient.mm:196 >> + > > empty implementations, do these belong in this patch?
Yes. didConcludeEditDrag() was formerly implemented in the header, now it's just declared there and defined in the implementation.
>> Source/WebKit/mac/WebView/WebView.mm:669 >> + _contentImageWithoutSelectionRectInRootViewCoordinates = indicatorData.contentImageWithoutSelectionRectInRootViewCoordinates; > > retain here, also release this and _contentImageWithoutSelection in dealloc.
This is a CGRect, and isn't something we can or should retain. Fixed the _contentImageWithoutSelection leak though -- good catch!
>> Source/WebKit/mac/WebView/WebView.mm:1912 >> #endif // ENABLE(DATA_INTERACTION) && defined(__cplusplus) > > empty method? what is it used for?
Refer to the other empty methods preceding this. Although on second glance, it looks like these are just for staging if <WebKitAdditions/WebViewAdditions.mm> is not available yet? In which case we should just remove the empty implementations for _requestStartDataInteraction:globalPosition: ... -_endedDataInteraction:global: instead...
>> Source/WebKit/mac/WebView/WebViewData.h:292 >> #endif > > is this the best way to transfer this data?
I believe so, for the same reason textIndicatorData is a member of WebViewPrivate. Also, we need access to this in two places in UIWebDocumentView anyways (refer to the UIKit change) so even if we made -[WebView _performDataInteraction:client:global:operation:], we'd have to store dataOperationTextIndicator somewhere that UIWebDocumentView can access.
>> Source/WebKit/mac/WebView/WebViewInternal.h:262 >> #endif > > The implementation is empty, is this used?
The implementation we care about is in WebKitAdditions (patch not yet posted).
>> Source/WebKit/mac/WebView/WebViewPrivate.h:-59 >> - > > Make sure that this removed from where it is needed first, so as to not cause code to stop compiling.
👍
>> Source/WebKit/mac/WebView/WebViewPrivate.h:194 >> @end > > Is everything above being used? Can we re-purpose some of the existing properties?
No, we definitely should not repurpose the existing properties (though it might make staging a bit easier). WebUITextIndicatorData is meant to mirror TextIndicatorData.
Wenson Hsieh
Comment 5
2017-03-17 08:49:42 PDT
Comment on
attachment 304751
[details]
First pass View in context:
https://bugs.webkit.org/attachment.cgi?id=304751&action=review
>>> Source/WebKit/mac/WebView/WebView.mm:1912 >>> #endif // ENABLE(DATA_INTERACTION) && defined(__cplusplus) >> >> empty method? what is it used for? > > Refer to the other empty methods preceding this. Although on second glance, it looks like these are just for staging if <WebKitAdditions/WebViewAdditions.mm> is not available yet? In which case we should just remove the empty implementations for _requestStartDataInteraction:globalPosition: ... -_endedDataInteraction:global: instead...
On second glance, this is not just a staging hack -- we'll need to keep this, and also add a stub implementation for -_dataOperationTextIndicator (this appears to be the cause of the EWS build failures).
Wenson Hsieh
Comment 6
2017-03-17 09:01:39 PDT
Created
attachment 304783
[details]
Fix OpenSource build
Wenson Hsieh
Comment 7
2017-03-17 09:05:37 PDT
(In reply to
comment #5
)
> Comment on
attachment 304751
[details]
> First pass > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=304751&action=review
> > >>> Source/WebKit/mac/WebView/WebView.mm:1912 > >>> #endif // ENABLE(DATA_INTERACTION) && defined(__cplusplus) > >> > >> empty method? what is it used for? > > > > Refer to the other empty methods preceding this. Although on second glance, it looks like these are just for staging if <WebKitAdditions/WebViewAdditions.mm> is not available yet? In which case we should just remove the empty implementations for _requestStartDataInteraction:globalPosition: ... -_endedDataInteraction:global: instead... > > On second glance, this is not just a staging hack -- we'll need to keep > this, and also add a stub implementation for -_dataOperationTextIndicator > (this appears to be the cause of the EWS build failures).
Hm...it looks like we'll actually need to stub -_dataOperationTextIndicator and not -_didConcludeEditDataInteraction, since the former is SPI but the latter is IPI.
Wenson Hsieh
Comment 8
2017-03-17 09:47:28 PDT
Created
attachment 304787
[details]
Fix OpenSource iOS builds
Wenson Hsieh
Comment 9
2017-03-17 11:50:10 PDT
Created
attachment 304802
[details]
Patch for landing
WebKit Commit Bot
Comment 10
2017-03-17 12:30:47 PDT
Comment on
attachment 304802
[details]
Patch for landing Clearing flags on attachment: 304802 Committed
r214111
: <
http://trac.webkit.org/changeset/214111
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug