[webkit-dev] WPE mailing list

2018-01-17 Thread Michael Catanzaro

Hi,

The WPE port now has its own mailing list, webkit-...@lists.webkit.org. 
Interested parties should subscribe.


We hope to post our first release announcement [t]here, before too long!

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] WTFCrash()

2018-03-06 Thread Michael Catanzaro

Hi,

After [1], WTFCrash() is used only in debug builds on Darwin. For 
Darwin release builds, inline assembly is used to trigger a SIGTRAP. I 
experimented with this today and found it works quite badly on Linux, 
somehow confusing gdb and clobbering the top frames of the stacktrace, 
so I think we should leave that unchanged and keep it Darwin-only. So 
this mail applies only to debug builds on Darwin, and to non-Darwin 
ports.


Now, currently, WTFCrash() does three things:

(1) Calls a user-configurable crash hook
(2) Print a low-quality backtrace to stderr
(3) Crash somehow:
  - If ASAN is used, with __builtin_trap() (that's SIGILL on Linux 
x86_64)
  - Then with *(int *)(uintptr_t)0xbbadbeef = 0, which might fail to 
crash if 0xbadbeef is a valid address, and is SIGSEGV otherwise

  - Then with __builtin_trap() if COMPILER(GCC_OR_CLANG)
  - Then with ((void(*)())0)() otherwise (presumably SIGSEGV or 
SIGBUS, dunno)


This is all rather more complicated than it needs to be.

First off, the crash hook is (almost) unused and should simply be 
removed, see [2].


Next, the low-quality backtrace. Does anyone think this is useful? It's 
mainly annoying to me, because it's not anywhere near as good as a 
proper backtrace that shows stack members, it's mangled so function 
names are unnecessarily-difficult to read, and it takes all of five 
seconds to get a much nicer one with modern Linux developer tools. If 
other developers like it, perhaps we could keep it for debug builds 
only, and skip right to the crashing in release builds? I suppose we 
could keep printing it always if there is desire to do this, because it 
has never caused any problems with Linux crash telemetry and doesn't 
seem to be harming anything, but otherwise my instinct is to simplify.


Now, as for how exactly to crash. Current logic, with asan disabled, 
prefers SIGSEGV, then SIGILL if that fails, then SIGSEGV again. I don't 
like that WTFCrash() triggers a SIGSEGV. This is not very clean; at 
least on Linux, it's conventional for assertion failures and other 
intentional crashes to cause SIGABRT instead of trying to write to 
0xbadbeef. SIGILL is also quite unusual. I  think I'd be happy if we 
replace all of WTFCrash() with a single call to abort(). Any objections 
to this? Is there a special reason for the current convoluted logic?


Michael

[1] https://bugs.webkit.org/show_bug.cgi?id=153996
[2] https://bugs.webkit.org/show_bug.cgi?id=183369

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WTFCrash()

2018-03-09 Thread Michael Catanzaro
On Fri, Mar 9, 2018 at 5:34 AM, Adrian Perez de Castro 
 wrote:
I would enable printing backtraces to -DENABLE_DEVELOPER_MODE=ON 
instead,
because they can be useful in release (well, or RelWithDebInfo) 
builds.


OK, let's do this, then. I don't want to make it impossible to solve 
bugs on small embedded systems.


I would really hate to work in an environment where you can't get a 
proper backtrace... that sounds awful. :(


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WTFCrash()

2018-03-07 Thread Michael Catanzaro
On Wed, Mar 7, 2018 at 10:37 AM, Michael Catanzaro 
<mcatanz...@igalia.com> wrote:
Unfortunately that somehow breaks the top frames in the backtrace on 
Linux, so we can't do that.


I mean, we can't do it in exactly the same way that Darwin does. Yes, 
of course we can change CRASH() to call abort() or do whatever we want.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WTFCrash()

2018-03-07 Thread Michael Catanzaro


On Wed, Mar 7, 2018 at 12:36 AM, Mark Lam  wrote:
On Darwin, we currently only use WTFCrash() on Debug builds (see 
definition of the CRASH() macro).  Feel free to make linux do the 
same.  FWIW, I use this crash trace a lot when debugging crashes when 
I don’t already have a debugger attached yet.  Of course, with a 
debugger attached, it is of less value.


Unfortunately that somehow breaks the top frames in the backtrace on 
Linux, so we can't do that.


The reason for release builds using WTFBreakpointTrap() is so that we 
can get a crash with minimal perturbation to the register state, to 
help with post-mortem crash analysis.  Debug builds are only used 
during development and internal testing.  So, we take the opportunity 
to get more crash info there (hence, the dumping of the crash trace). 
 The reason that ASan builds use __builtin_trap() is because ASan 
does not like the memory access of 0xbadbbeef (if I remember 
correctly).


In addition, we also have infrastructure in place that looks for 
these crash patterns.  So, changing to use SIGABRT (even if it 
generates a crash log on Darwin) would mean additional cost and churn 
to update that infrastructure, with not much gain to show for it.  
Hence, I object to the change.


OK, interesting. I won't change the behavior for Darwin, then.

Our crash telemetry does not care about the crash signal that's used; 
we'll get a nice backtrace regardless. Linux developers kinda expect 
SIGABRT to be used for intentional crashes like WTFCrash(), though, so 
it would be (very) slightly more useful for us to use abort().


Feel free to change the linux implementation of CRASH() to use 
abort() if that works better for linux folks.  BTW, CRASH() is what 
you want to define/redirect.  WTFCrash() is only one implementation 
of CRASH().  No client should be calling WTFCrash() directly.


CRASH() always calls WTFCrash(), except in Darwin release builds. So 
one option is to change only WTFCrash(). I experimented with changing 
CRASH() to call abort() directly and decided it doesn't really matter 
either way. The advantage of changing CRASH() is that there is one 
fewer uninteresting frame at the top of the backtrace, since WTFCrash 
will not be present. The cost is it will be very slightly harder to 
notice that CRASH() was called, since WTFCrash() won't be present in 
the backtrace.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] python2

2018-04-10 Thread Michael Catanzaro

Hi,

python2 end of life is January 1, 2020. But even before then, we'll 
need to make WebKit work in environments without python2 available, 
because it's not going to be present in the next Red Hat Enterprise 
Linux or SUSE Linux Enterprise, and its fate in community distros like 
Fedora (where it is being orphaned by the maintainers, and at risk of 
removal) is looking questionable at best.


So we have basically two options:

* Require python3 and port our python scripts from python2 to python3
* Make our scripts support both major versions of python simultaneously

The later would be quite a pain, because developers using python2 are 
sure to break developers using python3, and vice-versia. But my 
understanding is that python3 is not readily-available on Macs, so that 
might be what we need to do if Apple wants to stick with python2. 
Thoughts on this?


Michael
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] python2

2018-04-11 Thread Michael Catanzaro
OK then... this won't be fun, but we'll just have to make the scripts 
support both major versions of python. At least the scripts we use 
during the build, and use ourselves... and the ones that are tested by 
test-webkitpy... oh boy.


Michael
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Compiling Webkit --wincairo

2018-04-19 Thread Michael Catanzaro
On Thu, Apr 19, 2018 at 9:24 AM, Barone Ashura  
wrote:
Can someone give me some hints on how to better control the output of 
the build process?


I would just use CMake directly, so you won't need to deal with 
build-webkit getting in the way. That script is not really intended to 
be used for production builds, despite the --release option


Alternatively you could try to update FeatureList.pm to ensure it is 
able to disable all the things you want disabled, but this seems like a 
lost cause to me, as your mail shows clearly.


Good luck!

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Using compile_command.json in sources that go into Unified Sources

2018-03-26 Thread Michael Catanzaro
On Sat, Mar 24, 2018 at 6:03 PM, Cadu Bentzen  
wrote:
I included calling this script at the end of the build-webkit (under 
a command line option) script. So far it has work for me, but I 
wonder if this is the right approach or if you already solved that in 
another way.


Is compile_commands.json intended only for use by IDEs? If it's not 
going to break anything, then this seems reasonable to me. I would go 
ahead and submit a patch for review on bugs.webkit.org, and leave a 
link to it in this thread.


Michael
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2018-03-26 Thread Michael Catanzaro

On Fri, Mar 23, 2018 at 4:32 PM, JF Bastien  wrote:

Hello again WebKitten!

April 2018 is fast approaching, which means that we might be able to 
require GCC 6 and all the great C++17 features that’ll come with 
it. So what say you?
From C++17 it looks like we wouldn’t get quite a few things, but 
we’d be able to use a few nice things (see the table).


JF


Hi,

I've been asking around, and it sounds like this will be a significant 
inconvenience for some Igalia projects where upgrading the compiler is 
a bit difficult, but everyone agrees the time specified in the 
dependencies policy (the next Ubuntu LTS release) is fast approaching, 
and that the policy is a good compromise. It looks like the next Ubuntu 
release is due on April 26 [1], one month from today, so we should be 
good to require GCC 6 at that time. Sound good?


Michael

[1] https://wiki.ubuntu.com/BionicBeaver/ReleaseSchedule
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] HSTS user tracking

2018-03-01 Thread Michael Catanzaro
On Fri, Jan 5, 2018 at 3:11 PM, Brent Fulgham  
wrote:
I’m sorry we haven’t been forthcoming with details. We have 
wanted to put together a blog post explaining our fix, but have been 
preoccupied with a number of other security issues.


I will make this my top priority, or at least give a rough overview 
to the webkit-security folks if we can’t put together a blog-worthy 
document fast enough.


Thanks,

-Brent


Hi,

It'd still be great to get some details about your strategy for 
mitigating user tracking via HSTS.


It should be suitable for webkit-dev, rather than the private security 
list, right?


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] HSTS user tracking

2018-03-02 Thread Michael Catanzaro
On Fri, Mar 2, 2018 at 4:37 AM, Anne van Kesteren  
wrote:

FWIW, some were posted by John Wilander at
https://mailarchive.ietf.org/arch/msg/websec/t_R00ZDVHrBmroEX989GeaXdejE.


That's exactly what I was looking for... thanks!

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New iOS versions sending bogus User-Agent build data

2018-04-26 Thread Michael Catanzaro
On Thu, Apr 26, 2018 at 12:48 PM, Colin Bendell | +1.613.914.3387 
 wrote:

Can you give me an example where UA parsing is punishing users of
alternative user agents? Is this a theoretical problem, or a
widespread problem? I'm not asking to be divisive, but because I know
for a fact that UA parsing is improving the user experience. I can
give you dozens of examples where we must resort to UA parsing for the
betterment of the user (for all flavors of UAs).


I would say it's the most serious web compatibility problem that exists 
today. Our users complain and blame us when important websites are 
broken in WebKit because of it. I have personally wasted days [1] of 
[2] development [3] effort [4] playing with WebKit's user agent quirks 
to get important websites to work properly. You can look at the history 
of our quirks list for non-Safari ports [5] to get an idea of the 
trouble we've had to deal with in recent years. That doesn't count 
cases like [6] where I suspect user agent trouble, but just don't care 
to investigate.


As a web engine developer, it's hard to understate how frustrating this 
is, especially in cases like [7] where we had tons of users complaining 
and the quirks were particularly difficult to write. It sometimes feels 
like website developers are our enemy, just out to break our web 
engine. Sometimes that's even true, e.g. when websites intentionally 
decide to block access to unrecognized browsers, or scare our users 
with claims that a browser is "unsupported" even though it works fine 
with a UA quirk.


This is not a healthy situation for the web.

If everyone was careful and responsible with how they use the user 
agent, it wouldn't be a problem, but at this point it's long been 
spoiled for everyone. I'm sorry that this fallout affects developers 
like you who are just trying to work around a bug. :(


On Thu, Apr 26, 2018 at 12:48 PM, Colin Bendell | +1.613.914.3387 
 wrote:

Again I ask, is there room for compromise where we can expose the
version details in the UA (or some alternative) so that we ensure a
consistent and optimized user experience?


I don't know. I wish there was, but I don't think so. If you have any 
suggestions, that'd be great, but I think it's going to be extremely 
difficult or impossible to solve this problem in a way that makes 
everyone happy.


I don't think I'll be happy until major browsers send the same, 
standardized user agent as other major browsers. (Or send 
fully-randomized user agents, but that's probably an impossible dream.) 
Freezing just the version numbers is not good enough, but it's a step 
in the right direction, and I really appreciate it.


[1] https://trac.webkit.org/changeset/206519/webkit
[2] https://trac.webkit.org/changeset/216139/webkit
[3] https://trac.webkit.org/changeset/216343/webkit
[4] https://trac.webkit.org/changeset/217203/webkit
[5] 
https://trac.webkit.org/log/webkit/trunk/Source/WebCore/platform/UserAgentQuirks.cpp

[6] https://bugs.webkit.org/show_bug.cgi?id=180995
[7] https://bugs.webkit.org/show_bug.cgi?id=171770#c4

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] JavaScriptCore on Fuchsia

2018-06-27 Thread Michael Catanzaro
On Tue, Jun 26, 2018 at 6:49 PM, Yusuke SUZUKI  
wrote:
My suggestion is introducing Fushcia port, adding both 
PLATFORM(FUSHCIA) and OS(FUSHCIA) ifdefs.
Use OS(FUSHCIA) when the change is b/c of Fushcia's APIs. And use 
PLATFORM(FUSHCIA) to change
the policy of the released build (e.g. enabling / disabling FTL JIT 
etc.).
By doing so, JSCOnly port also becomes available in Fushcia. And it 
means that Fushcia port can benefit

from JSCOnly port's work for making WTF and JSC portable.


I wonder if PLATFORM(FUSHCIA) is even needed? Maybe OS(FUSHCIA) would 
suffice? Then instead of a separate Fushcia port, we would just have 
the existing JSCOnly port running on Fuschia.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Remove HAVE_ACCESSIBILITY

2018-11-14 Thread Michael Catanzaro
On Wed, Nov 14, 2018 at 7:49 PM, Fujii Hironori 
 wrote:

 No, it isn't high. It is no problem to keep the code.

CMake defines the similar name macro ENABLE_ACCESSIBILITY=0 in 
generated cmakeconfig.h.


  
https://trac.webkit.org/browser/webkit/trunk/Source/cmake/WebKitFeatures.cmake#L88


This confuses me. I want to fix.


I would remove the flag if it's enabled for all ports.

Michael
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Is gperf really needed when building the JSCOnly with CMake?

2018-10-01 Thread Michael Catanzaro
On Sun, Sep 30, 2018 at 7:29 PM, Konstantin Tokarev  
wrote:

Or, better, if (ENABLE_WEBCORE)


Yeah, that's better
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Is gperf really needed when building the JSCOnly with CMake?

2018-09-30 Thread Michael Catanzaro


Yeah, I'd just put it in an if (NOT ${PORT} STREQUAL "JSCOnly")

(writing that off the top of my head, probably somehow wrong)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] [jsc-dev] Proposal: Using LLInt Asm in major architectures even if JIT is disabled

2018-09-20 Thread Michael Catanzaro



I believe Guillaume has previously established that results in a 
substantial performance regression for WPE. It is currently running in 
production on tens of millions of consumer set top boxes. I think 
that's substantial testing. :)


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] [jsc-dev] Proposal: Using LLInt Asm in major architectures even if JIT is disabled

2018-09-20 Thread Michael Catanzaro

On Thu, Sep 20, 2018 at 12:02 PM, Filip Pizlo  wrote:
- Enable cloop/JSVALUE64 to work on 32-bit.  I don’t think it does 
right now, but that’s probably trivial to fix.

- Switch Darwin ports to that configuration for 32-bit.
- When changes land to support new features, make it mandatory to 
support JSVALUE64 and optional to support JSVALUE32_64.  Such changes 
should include whoever volunteers to maintain JSVALUE32_64 in CC.


If you guys consider JSVALUE32_64 to be critical, then you can go 
ahead and maintain it.  We’ll let JSVALUE32_64 stay in the tree so 
long as someone is maintaining it.


Yes that's fine with us. I think that's the previous agreement, anyway. 
:)


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] JSCOnly bots on dashboard

2019-01-02 Thread Michael Catanzaro

Hi,

I've updated https://build.webkit.org/dashboard/ to show our JSCOnly 
bots in addition to WPE and GTK, so we can monitor the health of these 
bots. Tip: disable all but the Linux ports in the upper-left to make 
the page load faster. Current status is:


* 90 failures on aarch64
* ARMv7 thumb2 and ARMv7 thumb2 softfp are GREEN! :)
* ARMv7 traditional fails to build
* 2 failures on MIPSel (one is flaky)

Also:

* 1 flaky JSC test on WPE
* 7-8 JSC failures on GTK

I promised to do this... what, half a year ago? Better late than never!

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Compile error in WebGL2RenderingContext.cpp

2019-01-17 Thread Michael Catanzaro



On Thu, Jan 17, 2019 at 11:12 AM, Darin Adler  wrote:
Vector’s inline capacity feature was originally created as an 
alternative to variable length arrays for most of the purposes people 
would want to put them.


Any advantages of this over std::array (which is widely-used in WebKit)?

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Compile error in WebGL2RenderingContext.cpp

2019-01-17 Thread Michael Catanzaro
On Thu, Jan 17, 2019 at 1:13 PM, Maciej Stachowiak  
wrote:

std::array is fixed size.


Er, yeah, oops. Size must be known at compile time, so it can't be used 
to replace a VLA. Vector it is


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Reducing globals

2019-01-15 Thread Michael Catanzaro

This:

On Thu, Nov 29, 2018 at 8:15 PM, Alex Christensen 
 wrote:
Specifically, I’m looking into reducing the number of members in 
the NetworkProcessCreationParameters structure.  Many of them need to 
go to NetworkSessionCreationParameters instead.  Could those 
maintaining the libsoup and libcurl networking implementations please 
lend a hand and move the members enclosed in USE(SOUP) or USE(CURL)?  
I have done similar moves in 
https://trac.webkit.org/changeset/238654/webkit and 
https://trac.webkit.org/changeset/238630/webkit if you would like a 
pattern to follow.


I'll try.

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Lots of spam on Bugzilla

2019-01-15 Thread Michael Catanzaro
On Wed, Dec 5, 2018 at 11:30 AM, Michael Catanzaro 
 wrote:
Wow, I never noticed this. I thought Apple folks were using 
superpowers to obsolete comments!


Hi,

Recently a spammer added me to his Bugzilla user watchlist (Preferences 
-> Email Preferences -> User Watching on the bottom left) to follow me 
across Bugzilla, and has been manually sending me spam emails. I 
suppose it's retaliation for my tagging several Bugzilla comments as 
Spam, now that I know how. (I've asked the WebKit admins to ban his 
account.) Hopefully I'm just unlucky, but you might want to check the 
list of accounts watching you for suspicious accounts!


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Compile error in WebGL2RenderingContext.cpp

2019-01-17 Thread Michael Catanzaro
On Thu, Jan 17, 2019 at 2:27 AM, Salisbury, Mark 
 wrote:

Thanks Tim!



I didn’t know about C++ variable length arrays.  That makes perfect 
sense now.




Looks like people have been requesting Visual Studio add support for 
VLAs; there are no indications they will be supported.


We shouldn't be using VLAs in WebKit. It's not standard C++, and even 
if it was, it's not safe. The code should use std::array or perhaps 
WTF::Vector.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] libsoup and libcurl networking implementations

2019-01-19 Thread Michael Catanzaro



I just started on reducing use of NetworkProcessCreationParameters, 
which is a little trickier than I was expecting. 
(WebCore::SoupNetworkSession vs. WebKit::NetworkSessionSoup: confusing 
much?)


I'll look into this too, since it's related.

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] What goes in FeatureDefines.xcconfig

2018-12-12 Thread Michael Catanzaro

On Mon, Dec 10, 2018 at 5:49 PM, don.olmst...@sony.com wrote:
Recently I did some work around syncing the contents of 
FeatureDefines.xcconfig and WebKitFeatures.cmake, 
https://bugs.webkit.org/show_bug.cgi?id=191167 . Michael mentioned 
someone noticing that ENABLE(RESOURCE_LOAD_STATISTICS) didn’t end 
up in that list. I did some digging and saw that it ended up in 
Platform.h, https://bugs.webkit.org/show_bug.cgi?id=189959 . So what 
I’m wondering is what is the criteria for something being in 
FeatureDefines.xcconfig and whether ENABLE_RESOURCE_LOAD_STATISTICS 
meets it


I just found wtf/FeatureDefines.h. Didn't know this existed.

Good grief, we have quite a mess here. Define your features in 
WebKitFeatures.cmake, FeatureList.pm, twenty FeatureDefines.xcconfig 
files, Platform.h, FeatureDefines.h


I think we can get rid of FeatureDefines.h and the vast majority of the 
defines in Platform.h. (I guess some will need to be kept where the 
logic required is more than a simple boolean, too complex for XCode.) 
WebKitFeatures.cmake and FeatureDefines.xcconfig we are stuck with, 
because those are needed for users to be able to configure the build. 
Then FeatureList.pm is questionable. It's a convenience to be able to 
easily pass flags to build-webkit, but this can also be done at the 
CMake or XCode levels, and I don't think it's worth the cost at all. So 
ideally we would have just WebKitFeatures.cmake and the 
FeatureDefines.xcconfig family of files that have to be manually kept 
in sync.


...unless am I missing something? Thoughts?

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Watch out for std::optional's move constructor

2018-12-18 Thread Michael Catanzaro

I know I'm getting a bit far afield here, but:

On Mon, Dec 17, 2018 at 9:26 PM, Ryosuke Niwa  wrote:
But then our behavior of HashMap which doesn't accept the POD 
integral value of 0 as a key


This behavior is really unexpected and dangerous [1], and we should 
seriously consider changing it. No doubt lots of bugs caused by this 
are just waiting to be uncovered. I've been working on WebKit since 
2014 and didn't know about this until last month.


Another oddity: I recently learned that AtomicStrings are actually 
interned strings. WTF. Why not call them that? I had thought for years 
that they were strings safe to be shared across threads, like other 
atomics. Not at all. Maybe this was dumb of me, but it could have been 
avoided by better naming.


Michael

[1] https://trac.webkit.org/changeset/238407/webkit

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Lots of spam on Bugzilla

2018-12-05 Thread Michael Catanzaro



On Tue, Dec 4, 2018 at 7:47 PM, Alexey Proskuryakov  
wrote:

Anyone can tag comments to make them invisible


How?

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Lots of spam on Bugzilla

2018-12-05 Thread Michael Catanzaro



On Wed, Dec 5, 2018 at 10:44 AM, ross.kirsl...@sony.com wrote:
You can click Tag and enter "spam". (There's also the "obsolete" tag 
for hiding, say, outdated feedback from the EWS bots. Unfortunately 
tagging is purely by manual entry right now, but it works.)


Wow, I never noticed this. I thought Apple folks were using superpowers 
to obsolete comments!


If we add rel="nofollow" then I think we should also respond with 
comments warning the spammers that we are using rel="nofollow" and 
their spam will not boost their SEO. Maybe that will convince 
individual spammers to give us a break.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] JSCOnly bots on dashboard

2019-01-03 Thread Michael Catanzaro
On Wed, Jan 2, 2019 at 1:54 PM, Yusuke Suzuki 
 wrote:
This is because of old ICU. In old ICU, Intl.NumberFormats does not 
work.

Intl feature usually requires very new ICU.

IIRC, the similar issue happened in test262, and Ross skipped them.
I think we should put the condition in the tests that checks the ICU 
version.


We have ICU 63 in the GTK jhbuild environment though, so that's the ICU 
version we're guaranteed to have when running tests. FWIW I see the 
same failures locally when I run:


$ run-webkit-tests --gtk js/intl-numberformat.html

The actual results actually look slightly better to me than the 
expected results.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] the name "AtomicString"

2018-12-19 Thread Michael Catanzaro

On Tue, Dec 18, 2018 at 9:31 PM, Darin Adler  wrote:
I’ve gotten used to the name AtomicString over the years, but I 
wouldn’t strongly object to changing it if other programmers are 
often confused by it’s similarity to the term “atomic 
operations”.


Well there were two other developers in the thread Ryosuke linked to 
who made the exact same mistake as me, so I do think the current name 
is problematic. A change wouldn't need to be drastic, though. I think 
suggestions from the old thread like "StringAtom" or "AtomString" would 
be unproblematic. The problem is the specific word "atomic" carries an 
expectation that the object be safe to access concurrently across 
threads without locks; I think that expectation doesn't exist if not 
for the "ic" at the end.


FWIW I've only ever heard the "interned string" terminology prior to 
now.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] 'final' class specifier and 'final' method specifier

2018-12-19 Thread Michael Catanzaro
On Wed, Dec 19, 2018 at 1:58 PM, Konstantin Tokarev  
wrote:
Adding override to method which already has final specifier doesn't 
affect anything,

because both final and override may ony be used on virtual methods


FWIW I prefer override because it's much more clear what that keyword 
is used for.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Hash table empty value

2018-12-19 Thread Michael Catanzaro

On Tue, Dec 18, 2018 at 2:31 PM, Ryosuke Niwa  wrote:
I tend to agree but then we'd come up with other numbers for the 
empty & deleted values.
I've been thinking that we could use -1 and -2 but that's also 
somewhat arbitrary restriction.


Using min/max values seems much safer. E.g. we already have in 
HashTraits.h:


// Default unsigned traits disallow both 0 and max as keys -- use these 
traits to allow zero and disallow max - 1.
template struct UnsignedWithZeroKeyHashTraits : 
GenericHashTraits {

   static const bool emptyValueIsZero = false;
   static T emptyValue() { return std::numeric_limits::max(); }
   static void constructDeletedValue(T& slot) { slot = 
std::numeric_limits::max() - 1; }
   static bool isDeletedValue(T value) { return value == 
std::numeric_limits::max() - 1; }

};

And:

template struct SignedWithZeroKeyHashTraits : 
GenericHashTraits {

   static const bool emptyValueIsZero = false;
   static T emptyValue() { return std::numeric_limits::min(); }
   static void constructDeletedValue(T& slot) { slot = 
std::numeric_limits::max(); }
   static bool isDeletedValue(T value) { return value == 
std::numeric_limits::max(); }

};

Which both seem much safer than the current default:

// Default integer traits disallow both 0 and -1 as keys (max value 
instead of -1 for unsigned).
template struct GenericHashTraitsBase : 
GenericHashTraitsBase {

   static const bool emptyValueIsZero = true;
   static void constructDeletedValue(T& slot) { slot = 
static_cast(-1); }
   static bool isDeletedValue(T value) { return value == 
static_cast(-1); }

};

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Spam and indexing

2019-03-29 Thread Michael Catanzaro
On Thu, Mar 28, 2019 at 3:57 PM, Alexey Proskuryakov  
wrote:

2. Block indexing completely.

Seems like no one was bothered by lack of indexing on new bugs so far.


Spam problem seems worse than not being indexed.

If you want to search for WebKit bugs, you can do that on WebKit 
Bugzilla, right?


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] webkitgtk 2.22.6 tarball inaccessible

2019-03-22 Thread Michael Catanzaro



Looks like a permissions mistake. We'll investigate.

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Rename AtomicString to AtomString

2019-03-04 Thread Michael Catanzaro


On Wed, Jan 30, 2019 at 1:38 PM, Adrian Perez de Castro 
 wrote:

Hi,

On Wed, 30 Jan 2019 08:31:49 -0800, Darin Adler  
wrote:


 So, did we reach consensus that we should rename AtomicString to 
AtomString?


Let's go with it 


https://bugs.webkit.org/show_bug.cgi?id=195276

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Reminder regarding formatting uint64_t

2019-02-27 Thread Michael Catanzaro

Hi,

For the past several years, I've been regularly fixing -Wformat 
warnings that look like this:


../../Source/WebKit/WebProcess/WebPage/WebPage.cpp:3148:46: warning: 
format ‘%llu’ expects argument of type ‘long long unsigned 
int’, but argument 6 has type ‘uint64_t’ {aka ‘long unsigned 
int’} [-Wformat=]
RELEASE_LOG_ERROR(ProcessSuspension, "%p - WebPage 
(PageID=%llu) - LayerTreeFreezeReason::ProcessSuspended was set when 
removing LayerTreeFreezeReason::PageTransition; current reasons are %d",
 
^~

this, m_pageID, m_LayerTreeFreezeReasons.toRaw());
  

Problem is that uint64_t is long long unsigned int on Mac, but only 
long unsigned int on Linux. It can't be printed with %llu, so please 
use PRIu64 instead. E.g.:


LOG("%llu", pageID); // wrong
LOG("%" PRIu64, pageID); // correct

This is good to keep in mind for any sized integer types, but uint64_t 
in particular since this is what causes problems for us in practice.


Thanks,

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Reminder regarding formatting uint64_t

2019-02-27 Thread Michael Catanzaro

On Wed, Feb 27, 2019 at 6:05 PM, Keith Rollin  wrote:

The underlying Cocoa os_log facility


Yeah this is really interesting too. RELEASE_LOG is Cocoa-specific, 
because it's only backed by os_log. So when you change debug LOGs to 
RELEASE_LOG, you're removing the logging for other platforms. I wonder 
if we should change that.


is able to greatly compress the logs stored in memory and on disk, as 
well as get corresponding performance benefits, by taking advantage 
of the fact that the formatting string is a literal that can be found 
in the executable’s binary image. When you log with a particular 
formatting string, that string is not included in the log archive, 
but a reference to it is. In the case that Michael gives, a reference 
to the big formatting string is stored along with the pointer, the 
unsigned long long, and the integer. In the above example, a 
reference to “%s” is stored, along with the fully-formatted 
string. This latter approach takes up a lot more memory.


Wow.

Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Moving to Git

2019-02-20 Thread Michael Catanzaro
FWIW, it's not hard to enforce fast-forward merges with a git hook; 
that way, we can guarantee that the history has no merge commits and is 
fully linear. GitLab has built-in support to enforce this for merge 
requests (though not for direct commits). I agree that linear history 
is a must for a project the size of WebKit. rNN tags would be nice, 
but hardly essential as long as the history is linear.


On Wed, Feb 20, 2019 at 1:38 PM, Bug Tracker 
 wrote:
I considered this option, but my work will involve touching multiple 
parts of the codebase and thus I would like to be able to keep up / 
merge locally with the upstream every now and then (e.g. on each 
relatively stable release, such as Apple's Safari Technology Preview).


However, all branches, tags etc. are available only on SVN.


Migrating to git would be wonderful, but a huge amount of 
infrastructure effort. Since it's unlikely that anyone is going to 
invest the large amount of effort required to transition WebKit to git 
anytime soon, I'd recommend learning how to work with git-svn. It's a 
bit of effort but not too hard, and way better than using Subversion 
directly.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Code Style: Opinion on returning void

2019-02-20 Thread Michael Catanzaro
On Wed, Feb 20, 2019 at 12:33 PM, Simon Fraser  
wrote:
I find it mind bending. It makes me wonder if the author made a 
coding error.


Yeah me too. It does seem to work nicely in Alex's CompletionHandler 
example, but still, I'd just add braces and return on an extra line if 
I was writing it.


Anyway, it seems we don't have any consensus here, so no need to create 
a rule.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Queries regarding few Components in webkit

2019-03-17 Thread Michael Catanzaro

Hi,

It might be more realistic to try making an existing WebKit port work 
on Haiku (either WebKitGTK or WPE WebKit) rather than try to create an 
entirely new port.


Previously you indicated that you were planning to create a new network 
backend for Haiku; that alone would be enough to occupy a developer 
full-time for a long while and doesn't seem very realistic. But that's 
just one small portion of developing and maintaining an entire WebKit 
port. Taking an existing port and making it run on Haiku would be much 
easier.


On Sun, Mar 17, 2019 at 7:38 AM, Rajagopalan Gangadharan 
 wrote:

What is a WKRetainPtr ? where can I use it?


It's a smart pointer for holding ownership of C API types, which you 
shouldn't be using. The C API is not stable and is slowly being 
retired. If you really don't want to use WebKitGTK or WPE WebKit, then 
you should create your own separate public API based on WebKit 
internals, not based on the C API. If you use the C API, your port will 
be difficult to maintain in the long run.


What is WKContext and WKView (I think Webview is different from 
WKView) -> as far my understanding is Context like the context menu 
an os offers (ie right clicking provides copy,paste etc.)


No, it's a library context object (corresponding to WebProcessPool). If 
you have two web contexts, you effectively have two separate instances 
of WebKit (e.g. separate NetworkProcess, separate data storage 
directories, separate everything) to avoid shared global state.



and View is where rendering takes place?


This is correct.

Good luck,

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] PSA: WebCore::Quirks should define the logic to determine if a particular site specific quirk is needed or not

2019-03-12 Thread Michael Catanzaro

On Tue, Mar 12, 2019 at 9:42 PM, Ryosuke Niwa  wrote:
On that note, I'd appreciate if someone who maintains PlayStation / 
Windows ports could cleanup standardsUserAgentForURL to use 
WebsitePolicies in WebKit layer instead of having the logic in 
WebCore.


Looks like standardUserAgentForURL is a stub for both PlayStation and 
Windows? Only the UserAgentGLib.cpp implementation of 
standardUserAgentForURL actually calls into UserAgentQuirks.cpp. What 
exactly are you hoping to have changed?


If anyone seriously looks into changing user agent quirks, it would be 
a good time to try investigating 
https://bugs.webkit.org/show_bug.cgi?id=191858 as well.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] -Wpessimizing-move and -Wredundant-move

2019-03-18 Thread Michael Catanzaro

Hi,

GCC 9 has new -Wpessimizing-move ("warning: moving a local object in a 
return statement prevents copy elision") and -Wredundant-move 
("warning: redundant move in return statement") warnings. These are 
enabled by -Wextra (which we use) and will be triggered by code like:


return WTFMove(foo);

when foo is a copyable type. This idiom is only appropriate if foo is a 
noncopyable (move-only) type. We have many, many instances of such 
code. I'm trying to fix them. Please don't add more! (It's easy enough 
to disable the warnings, but they're there for a reason.)


Thanks,

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] -Wpessimizing-move and -Wredundant-move

2019-03-18 Thread Michael Catanzaro

On Mon, Mar 18, 2019 at 4:43 PM, Andy Estes  wrote:
FWIW, Apple’s ports use the equivalent clang warning for 
pessimizing and redundant moves, and we cleaned up a bunch of these 
mistakes in our ports a few years ago. Hopefully you aren’t finding 
any of these mistakes in shared code.


There are a lot, actually. Maybe clang only has -Wpessimizing-move 
(which caused relatively few warnings) and not -Wredundant-move (which 
caused very many). I'm not actually sure what the difference is; in 
both cases, a local variable is cast to rvalue reference via std::move 
before it is returned.


Anyway: patch in https://bugs.webkit.org/show_bug.cgi?id=195920, review 
appreciated. That patch also fixes several -Wdeprecated-copy warnings 
and a couple -Wclass-memaccess, but the vast majority is just removing 
WTFMove().



(WTFMove was written to accommodate these warnings, in fact.)

Really glad you’re turning these warnings on!


Note we actually haven't changed our warning flags, they're just new 
warnings enabled by -Wextra, and we've always used -Wextra. So let's 
thank the GCC developers. Each new GCC is a ruined day for me whenever 
I try to make WebKit build cleanly, but the warnings are worth it.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] -Wpessimizing-move and -Wredundant-move

2019-03-19 Thread Michael Catanzaro
On Tue, Mar 19, 2019 at 12:57 AM, Tomas Popela  
wrote:
If a note from 
https://cgit.freedesktop.org/libreoffice/core/commit/?id=dc06c8f4989fc28d0c31ebd333e53dfe0e0f5f66 
applies, then you can't fix it until we support Ubuntu 14.04 (due to 
its old gcc version):


Turns out the
std::move can only be dropped if the compiler has a fix for CWG1579.  
For GCC

that's the case starting with GCC 5.1


Currently we require GCC 6 to build, and if we follow our dependencies 
policy we'll be able to require GCC 7 next month, so that should be no 
problem.



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] -Wpessimizing-move and -Wredundant-move

2019-03-19 Thread Michael Catanzaro
Several more return WTFMove() cases were committed just between 
yesterday and today. Please be careful. :)


On Tue, Mar 19, 2019 at 8:01 AM, Emilio Cobos 
=?iso-8859-1?q?=C1lvarez?=  wrote:
In Gecko, when I switched from mozilla::Move to std::move [1], I had 
to

disable the warning and fix all of them in a followup, since clang
didn't use to warn about them.


We used to have WTF::move defined as a function, but now it's a #define 
to ensure std::move gets called directly. I think that's what Andy 
meant when he says "WTFMove was written to accommodate these warnings."


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Experimental features review

2019-02-13 Thread Michael Catanzaro

Hi,

Last year, we cleaned up experimental features in WebPreferences.yaml 
to ensure no experimental features were enabled by default. Since then 
we have regressed a bit when enabling cool new web features. :) 
Currently we have 12 offenders, listed below. Most likely, the 
category: experimental line should be removed from these features. 
Alternatively, the defaultValue should be changed to either false or 
DEFAULT_EXPERIMENTAL_FEATURES_ENABLED (or something depending on that).


If you know about any of these settings, please keep reading and help 
decide what to do with them:


BlankAnchorTargetImpliesNoOpenerEnabled
ThirdPartyIframeRedirectBlockingEnabled
ScreenCaptureEnabled
WebRTCUnifiedPlanEnabled
WebRTCVP8CodecEnabled
WebRTCH264SimulcastEnabled
WebRTCMDNSICECandidatesEnabled
IntersectionObserverEnabled
VisualViewportAPIEnabled
DarkModeCSSEnabled
WebSQLDisabled
ProcessSwapOnCrossSiteNavigationEnabled

Details:

BlankAnchorTargetImpliesNoOpenerEnabled:
  type: bool
  defaultValue: true
  webcoreBinding: RuntimeEnabledFeatures
  humanReadableName: "Blank anchor target implies rel=noopener"
  humanReadableDescription: "target=_blank on anchor elements implies 
rel=noopener"

  category: experimental

ThirdPartyIframeRedirectBlockingEnabled:
  type: bool
  defaultValue: true
  humanReadableName: "Block top-level redirects by third-party iframes"
  humanReadableDescription: "Block top-level redirects by third-party 
iframes"

  category: experimental

ScreenCaptureEnabled:
 type: bool
 defaultValue: true
 webcoreBinding: RuntimeEnabledFeatures
 condition: ENABLE(MEDIA_STREAM) && PLATFORM(MAC)
 humanReadableName: "ScreenCapture"
 humanReadableDescription: "Enable ScreenCapture"
 category: experimental

WebRTCUnifiedPlanEnabled:
 type: bool
 defaultValue: true
 webcoreBinding: RuntimeEnabledFeatures
 condition: ENABLE(WEB_RTC)
 humanReadableName: "WebRTC Unified Plan"
 humanReadableDescription: "Use WebRTC Unified Plan"
 category: experimental

WebRTCVP8CodecEnabled:
 type: bool
 defaultValue: true
 webcoreBinding: RuntimeEnabledFeatures
 condition: ENABLE(WEB_RTC)
 humanReadableName: "WebRTC VP8 codec"
 humanReadableDescription: "Enable WebRTC VP8 codec"
 category: experimental

WebRTCH264SimulcastEnabled:
 type: bool
 defaultValue: true
 webcoreBinding: RuntimeEnabledFeatures
 condition: ENABLE(WEB_RTC)
 humanReadableName: "WebRTC H264 Simulcast"
 humanReadableDescription: "Enable WebRTC H264 Simulcast"
 category: experimental

WebRTCMDNSICECandidatesEnabled:
 type: bool
 defaultValue: true
 humanReadableName: "WebRTC mDNS ICE candidates"
 humanReadableDescription: "Enable WebRTC mDNS ICE candidates"
 webcoreBinding: RuntimeEnabledFeatures
 category: experimental
 condition: ENABLE(WEB_RTC)

If the above features are to remain experimental, they should be sorted 
lower in the file, below this comment explaining experimental feature 
policy:


# For experimental features:
# The type should be boolean.
# You must provide a humanReadableName and humanReadableDescription for 
all experimental features. They

# are the text exposed to the user from the WebKit client.
# The default value may be either false (for unstable features) or
# DEFAULT_EXPERIMENTAL_FEATURES_ENABLED (for features that are ready for
# wider testing).

More offenders:

IntersectionObserverEnabled:
 type: bool
 defaultValue: true
 humanReadableName: "Intersection Observer"
 humanReadableDescription: "Enable Intersection Observer support"
 webcoreBinding: RuntimeEnabledFeatures
 category: experimental
 condition: ENABLE(INTERSECTION_OBSERVER)

VisualViewportAPIEnabled:
 type: bool
 defaultValue: true
 humanReadableName: "Visual Viewport API"
 humanReadableDescription: "Enable Visual Viewport API"
 category: experimental

DarkModeCSSEnabled:
 type: bool
 defaultValue: true
 humanReadableName: "Dark Mode CSS Support"
 humanReadableDescription: "Enable Dark Mode CSS Support"
 webcoreBinding: RuntimeEnabledFeatures
 category: experimental
 condition: ENABLE(DARK_MODE_CSS)

WebSQLDisabled:
 type: bool
 defaultValue: true
 humanReadableName: "Disable Web SQL"
 humanReadableDescription: "Disable Web SQL"
 webcoreBinding: RuntimeEnabledFeatures
 category: experimental

This one's weird because it's Disabled rather than Enabled... the 
semantics should probably be reversed. We probably want a WebSQLEnabled 
feature defaulting to false?


ProcessSwapOnCrossSiteNavigationEnabled:
 type: bool
 defaultValue: DEFAULT_PROCESS_SWAP_ON_CROSS_SITE_NAVIGATION_ENABLED
 humanReadableName: "Swap Processes on Cross-Site Navigation"
 humanReadableDescription: "Swap WebContent processes on cross-site 
navigations"

 category: experimental
 webcoreBinding: none

DEFAULT_PROCESS_SWAP_ON_CROSS_SITE_NAVIGATION_ENABLED is TRUE on macOS 
and iOS, bypassing DEFAULT_EXPERIMENTAL_FEATURES_ENABLED.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Experimental features review

2019-02-14 Thread Michael Catanzaro
On Wed, Feb 13, 2019 at 9:16 PM, Simon Fraser  
wrote:
For these two, we now have them on by default because we think they 
are ready to ship. They still exist as experimental features so that 
people can turn them off for regression testing, but is the policy 
now to move them back to Debug features at this stage?


Well, I'm really not sure, other than that the feature is no longer 
supposed to be experimental once it's ready to be on by default.


I notice there is a new class of features called internal features:
https://trac.webkit.org/changeset/235921/webkit. Perhaps that would 
suffice for regression testing?


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Experimental features review

2019-02-14 Thread Michael Catanzaro



No strong opinion from me here. I'm not familiar with how Safari's UI 
exposes some features but not others. In the GTK/WPE API, the features 
are not enumerable and only a few selected features are exposed at all, 
so that's not an issue for us.


I do think we have a semantic issue, though, if some features 
considered "experimental" are enabled by default. Not sure what the 
solution is. (And of course, if we change our experimental features 
policy, we'll want to ensure the comment in the WebPreferences.yaml 
file is updated.)


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Tools/TestWebKitAPI

2019-02-05 Thread Michael Catanzaro

Hi,

I started writing this mail to propose creating a separate ChangeLog 
for Tools/TestWebKitAPI, to make the Tools/ ChangeLog more focused on, 
you know, actual tools. So many of my changes under Tools/ are to the 
API tests.


But this reminded me that TestWebKitAPI is the only testsuite we have 
under Tools/. All the rest are toplevel directories:


JSTests/
LayoutTests/
ManualTests/
PerformanceTests/
WebDriverTests/
WebPlatformTests/

So it almost doesn't fit under Tools/ at all, right? Would there be any 
objections to moving it to a toplevel WebKitAPITests/ or just APITests/ 
directory? That would nicely parallel all our other tests.


(The practical objection is that moving anything is difficult for 
someone without familiarity with both XCode and CMake. I'd only be able 
to help with the CMake portion of the move. And then Apple internal 
build will inevitably break too, so someone would need to volunteer to 
care for that.)


If we don't want to move it, I guess a new ChangeLog file would be 
fine? :)


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Tools/TestWebKitAPI

2019-02-05 Thread Michael Catanzaro

On Tue, Feb 5, 2019 at 4:01 PM, ross.kirsl...@sony.com wrote:
That said, I would expect specifically the Tools/TestWebKitAPI/Tests 
subdirectory to be the thing moved to APITests/, since the code that 
actually runs the tests is as much a “tool” as DRT, WKTR, or 
various other test-running scripts under

 Tools/Scripts are.


I dunno, we could do it either way, but there's value in keeping 
related code together. E.g. our tests subclass lots of TestWebKitAPI 
classes, so we'd have code in APITests/ subclassing stuff under 
Tools/TestWebKitAPI/. It's much more tightly-coupled than, say, the 
layout tests are to TestController/WKTR, which communicates with layout 
tests over well-defined interfaces. In contrast, our API tests really 
depend on implementation details of TestWebKitAPI and they often have 
to be changed in tandem.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Rename AtomicString to AtomString

2019-01-30 Thread Michael Catanzaro



On Wed, Jan 30, 2019 at 10:31 AM, Darin Adler  wrote:
So, did we reach consensus that we should rename AtomicString to 
AtomString?


+1 from me, it seems like a much less confusing name.

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] More suggested Bugzilla component renames

2019-02-01 Thread Michael Catanzaro

WebKit Gtk -> WebKitGTK+ (or just WebKitGTK if the + is not allowed)
WebKit WPE -> WPE WebKit

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Reducing globals

2019-01-30 Thread Michael Catanzaro

Sorry again for the delay. I've started here:

https://bugs.webkit.org/show_bug.cgi?id=194075

That covers the first two out of six parameters. I'll do 
CookieAcceptPolicy next, separately, since it requires modifying 
cross-platform stuff to do properly. And then the second half.


Michael

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit2 owners help for GTK and WPE

2019-02-04 Thread Michael Catanzaro



Also:

[GTK] Implement back/forward touchpad gesture
https://bugs.webkit.org/show_bug.cgi?id=193919

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] CI builds failing for ppc64, ppc64le and s390x

2019-06-04 Thread Michael Catanzaro



https://bugs.webkit.org/show_bug.cgi?id=198518


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] CI builds failing for ppc64, ppc64le and s390x

2019-06-03 Thread Michael Catanzaro



Did your builds for ARM succeed? We're having a similar (though 
completely different) packing problem there:


https://bugs.webkit.org/show_bug.cgi?id=198274


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Windows 32-bit support?

2019-06-25 Thread Michael Catanzaro
On Tue, Jun 25, 2019 at 8:31 AM, Arunprasad Rajkumar 
 wrote:
So my question is, do WebKit/JavaScriptCore still supports 32-bit 
Windows?


Hi Arunprasad,

The last version of WebKitGTK to support Windows was 2.4, from 2014.

If you had 2.22 working, that's news to us. To my knowledge, nobody has 
ever done that before. You might well be the only one; certainly you're 
the only one to tell us about it. Anyway, that's cool.


We don't support Windows anymore because nobody seems to be interested 
in (a) making it work, and (b) maintaining the code upstream. So you're 
kinda on your own here. If you only needed a few downstream changes 
required to make it work, then we could consider accepting those 
upstream if you'd be willing to maintain the Windows-specific parts. 
We're not going to be willing to bring back real Windows support 
otherwise, since all current developers use Linux and are only 
interested in Linux.


Anyway, to answer your question: JavaScriptCore is used on Windows by 
the Apple Windows port and the WinCairo port, and there is very little 
GTK-specific code in JSC, so this should be the easiest part of 
WebKitGTK to get working on Windows. You might consider basing your 
Windows port on WinCairo rather than WebKitGTK, since that port is 
designed to run on Windows.


Good luck,

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Windows 32-bit support?

2019-06-25 Thread Michael Catanzaro
On Tue, Jun 25, 2019 at 10:42 AM, Michael Catanzaro 
 wrote:
You say the cloop seems unstable for you, which is option (3). So 
perhaps you should try option (2) if you haven't already. I'm not 
actually sure if that works, because I'm not an expert, which is why 
I added that (?) to it. But at least it couldn't hurt to try.


I'm being advised that (2) isn't going to work on 32-bit either. So 
you'll need to try to make cloop work. Good luck... I'm not aware of 
anybody else supporting JSC on 32-bit Windows.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Windows 32-bit support?

2019-06-25 Thread Michael Catanzaro
It's great that you find our stable branches helpful, but keep in mind 
those branches do not include Windows-specific fixes.


On Tue, Jun 25, 2019 at 9:53 AM, Arunprasad Rajkumar 
 wrote:
Right. Actually the problem is in 32-bit Windows platform. I see that 
the JIT support has been dropped some time ago, and CLOOP based 
backend seems to be unstable on 32-bit Windows. Any thoughts on that?


So I'm not an expert here, but I understand there are three ways you 
can build JSC:


(1) -DENABLE_JIT=ON, -DENABLE_C_LOOP=OFF
(2) -DENABLE_JIT=OFF, -DENABLE_C_LOOP=OFF (?)
(3) -DENABLE_JIT=OFF, -DENABLE_C_LOOP=ON

(-DENABLE_JIT=ON and -DENABLE_C_LOOP=ON are incompatible.)

I believe that nowadays the only 32-bit platforms supported by JIT are 
Linux, and there only for ARM and MIPS, not x86. So you're almost 
certainly going to need to use -DENABLE_JIT=OFF. That eliminates option 
(1).


You say the cloop seems unstable for you, which is option (3). So 
perhaps you should try option (2) if you haven't already. I'm not 
actually sure if that works, because I'm not an expert, which is why I 
added that (?) to it. But at least it couldn't hurt to try.


Maybe the Windows port maintainers know more about the status of 32-bit 
Windows support?


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2019-06-17 Thread Michael Catanzaro
Alex already switched all WebKit ports to building with C++17 enabled 
in https://bugs.webkit.org/show_bug.cgi?id=197131.


On Sun, Jun 16, 2019 at 8:25 PM, Sam Weinig  wrote:
If the issue is getting these bots updated, can we do that? Are there 
any other bots that might need updating as well?


We've previously agreed that we can increase the GCC version limit to 
GCC 7, but nobody ever implemented this. Reported 
https://bugs.webkit.org/show_bug.cgi?id=198914.


The easiest way to sniff out which bots should be upgraded is to just 
land the change and see which bots break. But I'll ask internally to 
ensure all remaining Igalia bots are upgraded to GCC 7 soon.


Be aware that while GCC 7 has basic support for structured bindings, 
there are limitations documented at 
https://gcc.gnu.org/projects/cxx-status.html which are not supported 
until GCC 8.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2019-05-11 Thread Michael Catanzaro
On Fri, May 10, 2019 at 6:47 PM, Yusuke Suzuki  
wrote:

1. We can use GCC 7
2. We can use libstdc++7

Is my understanding correct? Basically, this means that we can use 
cool C++17 features super aggressively :)


I would say you can use cool C++ 17 features cautiously, enjoying those 
features when they work, and expecting the possibility of libstdc++7 
bugs causing them to not work.


I think our EWS bots are not yet on GCC 7, but that should be addressed 
soon.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2019-05-07 Thread Michael Catanzaro



Since there were no objections, I've updated the policy on the wiki:

https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy
https://trac.webkit.org/wiki/WebKitGTK/GCCRequirement

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2019-05-07 Thread Michael Catanzaro
On Tue, May 7, 2019 at 1:53 PM, Alex Christensen 
 wrote:
If you have a minimum-requirements system that you want to keep 
building, put build infrastructure on build.webkit.org so we can see 
when things break.


We already have stable release bots to test the lowest-supported 
configurations, but most developers should only ever need to worry 
about EWS, as always.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2019-05-07 Thread Michael Catanzaro
On Tue, May 7, 2019 at 1:46 PM, Konstantin Tokarev  
wrote:
Note that since we have to support libstdc++ 6.x, most of C++17 
standard
library features () should be disallowed. Those include 
std::filesystem,

std::string_view, etc. Core language features should be fine.


With my suggested one-time exception to drop support for Debian Stretch 
early due to lack of security updates there, I think it's perfectly 
fine to require libstdc++ 7 now. Igalia's EWS and stable release bots 
might need to be updated, but this is not a problem.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] C++17 is here. Should we use it?

2019-05-04 Thread Michael Catanzaro
On Tue, Apr 23, 2019 at 10:50 AM, Konstantin Tokarev 
 wrote:
[1] says: "we support each major Debian version until one year after 
the release of the next major version"


Given that Buster is not released yet, bumping GCC requirement to 7 
seems to be premature.


The dependencies policy states that toolchains are only supported until 
the release of the next major version, but yes, the Debian Buster 
release has not happened yet and is likely still several months away.


Still, it's been two weeks since Alex proposed to require GCC 7, and no 
objections have been posted to this list. After talking with Berto, 
I've confirmed that Debian is OK with building packages with Clang if 
need be, and if it works for Debian it should work for Ubuntu as well. 
So instead of requiring that WebKit build with the default system 
compiler, we can just require that it build with *some* system compiler.


We do need to support the distro's libstdc++ for the full year after 
the next release, though, as otherwise it won't be possible for the 
distros to continue to update WebKit. The current policy language 
regarding toolchains does not account for that. So I'd like to simplify 
this by saying that we support some system compiler for one year after 
the release of the next major version, but not necessarily the default 
system compiler.


My proposed changes to 
https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy are:


Keep:

"""
Our dependencies policy is simple:

* We support each major Debian version until one year after the 
release of the next major version.
* We support each Ubuntu LTS until one year after the release of the 
next Ubuntu LTS.

"""

Then replace all the rest with:

"""
During the support period, we intend for WebKit to remain buildable on 
these distributions using some system-provided compiler, not 
necessarily the default system compiler, and with the default system 
libstdc++. The purpose of this policy is to ensure distributions can 
provide updated versions of WebKit during the support period to ensure 
users receive security updates.

"""

Now, those changes would imply that we can require GCC 7 now, but not 
yet libstdc++ 7, since the policy would normally require that we 
continue supporting Debian Stretch for another year. But we can make a 
one-time decision to ignore that, because Stretch isn't receiving 
WebKit security updates, so it doesn't really matter. Now, good news: 
Debian Buster will be the first version to receive WebKit updates, 
thanks to our promises of stable dependencies and Ubuntu's success with 
providing WebKit updates during the last two years. The goal of 
providing security updates to Debian will fail if we drop support for 
Debian's libstdc++ within their primary security support period (one 
year after release of the next version), though; that would be a major 
setback. So my proposed change makes it easier to increase our GCC 
requirement (if the old distros can build with old clang, then we can 
do it), but harder to increase our libstdc++ requirement (need to wait 
one additional year to do so).


The proposed future would look like this:

* Imminently: require GCC 7 and libstdc++ 7
* April 2021: require libstdc++ 8 (one year after Ubuntu 20.04 release)
* Late 2021 or early 2022: require libstdc++ 9 (one year after the 
successor to Debian Buster is released)


Then we can require new GCCs whenever we want, as long as the old 
clangs suffice. Ubuntu 18.04 has clang 6.0, for instance, so as long as 
clang 6.0 works, then we can advance to GCC 8 whenever desired. Debian 
Buster has clang 7.0, so come April 2021 we'd be able to require that. 
But one of the system compilers would need to work for the full three 
years. Then the long support period for libstdc++ is required to make 
sure our users don't get cut off from security updates. There's no way 
around that: if we want to require newer standard libraries, then our 
users will no longer receive updates, period.


Is this OK?

OTOH, GCC 6 has partial support of C++17 [2,3] under -std=c++1z, 
which might be sufficient for now.


Beware that GCC 9, released yesterday, is the first version in which 
C++ 17 support is no longer experimental. Most things should work in 
GCC/libstdc++ 7, but as always, there's going to be bugs that we're 
going to have to live with.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Spam and indexing

2019-05-02 Thread Michael Catanzaro

On Thu, May 2, 2019 at 4:32 PM, Darin Adler  wrote:
For example, can someone without administration privileges do the 
right thing?


Nope.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] [CMake] Bump cmake_minimum_required version to 3.10

2019-06-27 Thread Michael Catanzaro
On Thu, Jun 27, 2019 at 11:20 AM, Brent Fulgham  
wrote:
Apple is in the process of bringing up VS2019 now. I would be in 
favor of moving the minimum to 3.14 so we can safely support VS2019 
compiles.


The 3.14 target is too aggressive for WPE/GTK, unfortunately. You could 
use a different cmake_minimum_required for Windows only, of course.



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] What's the current Safari UA?

2019-07-12 Thread Michael Catanzaro

Hi,

Relevant to [1], could someone please check what Safari's current UA 
string is, please? This is important to help me make sure WebKitGTK 
fakes the Safari user agent as well as possible. In particular, I'd 
like to know the version numbers used in the UA. I had thought we were 
frozen on:


Version/11.0 Safari/605.1.15

forever, but perhaps the Version/ component is not frozen and we're up 
to Version/12.0 or Version/12.1 now? I hope the 605.1.15, at least, is 
still frozen.


Also, for those naughty websites that require we use some serious 
fakery and pretend to be macOS, we currently use the string "Macintosh; 
Intel Mac OS X 10_13_4". I understand that Apple's previous attempt to 
freeze that value was not successful, so we still need to update this 
from time to time. What does it look like on, say, Mojave or Catalina?


Thanks,

Michael

[1] https://bugs.webkit.org/show_bug.cgi?id=199745


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] What's the current Safari UA?

2019-07-12 Thread Michael Catanzaro


I received a good answer and will upgrade our versions accordingly. 
Thanks.



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Moving to Python 3

2019-07-12 Thread Michael Catanzaro
On Fri, Jul 12, 2019 at 2:18 PM, Jonathan Bedard  
wrote:
The trouble I foresee us encountering with any scheme which attempts 
a conversion which retains both Python 2.7 and Python 3 compatibility 
is code like this:


Is python2 support required for a well-motivated transitional purpose?

I had previously proposed making all our scripts work with both python2 
and python3 only because I thought Apple was going to require python2 
indefinitely. Now that you're interested in this transition, there's 
probably no need to continue python2 support. Anyone building WebKit on 
older versions of macOS can reasonably be expected to manually install 
python3, right? And it's clear that you're prepared to do this for 
infrastructure/bots already.


Then million-dollar question is: what shebangs will we use for our 
scripts? Will #!/usr/bin/env python3 work for Apple?


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Moving to Python 3

2019-07-12 Thread Michael Catanzaro

On Fri, Jul 12, 2019 at 5:22 PM, Ryosuke Niwa  wrote:
I frequently do WebKit development in older versions of macOS to 
diagnose old OS specific regressions, and having to install Python 3 
each time I install an old OS is too much of a trouble.


I understand it would be a hassle. :/ But please consider it relative 
to the additional difficulty of rewriting all of webkitpy to support 
multiple versions of python at the same time, or setting up a wrapper 
layer of bash scripts around all of our python scripts to enter a 
virtualenv before executing the real script.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Moving to Python 3

2019-07-13 Thread Michael Catanzaro
On Sat, Jul 13, 2019 at 6:02 PM, Maciej Stachowiak  
wrote:
This is exactly what virtualenvs can do. And this is how we should do 
it IMO, even for systems that natively have some version of Python 3.


I guess that's fine for everything not required by the CMake build, 
e.g. build-webkit and webkitpy. That's probably 99% of our python code.


Scripts required by the CMake build should use system python3 though, 
not the virtualenv. I guess that's 1% or less of our python. OK?


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Moving to Python 3

2019-07-14 Thread Michael Catanzaro
On Sat, Jul 13, 2019 at 9:26 PM, Maciej Stachowiak  
wrote:

Can you clarify why this is needed?


Well it just wouldn't seem very kosher to use a virtualenv for the 
serious work of performing real distro builds, right? In contrast to 
developer scripts for developer convenience, where I'd say it's 
perfectly fine to do whatever we want. But official builds should 
surely be performed using system dependencies only.


Anyway, it doesn't seem like a problem. From searching for 'python' in 
my build.ninja, I find:


JSC:

ud_itab.py
generateWasmOpsHeader.py
generateWasmValidateInlinesHeader.py
generateWasmB3IRGeneratorInlinesHeader.py
create_regex_tables
generateYarrUnicodePropertyTables.py
generateIntlCanonicalizeLanguage.py
KeywordLookupGenerator.py
generate-inspector-protocol-bindings.py
generate-js-builtins.py
generateYarrCanonicalizeUnicode
generate-combined-inspector-json.py
jsmin.py
cssmin.py
make-js-file-arrays.py

WebCore:

create-html-entity-table
create-http-header-name-table
makeSelectorPseudoClassAndCompatibilityElementMap.py
makeSelectorPseudoElementsMap.py

WebKit:

generate-message-receiver.py
generate-messages-header.py

WebInspectorUI:

copy-user-interface-resources.pl (perl script that runs some python)

Tools:

generate-inspector-gresource-manifest.py

It's possible I've missed some, but that's probably most of them. 
Basically all the scripts under Source/ -- the scripts that are really 
required to build -- and that one platform-specific exception under 
Tools/, shouldn't require a virtualenv IMO. That doesn't seem too 
difficult to ensure. We could either have them use the virtualenv only 
optionally if it's somehow already available (I'm not familiar with how 
it works) or only if the scripts detect that webkitpy exists, or just 
make this subset of scripts compatible with both python2 and python3 
for the next couple years.


In contrast, the vast majority of our python scripts are not required 
to build. They live under Tools/Scripts, are only used by developers, 
and are not included in release tarballs at all. That includes all of 
webkitpy, anything used by build-webkit, anything used by 
run-webkit-tests, etc. I'd say we can go crazy here. You get a 
virtualenv, you get a virtualenv, everybody gets a virtualenv!


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Spam and indexing

2019-04-22 Thread Michael Catanzaro
Not indexing bugs.webkit.org will be sad for people who won't be able 
to find bugs they may be interested in via search engines... but those 
people are probably not WebKit developers working with WebKit on a 
daily basis. For us, it's just annoying to deal with the spam. I would 
turn off the indexing if we think it could make a difference.




___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Spam and indexing

2019-04-22 Thread Michael Catanzaro
On Mon, Apr 22, 2019 at 11:06 AM, Konstantin Tokarev 
 wrote:
Another possible way is to disable self-registration for new users, 
similarly

to what LLVM project did [1].


GCC Bugzilla did this a long time ago.

It will make it really hard to convince users to report bugs. I would 
try deindexing first, since it's a smaller hammer. Then we could try 
this if that fails.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Requesting feedback about EWS comments on Bugzilla bugs

2019-06-16 Thread Michael Catanzaro
1-4 all seem uncontroversial, especially with Tim's suggested 
improvement to immediately leave a "some queues failed" comment.


On Sat, Jun 15, 2019 at 11:13 PM, Aakash Jain  
wrote:
5) Do not comment on bugzilla bug at all, instead send email to the 
author of the patch.
Pros: less noisy, also this will allow to include more detailed 
information about the failure in email.
Cons: reviewers would have to click status-bubbles to see the 
failures, failure information is not immediately present in the 
comments.


Well I think this would be OK, but next we'll be complaining about the 
emails. The underlying problem is excessive test flakiness. We're just 
not doing a very good job of tracking flaky tests and EWS isn't good at 
detecting flaky tests automatically. (Often a flaky test will fail 
twice in the same run, and that gets detected as a test failure.) 
Instead of reporting bugs for such tests, we're ignoring them because 
there are so many and we're so used to it.


commit-queue is able to report bugs when it detects a flaky patch, but 
EWS doesn't do this. That might be a positive change. Of course, EWS 
would need to be smart enough to not report a bug if the flakiness is 
triggered by the patch itself, which might not be simple to determine.


I don't have any concrete suggestions here. Just brainstorming.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] [Styling] Space between [] and () in C++ lambdas

2019-11-01 Thread Michael Catanzaro

On Fri, Nov 1, 2019 at 11:19 am, Ryosuke Niwa  wrote:

Namely, some people write a lambda as:
auto x = [] () { }

with a space between [] and () while others would write it as:

auto x = []() { }


: I omit the () when there are no parameters, as in these examples.

No preference on spacing.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Issues running remote debug inspector for WPE instance with Epiphany dev preview

2019-10-11 Thread Michael Catanzaro



Hi Ryan,

This is https://bugs.webkit.org/show_bug.cgi?id=202321

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Introducing a minimum ICU version for WebKit

2020-04-09 Thread Michael Catanzaro



On Thu, Apr 9, 2020 at 11:49 am, Alexey Proskuryakov  
wrote:


The license is not BSD or LGPL, so that's one aspect to consider.

Why exactly are distros unwilling to update ICU?

- Alexey


Distros would upgrade to newer minor releases of the library, but 
updating system packages to new major versions is not allowed in most 
stable distros.


Sometimes distros make exceptions (e.g. for WebKitGTK, which is special 
due to very high number of CVEs), but ICU does not warrant an 
exception. There are probably hundreds of applications using ICU in 
distros, if not more. Who knows what might break!



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Introducing a minimum ICU version for WebKit

2020-04-09 Thread Michael Catanzaro
On Thu, Apr 9, 2020 at 2:48 pm, Michael Catanzaro 
 wrote:
Sometimes distros make exceptions (e.g. for WebKitGTK, which is 
special due to very high number of CVEs), but ICU does not warrant an 
exception. There are probably hundreds of applications using ICU in 
distros, if not more. Who knows what might break!


Also, sadly ICU does not maintain a stable API or ABI. So every 
application and library using ICU would need to be rebuilt and updated 
at the same time. Then the update would break any custom software that 
users have using the system ICU. Such an update would go badly... 
probably would wind up in tech news once people notice the breakage.


WebKitGTK can be updated because we maintain stable API/ABI.


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Introducing a minimum ICU version for WebKit

2020-04-09 Thread Michael Catanzaro



Any objections to uploading a bundled ICU 60 under Source/ThirdParty?

Seems easier than forcing downstreams to work out bundling themselves. 
Most major distros will just stop providing WebKit security updates if 
we don't bundle it for them. E.g. this is sure to kill Ubuntu's current 
long streak of providing our updates to Ubuntu 16.04.



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Introducing a minimum ICU version for WebKit

2020-04-09 Thread Michael Catanzaro




On Thu, Apr 9, 2020 at 7:08 pm, "Olmstead, Don"  
wrote:

Hi Michael,

There are a couple problems with checking in a version of ICU.

* Other libraries used by WebKit have dependencies on ICU. For our 
ports harfbuzz, libxml2, libxslt, libpsl and CFlite all require ICU.


You're right, it's a bad idea.

* ICU doesn't come with a CMake build system and its non-trivial to 
make one. We've largely used this 
https://github.com/LibCMaker/ICU_CMake_Files to handle building ICU 
but its use is also why ICU is the library we aren't able to update 
on a regular cadence.


Another good point. Hadn't thought that through far enough.

* We aren't terribly good with updating things in ThirdParty. 
Sometimes this is because there aren't releases, see gtest. Others 
because they don't actually have releases, see ANGLE. On top of that 
there might be local modifications to make things work within WebKit.


Of course, bundling things in ThirdParty is an absolute last resort. 
But when using system packages is no longer possible, what else to do? 
I have to support WebKit on RHEL 7, which has ICU 50. Mike from SUSE is 
trying to support SLE 12, which has ICU 52. You can see it doesn't add 
up. :)


But I didn't object to the ICU 60 proposal because (a) our dependency 
policy allows cutting off distros older than Ubuntu 18.04 and Debian 
Buster, and (b) I figured we would just bundle it. Instead, a better 
approach is probably to come up with downstream patches to revert all 
the changes that require ICU 60 and maintain them as long as we can. 
Same goes for CMake, but it's going to get a lot harder as WebKit usees 
more and more new CMake features. At some point we'll probably need to 
try bundling a custom CMake, since eventually that will be easier than 
patching WebKit to use ancient CMake.


Could you possibly give some overview of how WebKit is packaged by 
Linux distributions? I would have thought they would use 
flatpack/jhbuild to get the dependencies that the WPE/GTK ports are 
using especially if those dependencies have their own set of bug and 
security fixes. My experience with Linux is minimal so some context 
here would be appreciated.


No, distros build against their own system packages.

JHBuild is a developer tool. And flatpak is cool, but not used to build 
distro packages. Fedora is experimenting with distributing applications 
using flatpak, but you can't distribute system libraries that way.


For our ports we use vcpkg to build and manage dependencies. We host 
it at https://github.com/WebKitForWindows/WebKitRequirements and have 
an internal fork for PlayStation. I'm guessing it's probably similar 
to flatpack/jhbuild in terms of functionality but in our case we just 
use GitHub releases to have binaries ready.


Perhaps there are better ways for us to approach the requirements 
that would be beneficial to all ports?


I don't think there's really anything to do other than to decide how 
many old distros we're willing to cut off of updates. Currently the 
dependencies policy protects distros for three years. To continue 
supporting Ubuntu 16.04 (which reaches EOL in April 2021), it would 
need to be extended to five years. Probably not many developers would 
be very happy with that at all. But Ubuntu have a five-year lifecycle, 
so it's tough beans for WebKit users if we drop support before that 
time. RHEL and SLE have 10 and 12-year lifecycles, respectively... 
nobody is going to propose supporting that upstream, we just have to 
either figure out how to deal with it or cut off updates eventually 
once it becomes too hard to build.


I'd support extending our dependencies policy from three years up to 
five years... only problem is, five years makes it really hard to use 
new C++ features, and we like those. :( Anyway, with the current 
dependencies policy, ICU 60 is allowed. We'll just have to figure out 
how to deal with it downstream.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] webkitgtk and bubblewrap help needed

2020-04-28 Thread Michael Catanzaro
On Mon, Apr 27, 2020 at 11:22 pm, Jack Hill  
wrote:

Can this problem be worked-around in WebKitGTK?


Looks like WebKit should call realpath() for each path it passes to 
bwrap. Annoying, but certainly doable. Want to report a bug for it on 
WebKit Bugzilla?



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Position on User-Agent Client Hints

2020-05-07 Thread Michael Catanzaro
My personal $0.02: I'm mildly supportive of this spec. It's certainly 
an improvement on existing HTTP user agent headers. I appreciate that 
you worked to incorporate feedback into the spec and considered the 
concerns of small browsers.


Is it going to solve all the problems caused by user agent headers? No. 
If WebKit implements the spec, we're surely going to eventually need a 
quirks list for user agent client hints to decide which websites to lie 
to, just like we already have quirks for the user agent header. And as 
long as Chrome sends a user agent header that includes the string 
"Chrome", it's unlikely we'll be able to get rid of the existing quirks 
list. But I think client hints will probably reduce the amount of 
websites that *accidentally* break WebKit, by replacing wild west UA 
header parsing with well-defined APIs, and adding some GREASE for good 
measure. The promise of freezing Chrome's UA header sounds nice, as it 
makes quirks easier to maintain. And being able to ration entropy by 
revealing details about the platform on an active rather than passive 
basis is quite appealing.


The spec attracted some misplaced concern about negative impact to 
small browsers, which I've rebutted in [1]. I'm not quite so 
enthusiastic about this spec as I was initially, especially after I was 
convinced that the GREASE is never going to be enough to remove our 
quirks list, but it's certainly not going to *hurt* small browsers.


This spec has received some pretty harsh criticism from the user 
tracking industry (some call it the "ad industry"). Not historically a 
friend of WebKit, so sounds good to me. ;)


One concern I haven't mentioned elsewhere is that frozen UA header 
might encourage deeper levels of fingerprinting than are currently 
used, e.g. for ad fraud prevention. caddy has started blocking 
WebKitGTK users based on TLS handshake fingerprint (yes, really!) [1]. 
If techniques like that take off as a result of this, that could 
potentially backfire on us quite badly. But websites could choose to do 
such things today anyway, client hints or no, and if so, the solution 
will be for us to just try even harder to look more like Chrome.


Seems like a net positive overall. I don't work for Apple and can't say 
whether it might be implemented by WebKit.


Michael

[1] 
https://github.com/w3ctag/design-reviews/issues/467#issuecomment-583104002

[2] https://mitm.watch/


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-07 Thread Michael Catanzaro
On Wed, Oct 7, 2020 at 4:17 am, Konstantin Tokarev  
wrote:

BTW, could you estimate how many of users which have provided
meaningful bug reports were directed to bugs.webkit.org but never 
made it?


A lot. I'd say maybe about half make it upstream. That's OK. We don't 
have time to fix everything, after all, and it doesn't make sense to 
focus on bug reports where we cannot easily interact with the reporter.



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-13 Thread Michael Catanzaro



I suppose what I'm describing is Konstantin's Workflow 2, which is 
overwhelmingly popular.


On Tue, Oct 13, 2020 at 2:19 pm, Ryosuke Niwa  wrote:

Not squashing only helps if each commit can stand on its own. At that
point, I'd suggest such a sequence of commits be made into multiple
PRs instead of multiple commits in a single PR, each of which requires
a separate code review.


Commits are certainly expected to stand on their own (not introduce 
defects). If they can't, then they should be combined into another 
commit! Hence, we should not approve MRs if the MR contains commits 
that fail to meet our usual standards. Such commits should just fail 
code review. (But if you aren't willing to review MRs commit-by-commit, 
then indeed you'll never notice when such problems exist.)


If I have to open a separate MR for each change, though, I'm going to 
wind up combining multiple lightly-related changes into one big commit, 
because a new MR for every tiny cleanup I want to make requires effort. 
Such commits may be common in WebKit, but they would fail code review 
in most other open source projects. E.g. in 
https://trac.webkit.org/changeset/268394/webkit I snuck in a drive-by 
one-line fix that's unrelated to the rest of the commit. I would rarely 
dare to do that outside WebKit, knowing it would probably fail review, 
but we do it commonly in WebKit because we discourage multiple patches 
per bug and don't want to create new bugs for every small cleanup.



This to me is a show stopper. When I'm trying to bisect an issue,
etc..., the biggest obstacle I face is any intermediate revisions
where builds are broken or otherwise non-functional. I don't think we
should let anyone merge a commit into the main branch unless the
commit meets the same standards as a regular Bugzilla patch we land
today.


I agree. But I would say that a MR with such history should fail 
review, and be rewritten to not suffer from these problems.



I disagree. Detailed descriptions and function-level change logs are
exactly what I use to dig up all the code history and figure out
what's causing the bug and how to fix in numerous occasions. Not
having that would be a massive regression.

- R. Niwa


Detailed descriptions are very important. I don't think function-level 
changelogs are; documenting changes in individual functions is 
generally busywork to say what you can plainly see by just looking at 
the diff. I'll submit 
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1686/commits as an 
example of my preferred commit granularity and verbosity. (We can 
pretend it is not currently failing CI. ;) Here the commits are 
lightly-related and could perhaps be split into multiple MRs, but 
honestly that becomes annoying and unwieldy, especially as some of the 
commits depend on each other and need to land in a particular order, 
and since creating new branches and MRs (or bugs on Bugzilla) for each 
commit becomes annoying. So it's nicer to do it all in one. One of 
these commits actually makes changes that are undone by a subsequent 
commit, and is primarily there just so that I could write a commit 
message about it and show the history in two steps rather than one! 
History like that would be lost in Konstantin's Workflow 1. I don't 
think ChangeLog-style function-level detail would be helpful in any of 
them; in WebKit, I usually ignore that anyway. But all of the commits 
do have a detailed commit message, except for "fix typo" and "fix 
whitespace" (can't expect an essay for those).


Regarding line-by-line commit review... well, it would be nice to have, 
of course.  But I don't think it's as important as you suggest. 
Problems with commit messages are usually general problems with the 
entire commit message rather than problems with a specific line of the 
commit message. An exception is typos. It is harder to point out typos 
without a line-by-line review tool. But still, it's not too hard to 
tell somebody to fix a typo without being able to highlight the right 
line.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-13 Thread Michael Catanzaro
On Tue, Oct 13, 2020 at 12:32 pm, Maciej Stachowiak  
wrote:
I’m assuming your objection is to regular merges, but how do you 
feel about squash merges? Or do you think all PRs should be landed by 
rebasing?


If we want a linear history (we do), all PRs ultimately have to land as 
fast-forward merges, one way or the other. I think rebasing is the 
simplest way to accomplish that, but squashes work too if all your 
changes are sufficiently self-contained to land as one commit.


I suggest leaving this up to the discretion of the developer and 
reviewer rather than mandating one way or the other, because there are 
advantages and disadvantages to both approaches. If your local commit 
history is a mess, sometimes squashing it all into one commit is an 
easy way to make it acceptable for upstream. If you hate rewriting 
history to make it look good, and your MR isn't too huge, a squash 
might be appropriate. But more often than not, I'd say that would 
result in a worse commit history.


My own preference would be to require squash merge, because it keeps 
the history simple for the main branch, but does not risk putting 
intermediate revisions which may work or even build on the main 
branch.


The disadvantage is that if you squash before merging, you encourage 
fewer, bigger commits that might be harder to read and potentially much 
less fun to discover at the end of a bisect. E.g. consider a very 
common case: developer wants to fix a handful of separate but related 
bugs in a particular section of code. We could land all the fixes in 
one huge commit, but that's inevitably going to be harder to read, 
harder to deal with if it introduces a regression, and will certainly 
have a more confusing commit message (either because it gives less 
detail about the changes, or because it's very long describing multiple 
related changes that could have been separate commits). We could split 
it up into different MRs for the different commits, but that becomes 
annoying when the commits are related, and hard to keep the different 
MRs in order. So I don't normally squash (except when committing small 
fixup commits via the web UI), because the disadvantages generally 
outweigh the benefits.


On the other hand, if you don't squash, it's indeed possible that your 
commit history might be messy, e.g. intermediate commits might break 
tests fixed by subsequent commits, or intermediate commits might not 
build at all. Squashing before merging does eliminate those risks, but 
I recommend code review instead: commit history and style is subject to 
review just like code changes are. Sometimes I see a merge request with 
a messy commit history that just begs for two or more commits to be 
squashed together. (This is common for students new to open source. 
WebKit does not have this problem currently.) Sometimes I see the 
opposite, where too many changes are bundled into one big commit. (This 
is more common in WebKit, since we normally try to have one patch per 
bug, and splitting changes into multiple bugs is inconvenient.) But 
usually the developer submitting a MR has found a good balance between 
the two extremes. Ultimately, what's most important is landing a clean 
commit history with reviewable commits. Again, the scope of commits is 
subject to review just like code changes are.


I agree that we don't want to merge WIP commits of any form, and 
reviewers should complain if these appear in a MR. E.g. if making an 
API change that requires updates in 200 files, we surely want them all 
updated in one commit, because we don't want broken intermediate 
commits on master that would break bisections. So sometimes huge 
commits are unavoidable. Similarly, if an intermediate commit is known 
to break a test, that's not good either because it could mess up 
bisects. (I don't think we necessarily need to run tests on every 
intermediate commit -- that might be too much for our infrastructure -- 
but we could if desired.) What we don't want is to wind up merging 
low-quality stream-of-consciousness style commits that looks like they 
were committed in the order the code was written. I think that's what 
you're trying to avoid by suggesting squashes. Instead, I suggest 
developers should aggressively use 'git add -p' and 'git rebase -i' to 
selectively commit, rewrite, and reorder history to look good before 
opening the MR. This isn't optional for most open source projects: if 
you propose an MR with ugly commit history, it won't be merged until 
fixed. For a typical MR of moderate complexity, I'll use 'git rebase 
-i' at least a couple times before the history is clean enough for a 
MR, and to make fixup commits disappear into the most-appropriate 
commit in the sequence.


Regarding commit messages, I don't understand why there's any 
expectation that they need to be checked into files in order to be 
detailed and complete. If a commit message doesn't adequately describe 
what it's fixing, then the reviewer should open a 

Re: [webkit-dev] WebKit Transition to Git

2020-10-05 Thread Michael Catanzaro
On Mon, Oct 5, 2020 at 8:40 am, Jonathan Bedard  
wrote:
That's one solution, but even that is somewhat insufficient because 
we don’t want to give someone access to every security issue just 
to give access to a single one. One of the solutions we’ve 
discussed is to migrate bugs component by component, the security 
component may stay on bugzilla indefinitely.


Can you grant access to a single issue by CCing the desired user to the 
issue? I expect that would work (not tested).



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-06 Thread Michael Catanzaro



On Tue, Oct 6, 2020 at 3:13 am, Konstantin Tokarev  
wrote:

1. Sub-par support for linking issues to each other


Traditional bug tracking systems (like Bugzilla or JIRA) have support 
of "related" or "linked" issues. Most important relations are


* A depends on B (B blocks A) - blockers and umbrella issues
* B is duplicate of A
* A and B are related in other unspecified way


GitHub does have duplicates btw, but the syntax is completely different 
from GitLab so I can never remember how it's done. It's not exposed in 
the UI. In GitLab it's easy: /duplicate #245 to mark a bug as duplicate 
of issue #245. (You can have cross-repo duplicates too, and I think 
even cross-*project* duplicates. This is very important for GNOME, but 
not for WebKit since WebKit is just one huge repo.)


I found instructions for GitHub here: 
https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/about-duplicate-issues-and-pull-requests#marking-duplicates


* There is no easily visible list of relations: if you are not 
closely following all activity on A, to find all issues related to it 
you have to browse through all its (pseudo-)comments, which in some 
cases might be long.
* There is no *stateful* list of relations: if A was believed to have 
common source with B, but then it was discovered they are not 
related, you cannot delete relationship between A and B because there 
is no relationship, just a set of comments.


In my experience, this isn't really a *huge* problem. Umbrella issues 
work well enough to track relationship between bugs, as do milestones, 
and you can use whichever you prefer. I admit it is not nearly as nice 
as Depends/Blocks from Bugzilla, though. But I think it should be good 
enough for us.


* "#" is not a safe reference format. Sometimes users' 
comments may have other data in "#" format with a different 
meaning than references to GitHub issues. For example, may the force 
be with you if someone pastes gdb or lldb backtrace into comment 
without escaping it into markdown raw text block (```). Also, GitHub 
parses mentions in git commit messages, so care must be taken to 
avoid any occurrences of "#" with a meaning different from 
reference to issue number.


Yeah this is unfortunate and also guaranteed to happen. The first 
several dozen issues are going to be spammed with references to other 
bugs all over the place.


[2] For some reason they have shared numbering, which means sometimes 
you may not know what kind of reference is in front of you until you 
look up its URL or navigate


This is silly too (and not a problem on GitLab, which uses # for issues 
and ! for merge requests). But although I agree it is a defect, is it 
really a huge problem? Probably not.


Also, on test cases. You probably like this feature of Bugzilla when 
you can attach self-contained HTML file to the issue and then simply 
open it by URL in any browser including your build of WebKit to try 
it out. Forget this - GitHub simply forbids HTML or JS attachments 
(without wrapping them in archive):


"We don’t support that file type. with a GIF, JPEG, JPG, PNG, 
DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP."


And yes, take care not to use tar.xz or tar.bz2 or any other 
unapproved archive type.


OK, now you've convinced me... this is bad. :P I forgot about this 
problem because GitLab does not have any such restrictions on 
attachments. It's very frustrating to have to say "I added a .txt file 
extension so I could upload this to GitHub. Please remove the file 
extension after you have downloaded the file before you use it." I 
would say this is strongest argument I've seen against GitHub. Silly 
problem to have tbh.


I'll just add that GitLab has become *really* popular for Linux-related 
projects. I have to regularly work with GNOME GitLab, freedesktop 
GitLab, and gitlab.com. Fedora and CentOS are both switching to GitLab 
too, so soon that will be five different public GitLab instances that I 
have to switch between regularly, and that's limited to only the public 
instances. Then there are also many major communities I don't work with 
that are also using GitLab (KDE, Debian, Purism). It's reached the 
point where unless you only work on Linux kernel itself, you probably 
spend a lot of time on one GitLab or another. It should be considered 
alongside GitHub as an option, especially if we're concerned about 
GitHub-specific problems.


And when issues are triaged, they can be resubmitted to WebKit 
tracker by qualified person if they are really relevant.


In practice, I don't think it's a good idea because (a) moving bugs 
upstream takes a lot of time, (b) it's quite often important to have 
the original reporter CCed on the issue and able to comment. I receive 
tons of WebKit bugs in the Epiphany bugtracker, and while a few years 
ago I might have forwarded reports upstream myself, nowadays I only 
provide 

Re: [webkit-dev] WebKit Transition to Git

2020-10-06 Thread Michael Catanzaro
On Wed, Oct 7, 2020 at 2:22 am, Tetsuharu OHZEKI 
 wrote:

If we move to GitHub Issue, compared to bugzilla, that does not have
"component watching".
(I don't know the case of GitLab's Issue)
We only can watch all issues or not for the repository.


Oh dear. I had assumed that you could easily subscribe to particular 
labels (as you can in GitLab) but, poking around in GitHub's UI, I 
indeed don't see any way to do that. :/


That's no good. E.g. multimedia developers expect to be able to 
subscribe only to multimedia bugs, WebKitGTK developers will want to 
watch only GTK bugs, etc.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Question: referrerpolicy in Safari

2020-09-23 Thread Michael Catanzaro



On Wed, Sep 23, 2020 at 1:50 pm, Dominic Farolino 
 wrote:
I haven't dug too deep here, but just going to post this in case it 
answers your question and saves you some time. As documented here, it 
appears that Safari is starting to not honor the `referrerpolicy` 
attribute on HTML elements where it would override the referrer 
policy redaction that their cross-site tracking work has performed, 
or at least in cases where it would expose more information than what 
was intended by the cross-site tracking protection. That may be an 
oversimplification, (I trust someone from WebKit can clarify), but it 
may explain the behavior you are seeing.


That probably explains case 1. There's some documentation of this at 
https://webkit.org/tracking-prevention/. The actual URLs matter here. 
With https://site-one.example/path/foo and https://site-two.example/, 
the top privately-controlled domains are different (site-one.example 
vs. site-two.example) so the referrer will be downgraded to its origin. 
But say you were instead testing https://site-one.example.com/path/foo 
and https://site-two.example.com/, then the top privately-controlled 
domain in both cases is example.com, and there's no forced downgrade.


That doesn't explain what's going on in case 2 or case 3, though. 
Smells like bugs?


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-02 Thread Michael Catanzaro

On Fri, Oct 2, 2020 at 09:43, Jonathan Bedard  wrote:
The biggest blocker we are aware of is managing security bugs, since 
the security advisory system used by GitHub is essentially the 
opposite of how WebKit security bugs work. Moving to GitHub Issues, 
if it happens, will be the last part of this transition, and we are 
interested in soliciting feedback from our contributors on what the 
WebKit project’s integration with GitHub Issues should look like.


I don't think we need much integration to use the issue tracker? Once 
we migrate existing bugs from WebKit Bugzilla, we can use it as we 
would any other issue tracker? Why would it require integration?


We might need to use a separate repository with more limited 
permissions to handle security reports. At least in GitLab, all project 
developers (committers) have access to all confidential issues. I'm not 
sure about GitHub, but I assume it would be the same.


What will require integration is pull request merges. If we want to 
maintain linear version history, we will want a merge bot. On GNOME 
GitLab, we have a large number of smaller projects and it's we don't 
need them, but for a one huge project like WebKit there will be too 
many conflicts otherwise, because every commit going into the main 
branch will require all other pull requests to be rebased. A merge bot 
-- e.g. [1] -- will handle that for us. (Not sure what merge bots are 
common on GitHub. )


Michael

[1] https://gitlab.com/fsdk-marge-bot


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-02 Thread Michael Catanzaro

On Fri, Oct 2, 2020 at 13:48, Ken Russell  wrote:
Github's code review UI has a couple of feature gaps in my opinion. 
It's difficult to look at earlier versions of the pull request, in 
particular to verify that issues found during code review have been 
fixed. I remember it also being difficult to figure out whether all 
comments on earlier versions have been addressed.


I'm not familiar with reviews on GitHub. I just want to add that GitLab 
reviews are great and have none of these problems. It's very easy to 
view older versions of merge requests and compare the differences 
between arbitrary revisions of the merge request. (That's often 
important when reviewing small changes to a large merge request.) Every 
discussion thread is clearly marked as either resolved (green!) or 
unresolved, and you can (and should) configure GitLab to block merges 
until all discussions are resolved. (I would be disappointed if GitHub 
doesn't have the same convenience features, as this helps prevent 
mistakes from being forgotten.)


I realize that Gerrit might not integrate at all with hosting the 
repo on Github, but has any thought been given to this aspect of the 
transition?


That sounds like it would be a significant barrier to contribution, and 
frankly defeat the point of switching. If we have serious concerns with 
GitHub's code review functionality (which, again, I'm not familiar 
with), then we should just use GitLab and have everything in one place. 
(GitLab accepts GitHub logins via OAuth, both on gitlab.com and 
self-hosted instances, so the barrier to contributing remains low 
either way.)


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-02 Thread Michael Catanzaro
On Fri, Oct 2, 2020 at 6:36 pm, Philippe Normand  
wrote:

Would you also consider preventing merge commits in order to keep a
clean mainline branch?


Big +1 to blocking merge commits. Merge commits in a huge project like 
WebKit would make commit archaeology very frustrating. (I assume this 
is implied by the monotonic commit identifiers proposal, but it doesn't 
exactly say that.)


I'm sure transition to git and GitHub should go well. I would have 
selected GitLab myself -- it's nicer and also overwhelmingly popular -- 
but whatever. (Does GitHub have merge request approvals? Replicating 
our reviewer/owner permissions with GitLab merge request approvals 
would be easy.)


One downside is that using github.com might actually make it *too* easy 
to spam us with low-quality issue reports and merge requests. We've 
historically been pretty bad at maintaining a clean issue tracker -- 
the quantity of untriaged issues on Bugzilla is very high -- and GitHub 
will make this worse. That's not an issue with the GitHub platform, 
though. Just something to stay on top of.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Issue reports, merge requests, etc. (was: WebKit Transition to Git)

2020-10-02 Thread Michael Catanzaro

On Fri, Oct 2, 2020 at 11:51 am, Ryosuke Niwa  wrote:

Since Igalia has a lot
more experience working with other open source projects, do you have
some suggestions in how to approach that?


Sorry for a long-ish mail. I didn't mean for this to turn into an 
essay. Too late. :P


I actually moved to Red Hat, but anyway, I would say first step is to 
ensure every incoming issue is triaged, at least once when initially 
reported, and every merge request given at least cursory review within 
a reasonable amount of time. That's how open source projects attract 
and retain community contributors, and it's been a weakness for WebKit 
for a while (we're not the worst at this, but certainly not good at it 
either). One possible answer for this is to have a "project manager" or 
similar role to triage and prioritize issues, but of course it can also 
be done by developers working together (possibly according to some 
rotation).


WebKit is such a big project that I suspect almost nobody has enough 
expertise to triage all incoming bugs, but most of us have enough 
expertise to figure out which issue labels to apply to an incoming bug 
to pass the issue off to more specialized experts. On GNOME GitLab we 
label incoming issues with Bug, Crash, Enhancement, or Feature (the 
difference between Enhancement and Feature is hazy) and have a variety 
of global and per-project labels that can also be applied to issues 
[1]. The list of current components in WebKit Bugzilla would be a good 
starting point to use here. Every new issue gets reviewed and either 
gets closed or else gets a label applied to indicate it has been 
triaged, usually within one business day. If an issue is open and 
doesn't have any labels, we know it has not been triaged.


A lot of bugs can be closed immediately because they're reported in the 
wrong place, for instance. Most crashes are reported without a 
backtrace; to those, we attach a Needs Information label and point the 
reporter to instructions for getting a backtrace with gdb, and close 
after a few days if not provided. The details don't matter so much as 
the fact that the issue has received minimal human attention. In the 
rare cases where a bug report is perfect and all I need to do is add 
issue labels, I give the issue an upvote to indicate I've seen it, so 
the reporter knows it hasn't been *completely* ignored, even if nobody 
fixes it. The details don't matter so much as that contributors and 
issue reporters feel like they've received at least some attention and 
aren't shouting into a bug wasteland.


Then developers subscribe to project-specific labels in accordance with 
their expertise and tolerance for mail. E.g. I watch all issues for 
some projects, but for GLib I'm only subscribed to networking-related 
labels, since problems in the network-related code often impact WebKit. 
Some developers will want to watch only for CSS bugs, only layout bugs, 
only JSC bugs, only WebKitGTK bugs, etc.


Of course, triaging issues doesn't mean they actually get fixed, but 
it's a necessary first step. (And once isn't really enough, either. 
Most of our bugs from 2008 are probably no longer valid, but it takes 
time to review old bugs, and not many people have enough specialized 
technical expertise to triage outside their area of expertise. Anyway, 
once is a starting point.)


Responding to merge requests (or patch reviews) in a timely manner is 
also important (otherwise, contributors disappear). Merge requests take 
longer than issues, but it's good to get to each one within a couple 
days; otherwise, they really start to pile up. We currently have 
patches awaiting review from 2017 [2], and that's just the last time 
somebody decided to mass-deny old review requests. And a lot of these 
are from Apple/Igalia/Sony, who all know who to CC for reviews; imagine 
how much harder it is for someone not familiar with the WebKit 
community to get a patch reviewed. ;) GitHub will probably help with 
this because it puts merge requests front-and-center in its UI, instead 
of requiring us to first discover then take the time to sort through 
the request queue. It's hard to use GitHub without habitually reviewing 
pending requests. ;) The number of open issues and MRs is even clearly 
displayed as a sort of challenge to reduce the number. But we'd need 
some workflow for directing merge requests to appropriate reviewers.


When we move to GitHub, you can expect to start receiving merge 
requests from people who would not take the time and effort to create a 
WebKit Bugzilla account and learn how to use our arcane ChangeLog and 
patch creation scripts. Epiphany has twice as many active contributors 
and probably 3-4x more activity today on GNOME GitLab than it did when 
we used GNOME Bugzilla, and I'm pretty sure that's mainly due to GitLab 
rather than other factors. I wouldn't expect that dramatic a change for 
WebKit, since most WebKit contributors are professional rather than 
volunteer 

Re: [webkit-dev] WebKit Transition to Git

2020-10-03 Thread Michael Catanzaro
On Sat, Oct 3, 2020 at 9:52 pm, Konstantin Tokarev  
wrote:
If I understand correctly, there is no way in GitHub UI to see a 
difference between
patches submitted at step 1 and step 3. It's still possible to see 
old version of patches
if you navigate to old commit hash, but that's not for long as they 
can be garbage

collected by GitHub because they don't belong to git branch anymore.


If we are really seriously concerned about this... it's not a problem 
with GitLab. At least, I can still view diffs between different 
revisions of merge requests from two years ago, and the changes seem to 
be stored forever. At least I still can view diffs from years ago. E.g.:


https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/62/diffs?diff_id=27669_sha=0c020384b602c9e1f0e8ec9e491d1951e8feadf7

Unfortunately it's sometimes less useful than I might have hoped, 
because rebases bring in a bunch of totally unrelated changes, e.g.:


https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/62/diffs?diff_id=28036_sha=043b5fc32f4f9263d393c9de83e1b33123c5



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit Transition to Git

2020-10-03 Thread Michael Catanzaro

On Sat, Oct 3, 2020 at 3:16 am, Ryosuke Niwa  wrote:

I've gotta say I'm very much concerned about getting rid of change
logs when we move to Git. We put a lot of useful information about
what was causing the bug, how we fixed it, and why we fixed the way we
did in a change log. I've seen a few projects which transitioned to
Git and somehow lost the rigor in maintaining an equally high quality
commit message, partly because most code review tools don't let you
add inline comments to commit messages.


You may not be able to add inline comments on commit messages, but I've 
never been particularly concerned about that. You can still start a new 
discussion thread mentioning the problem with the commit message that 
you'd like to see resolved, blocking merge until the discussion thread 
is resolved. Although in GNOME we don't often have problems with 
low-quality commit messages, we do sometimes, and during review we 
treat that as we would any problem with the code. Having a set of 
guidelines for writing commit messages, like [1], might help. But yes, 
we do lose the ability to do inline comments during code review.


(Anyway, this is only a tangent, since of course we can switch to 
GitHub but still keep ChangeLog files if we decided to do that.)


[1] https://wiki.gnome.org/Git/CommitMessages


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Generating compile_commands.json when building WebKit on MacOS

2020-07-22 Thread Michael Catanzaro

On Wed, Jul 22, 2020 at 11:15 am, shriva...@firemail.cc wrote:
DerivedSources/ForwardingHeaders/JavaScriptCore/JSContext.h:40:1: 
error: duplicate interface definition for class 'JSContext'

@interface JSContext : NSObject
^
../../Source/JavaScriptCore/API/JSContext.h:40:12: note: previous 
definition is here

@interface JSContext : NSObject
   ^

Your assistance would be much appreciated.


It might be time to simply remove support for building WebKitGTK on 
macOS. I imagine it's been many years since anyone has successfully 
built it.



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


<    1   2   3   4   >