Thank you so much for finding out simon!! so then nuxt is probably not to 
blame here 

On Tuesday, June 6, 2023 at 8:39:51 PM UTC+5:30 Simon Lecutiez wrote:

> Hello,
>
> > I am still analyzing if this is a library issue or maybe its some 
> specific style of writing nuxt
>
> Both websites were made by the same agency (Akaru <https://akaru.fr/>), 
> so it could even be a homemade library or a single developer’s style ;)
>
> Hope it helps,
> Simon
>
> Le lundi 5 juin 2023 à 17:07:47 UTC+2, Debadree Chatterjee a écrit :
>
>> Hey!
>>
>> I have attached the difference in how they look for 
>> ttps://maisonyoko.com/ <https://maisonyoko.com/> note that the 
>> background video doesn't load maybe since for local testing I am raising 
>> exceptions thats why its the causing issue (I am checking this) as for the 
>> nuxt issue I am still analyzing if this is a library issue or maybe its 
>> some specific style of writing nuxt
>>
>> As for the CL i shall then include both the runtime flag and use counter 
>> in the same CL hopefully by tomorrow
>>
>> Regards,
>> Debadree
>> On Monday, June 5, 2023 at 7:47:44 PM UTC+5:30 Philip Jägenstedt wrote:
>>
>>> Hi Debadree,
>>>
>>> I also noticed the code was similar for multiple sites, I'm glad you 
>>> were able to track it down to a common framework, Nuxt. I would suggest 
>>> filing an issue at https://github.com/nuxt/nuxt about this problem, 
>>> maybe they can fix it in the next release. Since you've confirmed that some 
>>> sites won't load the video correctly, and fixing it would require upgrading 
>>> the framework, it's important to have a fix out there by the time the 
>>> change is done in Chrome.
>>>
>>> Since the WebKit change <https://github.com/WebKit/WebKit/pull/13500> 
>>> was included in STP 171 
>>> <https://developer.apple.com/documentation/safari-technology-preview-release-notes/stp-release-171>,
>>>  
>>> I tested https://maisonyoko.com/ and https://crossfitdespentes.fr/ in 
>>> both Safari and STP 171, but I couldn't see any difference. Which video 
>>> should I expect to not load as a result of this change? I was expecting 
>>> something to be broken, and then I'd file a WebKit regression bug about it.
>>>
>>> As for whether to bake the changes into a single CL or to split it, I 
>>> don't have a strong opinion.
>>>
>>> Best regards,
>>> Philip
>>>
>>> On Sun, Jun 4, 2023 at 9:05 PM Debadree Chatterjee <debad...@gmail.com> 
>>> wrote:
>>>
>>>> Hey!
>>>>
>>>> So I did a more thorough testing! and it seems there is something 
>>>> common in both these two sites they are using the Nuxt Framework and the 
>>>> breakage in both of them is similar they have videos on the first section 
>>>> of their landing page with animations on top of them, due to the breakage 
>>>> it seems the video doesn't load! If you look at the call sites too the 
>>>> code 
>>>> looks very similar
>>>>
>>>> for https://maisonyoko.com/
>>>> [image: Screenshot 2023-06-05 at 12.24.34 AM.png]
>>>>
>>>> for https://crossfitdespentes.fr/
>>>> [image: Screenshot 2023-06-05 at 12.25.09 AM.png]
>>>>
>>>> Both of them nuxt 
>>>> [image: Screenshot 2023-06-05 at 12.27.12 AM.png]
>>>> [image: Screenshot 2023-06-05 at 12.27.50 AM.png]
>>>>
>>>> I am not familiar with nuxt I will try to get to know about it, but it 
>>>> seems like there could be some problem with nuxt, If any reader here knows 
>>>> nuxt would love to reach out!
>>>>
>>>> Thank You
>>>> Debadree
>>>> On Wednesday, May 31, 2023 at 9:38:18 PM UTC+5:30 Debadree Chatterjee 
>>>> wrote:
>>>>
>>>>> Hey Philip!
>>>>>
>>>>> In my initial testing, I didn't see any observable change in site 
>>>>> behavior, but I shall confirm once again!
>>>>>
>>>>> As for the kill switch and use counter should I update my existing CL 
>>>>> to include these or make a new one containing the counter to just measure 
>>>>> the effects?
>>>>>
>>>>>
>>>>> On Wednesday, May 31, 2023 at 9:28:39 PM UTC+5:30 Philip Jägenstedt 
>>>>> wrote:
>>>>>
>>>>>> Hi Debadree,
>>>>>>
>>>>>> Thank you so much for your hard work on this.
>>>>>>
>>>>>> To confirm, these two sites were from the 20 listed earlier in this 
>>>>>> thread, is that right? Now that we've confirmed that these two sites 
>>>>>> will 
>>>>>> have a different behavior, can you observe any difference on 
>>>>>> https://maisonyoko.com/ or https://crossfitdespentes.fr/ with the 
>>>>>> changes, but without the exception-throwing?
>>>>>>
>>>>>> Generally, finding a behavior change in 10% of tested sites is a bit 
>>>>>> concerning, but if it means that only ~10% of the cases hit by the use 
>>>>>> counter 
>>>>>> <https://chromestatus.com/metrics/feature/timeline/popularity/4478> 
>>>>>> are problematic, it could be <0.001% of sites, and we've 
>>>>>> successfully made breaking changes at that level in the past.
>>>>>>
>>>>>> Since you now have the code for throwing an exception, would it be 
>>>>>> straightforward to turn that into a use counter that we can land and get 
>>>>>> a 
>>>>>> better measure of this? I think as discussed previously in this thread, 
>>>>>> we 
>>>>>> should considering shipping this with a killswitch and a use counter, so 
>>>>>> we 
>>>>>> can both revert and check the usage if we get reports of breakage.
>>>>>>
>>>>>> Best regards,
>>>>>> Philip
>>>>>>
>>>>>> On Tue, May 30, 2023 at 5:16 PM Debadree Chatterjee <
>>>>>> debad...@gmail.com> wrote:
>>>>>>
>>>>>>> Hey Philip!
>>>>>>>
>>>>>>> Even I was surprised, turns out I was wrong about the delete 
>>>>>>> function (so sorry), I have observed a breakage now,
>>>>>>>
>>>>>>> The has function output example:
>>>>>>> [image: Screenshot 2023-05-30 at 7.36.36 PM.png]
>>>>>>>
>>>>>>>
>>>>>>> The updated delete function:
>>>>>>>
>>>>>>> ```c++
>>>>>>> void URLSearchParams::deleteAllWithNameOrTuple(const String& name,
>>>>>>>                                                const String& value, 
>>>>>>> ExceptionState& exception_state) {
>>>>>>>   std::vector<int> indices_to_remove_with_name_val, 
>>>>>>> indices_to_remove_with_name;
>>>>>>>   for (wtf_size_t i = 0; i < params_.size(); i++) {
>>>>>>>     if (params_[i].first == name &&
>>>>>>>         (value.IsNull() || params_[i].second == value)) {
>>>>>>>       indices_to_remove_with_name_val.push_back(i);
>>>>>>>     }
>>>>>>>   }
>>>>>>>
>>>>>>>   for (wtf_size_t i = 0; i < params_.size(); i++) {
>>>>>>>     if (params_[i].first == name) {
>>>>>>>       indices_to_remove_with_name.push_back(i);
>>>>>>>     }
>>>>>>>   }
>>>>>>>
>>>>>>>   if (indices_to_remove_with_name_val.size() != 
>>>>>>> indices_to_remove_with_name.size()) {
>>>>>>>     DLOG(ERROR) << "indices_to_remove_with_name_val.size() != 
>>>>>>> indices_to_remove_with_name.size()";
>>>>>>>     exception_state.ThrowException(1, "Divergent behavior");
>>>>>>>     return;
>>>>>>>   }
>>>>>>>
>>>>>>>   // match the values of indices_to_remove_with_name_val, 
>>>>>>> indices_to_remove_with_name
>>>>>>>   for (size_t i = 0; i < indices_to_remove_with_name_val.size(); 
>>>>>>> i++) {
>>>>>>>     if (indices_to_remove_with_name_val[i] != 
>>>>>>> indices_to_remove_with_name[i]) {
>>>>>>>       DLOG(ERROR) << "indices_to_remove_with_name_val[i] != 
>>>>>>> indices_to_remove_with_name[i]";
>>>>>>>       exception_state.ThrowException(1, "Divergent behavior");
>>>>>>>       return;
>>>>>>>     }
>>>>>>>   }
>>>>>>>
>>>>>>>   for (wtf_size_t i = 0; i < params_.size();) {
>>>>>>>     if (params_[i].first == name &&
>>>>>>>         (value.IsNull() || params_[i].second == value)) {
>>>>>>>       params_.EraseAt(i);
>>>>>>>     } else {
>>>>>>>       i++;
>>>>>>>     }
>>>>>>>   }
>>>>>>>
>>>>>>>   RunUpdateSteps();
>>>>>>> }
>>>>>>> ```
>>>>>>> The example outputs of the delete function:
>>>>>>> [image: Screenshot 2023-05-30 at 8.39.03 PM.png]
>>>>>>>
>>>>>>> Example Breakages:
>>>>>>> In https://maisonyoko.com/
>>>>>>> [image: Screenshot 2023-05-30 at 8.33.59 PM.png]
>>>>>>> https://crossfitdespentes.fr/
>>>>>>> [image: Screenshot 2023-05-30 at 8.42.01 PM.png]
>>>>>>> Other than these sites didn't notice a breakage.
>>>>>>>
>>>>>>> seems like the breakages seem to be in the delete function only, so 
>>>>>>> sorry once again for the mistake before. Do let me know if all this 
>>>>>>> looks 
>>>>>>> ok.
>>>>>>>
>>>>>>> Thank You,
>>>>>>> Debadree
>>>>>>>
>>>>>>> On Tuesday, May 30, 2023 at 5:34:18 PM UTC+5:30 Philip Jägenstedt 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Debadree,
>>>>>>>>
>>>>>>>> That's very promising! The code looks right to me, but just to be 
>>>>>>>> sure, did you verify that the exceptions are thrown in a test case 
>>>>>>>> where 
>>>>>>>> the 2nd argument makes a difference? It's a bit suspicious when no 
>>>>>>>> sites at 
>>>>>>>> all threw the exception :)
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>> Philip
>>>>>>>>
>>>>>>>> On Tue, May 30, 2023 at 11:45 AM Debadree Chatterjee <
>>>>>>>> debad...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hey Everyone!
>>>>>>>>>
>>>>>>>>> Sorry for the delays I followed Philip's suggestion on testing if 
>>>>>>>>> behavior diverged in these sites, I checked this by throwing 
>>>>>>>>> exceptions if 
>>>>>>>>> the actual return value is different if I used name only or both name 
>>>>>>>>> and 
>>>>>>>>> value, I am including the code for reference:
>>>>>>>>>
>>>>>>>>> bool URLSearchParams::has(const String& name, const String& 
>>>>>>>>> value, ExceptionState& exception_state) const { bool 
>>>>>>>>> found_match_name = false, found_match_name_value = false; for (
>>>>>>>>> const auto& param : params_) { if (param.first == name) { 
>>>>>>>>> found_match_name = true; break; } } for (const auto& param : 
>>>>>>>>> params_) { if (param.first == name && (value.IsNull() || 
>>>>>>>>> param.second == value)) { found_match_name_value = true; break; } 
>>>>>>>>> } if (found_match_name != found_match_name_value) { 
>>>>>>>>> exception_state.ThrowException(1, "Divergent behavior"); return 
>>>>>>>>> false; } return found_match_name_value; } void 
>>>>>>>>> URLSearchParams::deleteAllWithNameOrTuple(const String& name, 
>>>>>>>>> const String& value, ExceptionState& exception_state) { for 
>>>>>>>>> (wtf_size_t i = 0; i < params_.size();) { bool match_by_name = 
>>>>>>>>> params_[i].first == name; bool match_by_value = !value.IsNull() 
>>>>>>>>> && params_[i].second == value; if (match_by_name) { if 
>>>>>>>>> (match_by_value) { params_.EraseAt(i); } else { // It would have 
>>>>>>>>> been deleted if value wasnt there exception_state.ThrowException(1, 
>>>>>>>>> "Divergent behavior"); return; } } else { i++; } } 
>>>>>>>>> RunUpdateSteps(); } 
>>>>>>>>> ​
>>>>>>>>> The good news is none of the example sites broke or triggered this 
>>>>>>>>> exception at all, I navigated lightly through all the sites but no 
>>>>>>>>> exception was observed, whereas if I raised an exception whenever 
>>>>>>>>> double 
>>>>>>>>> variables are passed all the sites would give an exception as you 
>>>>>>>>> have seen 
>>>>>>>>> in the previous mails. Do let me know if this seems correct!
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Debadree
>>>>>>>>>
>>>>>>>>> On Wednesday, May 24, 2023 at 10:35:59 PM UTC+5:30 Debadree 
>>>>>>>>> Chatterjee wrote:
>>>>>>>>>
>>>>>>>>>> Understood!
>>>>>>>>>>
>>>>>>>>>> I am going with the local testing approach for now, I think what 
>>>>>>>>>> I will do is raise exceptions if a difference in behavior is noted 
>>>>>>>>>> as 
>>>>>>>>>> Philip suggested, and see how many of these example sites raise 
>>>>>>>>>> them. This 
>>>>>>>>>> may take a little bit of time I think but trying my best!
>>>>>>>>>>
>>>>>>>>>> Thank You!
>>>>>>>>>>
>>>>>>>>>> On Wednesday, May 24, 2023 at 9:13:04 PM UTC+5:30 Philip 
>>>>>>>>>> Jägenstedt wrote:
>>>>>>>>>>
>>>>>>>>>>> If refining the use counter is easy, that would be good to do, 
>>>>>>>>>>> even if we don't block shipping on getting stable data for the use 
>>>>>>>>>>> counter.
>>>>>>>>>>>
>>>>>>>>>>> But I think that careful local testing is the best way to get a 
>>>>>>>>>>> sense for the risk on this. If you're confident you've hit the code 
>>>>>>>>>>> path on 
>>>>>>>>>>> the sites in question, and nothing at all changes for the user, 
>>>>>>>>>>> then I 
>>>>>>>>>>> think we should try to ship this.
>>>>>>>>>>>
>>>>>>>>>>> On Mon, May 22, 2023 at 6:59 PM Debadree Chatterjee <
>>>>>>>>>>> debad...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> For basic testing of the sites, I saw no breaking behavior, I 
>>>>>>>>>>>> did a few actions on sites like adding things to the cart, trying 
>>>>>>>>>>>> to go the 
>>>>>>>>>>>> login flow clicking on navigation, etc. Although I think would 
>>>>>>>>>>>> need to go a 
>>>>>>>>>>>> little deep on that, Should I submit a new CL for this counter 
>>>>>>>>>>>> thing? or do 
>>>>>>>>>>>> deeper local testing? 
>>>>>>>>>>>>
>>>>>>>>>>>> On Monday, May 22, 2023 at 10:09:26 PM UTC+5:30 Philip 
>>>>>>>>>>>> Jägenstedt wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Well, this is a tricky case with no obvious answer. You've 
>>>>>>>>>>>>> found one case of array.some(...), which most likely will change 
>>>>>>>>>>>>> the 
>>>>>>>>>>>>> behavior of the code. For the other cases where a second argument 
>>>>>>>>>>>>> is passed 
>>>>>>>>>>>>> is explicitly, it depends on the value whether it changes 
>>>>>>>>>>>>> behavior, if it's 
>>>>>>>>>>>>> the same value that was added, then it's fine.
>>>>>>>>>>>>>
>>>>>>>>>>>>> One concrete thing you could do is to refine the use counter 
>>>>>>>>>>>>> to only count the cases where the 2nd argument results in has() 
>>>>>>>>>>>>> returning 
>>>>>>>>>>>>> false instead of true, or where delete() doesn't delete anything 
>>>>>>>>>>>>> but would 
>>>>>>>>>>>>> without the 2nd argument. However, I'm not sure that would be 
>>>>>>>>>>>>> informative, 
>>>>>>>>>>>>> if it reduces the use counter by 10x we'd still be unsure about 
>>>>>>>>>>>>> how serious 
>>>>>>>>>>>>> the breakage is to users.
>>>>>>>>>>>>>
>>>>>>>>>>>>> In your manual testing of these sites, were you able to 
>>>>>>>>>>>>> confirm the code paths were taken, and unable to spot anything at 
>>>>>>>>>>>>> all 
>>>>>>>>>>>>> broken on the pages? Did you compare to how the sites work 
>>>>>>>>>>>>> without the 
>>>>>>>>>>>>> changes?
>>>>>>>>>>>>>
>>>>>>>>>>>>> I would say that given testing of sites that hit the code 
>>>>>>>>>>>>> path, if you can't find anything at all breaking, then we should 
>>>>>>>>>>>>> try to 
>>>>>>>>>>>>> ship the change.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, May 19, 2023 at 3:40 PM Debadree Chatterjee <
>>>>>>>>>>>>> debad...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I tried navigating and clicking around the sites, but they 
>>>>>>>>>>>>>> didn't seem to be breaking atleast even though this exception is 
>>>>>>>>>>>>>> being 
>>>>>>>>>>>>>> raised. Are there any more investigations I can do?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Friday, May 19, 2023 at 3:59:21 AM UTC+5:30 
>>>>>>>>>>>>>> abot...@igalia.com wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> As for having a premonition that this would be added, there 
>>>>>>>>>>>>>>> is at least one post in the original Github issue saying that 
>>>>>>>>>>>>>>> the poster 
>>>>>>>>>>>>>>> already expected the two-argument overload to be supported (
>>>>>>>>>>>>>>> https://github.com/whatwg/url/issues/335#issuecomment-919700370
>>>>>>>>>>>>>>> ).
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Andreu
>>>>>>>>>>>>>>> On 5/18/23 23:42, PhistucK wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Most of them are just weird, really. I can only imagine they 
>>>>>>>>>>>>>>> started with a .set with an empty string as a second 
>>>>>>>>>>>>>>> parameter and ended up changing to .delete without deleting 
>>>>>>>>>>>>>>> the second parameter.
>>>>>>>>>>>>>>> (Or they had a premonition and knew there will be a second 
>>>>>>>>>>>>>>> parameter with the specific purpose you want to ship hehe)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I imagine those were outliers, I would not worry much about 
>>>>>>>>>>>>>>> it (also the bound callback is a bit too convoluted to be 
>>>>>>>>>>>>>>> widely used), but 
>>>>>>>>>>>>>>> that is just me. :)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/121f5466-4db0-4989-bc2c-7d26ff93f478n%40chromium.org.

Reply via email to