Changeset 206519 in webkit
- Timestamp:
- Sep 28, 2016 8:34:11 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r206518 r206519 1 2016-09-28 Michael Catanzaro <mcatanzaro@igalia.com> 2 3 [GTK] Add Chrome UA quirk 4 https://bugs.webkit.org/show_bug.cgi?id=162617 5 6 Reviewed by Carlos Garcia Campos. 7 8 Add Chrome UA quirk and use it on typekit.net, typekit.com, youtube.com, slack.com, and 9 any domain that begins with "google". 10 11 * platform/gtk/UserAgentGtk.cpp: 12 (WebCore::buildUserAgentString): 13 (WebCore::urlRequiresChromeBrowser): 14 (WebCore::standardUserAgentForURL): 15 1 16 2016-09-28 Jer Noble <jer.noble@apple.com> 2 17 -
trunk/Source/WebCore/platform/gtk/UserAgentGtk.cpp
r206517 r206519 47 47 public: 48 48 enum UserAgentQuirk { 49 NeedsChromeBrowser, 49 50 NeedsMacintoshPlatform, 50 51 … … 126 127 uaString.appendLiteral(") AppleWebKit/"); 127 128 uaString.append(versionForUAString()); 129 uaString.appendLiteral(" (KHTML, like Gecko) "); 130 131 // Note that Chrome UAs advertise *both* Chrome and Safari. 132 if (quirks.contains(UserAgentQuirks::NeedsChromeBrowser)) 133 uaString.append("Chrome/51.0.2704.106 "); 134 128 135 // Version/X is mandatory *before* Safari/X to be a valid Safari UA. See 129 136 // https://bugs.webkit.org/show_bug.cgi?id=133403 for details. 130 uaString.appendLiteral(" (KHTML, like Gecko)Version/10.0 Safari/");137 uaString.appendLiteral(" Version/10.0 Safari/"); 131 138 uaString.append(versionForUAString()); 132 139 … … 160 167 } 161 168 169 // Be careful with this quirk: it's an invitation for sites to use JavaScript we can't handle. 170 static bool urlRequiresChromeBrowser(const URL& url) 171 { 172 String baseDomain = topPrivatelyControlledDomain(url.host()); 173 174 // Needed for fonts on many sites, https://bugs.webkit.org/show_bug.cgi?id=147296 175 if (baseDomain == "typekit.net" || baseDomain == "typekit.com") 176 return true; 177 178 // Shut off Chrome ads. Avoid missing features on maps.google.com. 179 if (baseDomain.startsWith("google")) 180 return true; 181 182 // Needed for YouTube 360 (requires ENABLE_MEDIA_SOURCE). 183 if (baseDomain == "youtube.com") 184 return true; 185 186 // Slack completely blocks users with our standard user agent. 187 if (baseDomain == "slack.com") 188 return true; 189 190 return false; 191 } 192 162 193 static bool urlRequiresMacintoshPlatform(const URL& url) 163 194 { … … 179 210 ASSERT(!url.isNull()); 180 211 UserAgentQuirks quirks; 181 if (urlRequiresMacintoshPlatform(url)) { 212 if (urlRequiresChromeBrowser(url)) 213 quirks.add(UserAgentQuirks::NeedsChromeBrowser); 214 if (urlRequiresMacintoshPlatform(url)) 182 215 quirks.add(UserAgentQuirks::NeedsMacintoshPlatform); 183 }184 216 185 217 // The null string means we don't need a specific UA for the given URL. -
trunk/Tools/ChangeLog
r206516 r206519 1 2016-09-28 Michael Catanzaro <mcatanzaro@igalia.com> 2 3 [GTK] Add Chrome UA quirk 4 https://bugs.webkit.org/show_bug.cgi?id=162617 5 6 Reviewed by Carlos Garcia Campos. 7 8 Update test. This portion of the commit was actually unreviewed. 9 10 * TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp: 11 (TestWebKitAPI::TEST): 12 1 13 2016-09-28 Michael Catanzaro <mcatanzaro@igalia.com> 2 14 -
trunk/Tools/TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp
r206515 r206519 44 44 EXPECT_TRUE(uaString.contains("Mac OS X")); 45 45 EXPECT_FALSE(uaString.contains("Linux")); 46 EXPECT_FALSE(uaString.contains("Chrome")); 47 48 // google domains require Chrome in the UA 49 uaString = standardUserAgentForURL(URL(ParsedURLString, "http://www.google.es/")); 50 EXPECT_FALSE(uaString.contains("Macintosh")); 51 EXPECT_FALSE(uaString.contains("Mac OS X")); 52 EXPECT_TRUE(uaString.contains("Linux")); 53 EXPECT_TRUE(uaString.contains("Chrome")); 54 55 uaString = standardUserAgentForURL(URL(ParsedURLString, "http://maps.google.com/")); 56 EXPECT_FALSE(uaString.contains("Macintosh")); 57 EXPECT_FALSE(uaString.contains("Mac OS X")); 58 EXPECT_TRUE(uaString.contains("Linux")); 59 EXPECT_TRUE(uaString.contains("Chrome")); 60 61 // Slack requires Chrome in the UA 62 uaString = standardUserAgentForURL(URL(ParsedURLString, "http://www.slack.com/")); 63 EXPECT_FALSE(uaString.contains("Macintosh")); 64 EXPECT_FALSE(uaString.contains("Mac OS X")); 65 EXPECT_TRUE(uaString.contains("Linux")); 66 EXPECT_TRUE(uaString.contains("Chrome")); 46 67 } 47 68
Note: See TracChangeset
for help on using the changeset viewer.