-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[navigation #3+4] canGoBack/GoForward; SERP headers #885
[navigation #3+4] canGoBack/GoForward; SERP headers #885
Conversation
1eba6ec
to
2d9c1b9
Compare
@tomasstrba this one not related, it's been fixed in the #884, not merged to this one yet |
@tomasstrba I updated the branch to match #884, the assertion shouldn‘t happen anymore |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The issue is no longer there 👍 Thanks for fixing it.
I only have few comments below
|
||
/// `CurrentValueSubject` wrapper used to receive and store a published property and re-publish it when used as a $projectedValue | ||
@propertyWrapper | ||
struct RePublished<Owner: AnyObject, Value, Pub: Publisher<Value, Never>> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, it's always a good idea to consider using existing components from the framework before introducing custom implementations, as this reduces the amount of code you need to maintain, ensures compatibility with other apps and makes it easier for new team members to start contributing to codebase.
In order to descope your project where possible, do you think we could focus on this property wrapper after you release the refactor? It is already too complicated and introducing custom property wrapper like this doesn't make it easier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, let‘s drop it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 👍
One more issue I found that is probably not related to this PR but related to the refactoring is how quickly is the tab released from memory. If you play any video and close the tab, it continues playing for few seconds. If possible, please make sure this issue is resolved before merging this to develop
|
||
// MARK: - Back/Forward navigation | ||
|
||
func testCanGoBack() throws { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it make sense to break down the test into multiple tests or do you think it would lead to unnecessary code duplication?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, splitting the test into multiple will lead to repeating the whole test but with different assertion points, so let‘s keep it as it is
* SERP headers handling in SerpHeadersNavigationResponder
the issue with the delayed Tab release you mentioned was caused by the long time decision making checker in BSK PR (DEBUG only) which is fixed already. |
* AdClickAttributionTabExtension+NavigationResponder * fix TabExtension test overrides, adClick extension tests * fix AdClickAttributionTabExtensionTests teardown * cleanup * don‘t use shared state in tests * fix adClick inherited attribution initialization * cleanup * Adjust adClick tests to better match UserScripts/UserContentController behaviour; cleanup * fix RELEASE * remove Swifter dependency * fix file header * [navigation #3+4] canGoBack/GoForward; SERP headers (#885) * canGoBack, canGoForward RePublished, Tab.publishers refactored * redo redirect(_:NavigationAction, invalidatingBackItemIfNeeded) * tests * don‘t use shared state in tests * fix RELEASE * rollback renaming * drop RePublished * fix header name * [navigation #4] SERP headers navigation responder (#887) * SERP headers handling in SerpHeadersNavigationResponder * convert TabTests to custom SchemeHandler
Task/Issue URL: https://app.asana.com/0/72649045549333/1202061524436301/f
Tech Design URL: (RePublished) https://app.asana.com/0/481882893211075/1203312264447430/f
CC: @tomasstrba
Description:
Steps to test this PR:
Testing checklist:
Internal references:
Software Engineering Expectations
Technical Design Template
When ready for review, remember to post the PR in MM