[webkit-reviews] review denied: [Bug 149496] [GTK] Use mobile user-agent on tablet : [Attachment 403199] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jun 30 09:13:05 PDT 2020


Michael Catanzaro <mcatanzaro at gnome.org> has denied Jan-Michael Brummer
<jan.brummer at tabos.org>'s request for review:
Bug 149496: [GTK] Use mobile user-agent on tablet
https://bugs.webkit.org/show_bug.cgi?id=149496

Attachment 403199: Patch

https://bugs.webkit.org/attachment.cgi?id=403199&action=review




--- Comment #14 from Michael Catanzaro <mcatanzaro at gnome.org> ---
Comment on attachment 403199
  --> https://bugs.webkit.org/attachment.cgi?id=403199
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=403199&action=review

> Source/WebCore/platform/UserAgent.h:46
> +};
>  WEBCORE_EXPORT String standardUserAgent(const String& applicationName =
emptyString(), const String& applicationVersion = emptyString());

Blank line here

> Source/WebCore/platform/UserAgentQuirks.cpp:155
> +    return isGoogle(url) && chassisType == ChassisType::Desktop;

Let's use && chassisType != ChassisType::Mobile here, since we know affected
websites are likely to be broken without the user agent quirk....

> Source/WebCore/platform/glib/UserAgentGLib.cpp:50
> +static ChassisType getChassisType()

I think we should follow hostnamed as closely as possible here:
https://github.com/systemd/systemd/blob/d7f4ad203acb07e728865d5ea117f7df5e8d816
6/src/hostname/hostnamed.c#L186

First it reads /etc/machine-info to get the chassis type. That's going to fail
by default. I don't have anything set in my /etc/machine-info other than
PRETTY_HOSTNAME. So if you're relying only on this, I think you're going to be
pretty disappointed with the results. After /etc/machine-info, it next tries
/sys/class/dmi/id/chassis_type, then finally it tries
"/sys/firmware/acpi/pm_profile" if not available. I see that /etc is mounted by
BubblewrapLauncher.cpp, but not by flatpak. (Surprise! Wasn't expecting that to
be different.)	/sys/class is allowed by both BubblewrapLauncher and flatpak,
so no changes needed there. /sys/firmware is not allowed by either (and I have
no idea if that would be safe).

We are going to change something in flatpak no matter what, either to expose a
filtered version of hostnamed, or to expose /etc/machine-info. And we need to
decide how to change flatpak before we change WebKit.

> Source/WebCore/platform/glib/UserAgentGLib.cpp:56
> +	   std::ifstream infoFile("/etc/machine-info");

std::ifstream can throw exceptions, so we can't use it in WebKit. Use either
GLib or POSIX APIs instead.


More information about the webkit-reviews mailing list