Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Nov 2016 18:20:13 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r426523 - in head/www/chromium: . files
Message-ID:  <201611191820.uAJIKDSD007927@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Sat Nov 19 18:20:13 2016
New Revision: 426523
URL: https://svnweb.freebsd.org/changeset/ports/426523

Log:
  www/chromium: unbreak against ICU 58.1
  
  components/url_formatter/url_formatter.cc:454:2: error: "Update aspirational_scripts per Unicode 9.0"
   ^
  third_party/WebKit/Source/platform/text/TextBreakIterator.cpp:182:1: error: static_assert failed "breakAllLineBreakClassTable should be consistent"
  static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == U_LB_COUNT, "breakAllLineBreakClassTable should be consistent");
  ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
  PR:		214536
  Submitted by:	cpm (based on)
  Obtained from:	upstream
  Approved by:	portmgr blanket

Added:
  head/www/chromium/files/patch-components_url__formatter_url__formatter.cc   (contents, props changed)
  head/www/chromium/files/patch-third__party_WebKit_Source_platform_text_TextBreakIterator.cpp   (contents, props changed)
Modified:
  head/www/chromium/Makefile   (contents, props changed)

Modified: head/www/chromium/Makefile
==============================================================================
--- head/www/chromium/Makefile	Sat Nov 19 18:19:29 2016	(r426522)
+++ head/www/chromium/Makefile	Sat Nov 19 18:20:13 2016	(r426523)
@@ -3,7 +3,7 @@
 
 PORTNAME=	chromium
 PORTVERSION=	52.0.2743.116
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	www
 MASTER_SITES=	http://commondatastorage.googleapis.com/chromium-browser-official/
 DISTFILES=	${DISTNAME}${EXTRACT_SUFX} # default, but needed to get distinfo correct if TEST is on

Added: head/www/chromium/files/patch-components_url__formatter_url__formatter.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/chromium/files/patch-components_url__formatter_url__formatter.cc	Sat Nov 19 18:20:13 2016	(r426523)
@@ -0,0 +1,33 @@
+https://chromium.googlesource.com/chromium/src.git/+/424584b4984bde7c831f42e9fb47f1ad583a1c46%5E%21/
+
+--- components/url_formatter/url_formatter.cc.orig	2016-08-03 19:02:17 UTC
++++ components/url_formatter/url_formatter.cc
+@@ -429,9 +429,9 @@ void IDNSpoofChecker::SetAllowedUnicodeS
+   // section at
+   // http://www.unicode.org/Public/security/latest/xidmodifications.txt) are
+   // are added to the allowed set. The list has to be updated when a new
+-  // version of Unicode is released. The current version is 8.0.0 and ICU 58
+-  // will have Unicode 9.0 data.
+-#if U_ICU_VERSION_MAJOR_NUM < 58
++  // version of Unicode is released. The current version is 9.0.0 and ICU 60
++  // will have Unicode 10.0 data.
++#if U_ICU_VERSION_MAJOR_NUM < 60
+   const icu::UnicodeSet aspirational_scripts(
+       icu::UnicodeString(
+           // Unified Canadian Syllabics
+@@ -445,13 +445,13 @@ void IDNSpoofChecker::SetAllowedUnicodeS
+           // Yi
+           "\\uA000-\\uA48C"
+           // Miao
+-          "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7F"
++          "\\U00016F00-\\U00016F44\\U00016F50-\\U00016F7E"
+           "\\U00016F8F-\\U00016F9F]",
+           -1, US_INV),
+       *status);
+   allowed_set.addAll(aspirational_scripts);
+ #else
+-#error "Update aspirational_scripts per Unicode 9.0"
++#error "Update aspirational_scripts per Unicode 10.0"
+ #endif
+ 
+   // U+0338 is included in the recommended set, while U+05F4 and U+2027 are in

Added: head/www/chromium/files/patch-third__party_WebKit_Source_platform_text_TextBreakIterator.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/chromium/files/patch-third__party_WebKit_Source_platform_text_TextBreakIterator.cpp	Sat Nov 19 18:20:13 2016	(r426523)
@@ -0,0 +1,64 @@
+https://chromium.googlesource.com/chromium/src.git/+/e60b571faa3f14dd9119a6792dccf12f8bf80192%5E%21/
+
+--- third_party/WebKit/Source/platform/text/TextBreakIterator.cpp.orig	2016-08-03 19:02:36 UTC
++++ third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
+@@ -27,6 +27,9 @@
+ #include "wtf/StdLibExtras.h"
+ #include "wtf/text/CharacterNames.h"
+ 
++#include <unicode/uchar.h>
++#include <unicode/uvernum.h>
++
+ namespace blink {
+ 
+ unsigned numGraphemeClusters(const String& string)
+@@ -123,13 +126,18 @@ static const unsigned char asciiLineBrea
+     { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0) }, // DEL
+ };
+ 
++#if U_ICU_VERSION_MAJOR_NUM >= 58
++#define BA_LB_COUNT (U_LB_COUNT - 3)
++#else
++#define BA_LB_COUNT U_LB_COUNT
++#endif
+ // Line breaking table for CSS word-break: break-all. This table differs from
+ // asciiLineBreakTable in:
+ // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking
+ //   Algorithm: http://unicode.org/reports/tr14/#DescriptionOfProperties
+ // - 1 indicates additional break opportunities. 0 indicates to fallback to
+ //   normal line break, not "prohibit break."
+-static const unsigned char breakAllLineBreakClassTable[][U_LB_COUNT / 8 + 1] = {
++static const unsigned char breakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
+     // XX AI AL B2 BA BB BK CB    CL CM CR EX GL HY ID IN    IS LF NS NU OP PO PR QU    SA SG SP SY ZW NL WJ H2    H3 JL JT JV CP CJ HL RI
+     { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
+     { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI
+@@ -179,10 +187,10 @@ static const unsigned char breakAllLineB
+ #undef AL
+ 
+ static_assert(WTF_ARRAY_LENGTH(asciiLineBreakTable) == asciiLineBreakTableLastChar - asciiLineBreakTableFirstChar + 1, "asciiLineBreakTable should be consistent");
+-static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == U_LB_COUNT, "breakAllLineBreakClassTable should be consistent");
++static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == BA_LB_COUNT,
++              "breakAllLineBreakClassTable should be consistent");
+ 
+-static inline bool shouldBreakAfter(UChar lastCh, UChar ch, UChar nextCh)
+-{
++static inline bool shouldBreakAfter(UChar lastCh, UChar ch, UChar nextCh) {
+     // Don't allow line breaking between '-' and a digit if the '-' may mean a minus sign in the context,
+     // while allow breaking in 'ABCD-1234' and '1234-5678' which may be in long URLs.
+     if (ch == '-' && isASCIIDigit(nextCh))
+@@ -210,10 +218,11 @@ static inline ULineBreak lineBreakProper
+ 
+ static inline bool shouldBreakAfterBreakAll(ULineBreak lastLineBreak, ULineBreak lineBreak)
+ {
+-    if (lineBreak >= 0 && lineBreak < U_LB_COUNT && lastLineBreak >= 0 && lastLineBreak < U_LB_COUNT) {
+-        const unsigned char* tableRow = breakAllLineBreakClassTable[lastLineBreak];
+-        return tableRow[lineBreak / 8] & (1 << (lineBreak % 8));
+-    }
++  if (lineBreak >= 0 && lineBreak < BA_LB_COUNT && lastLineBreak >= 0 &&
++      lastLineBreak < BA_LB_COUNT) {
++    const unsigned char* tableRow = breakAllLineBreakClassTable[lastLineBreak];
++    return tableRow[lineBreak / 8] & (1 << (lineBreak % 8));
++  }
+     return false;
+ }
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611191820.uAJIKDSD007927>