Hello community, here is the log from the commit of package khtml for openSUSE:Factory checked in at 2015-10-19 22:24:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/khtml (Old) and /work/SRC/openSUSE:Factory/.khtml.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "khtml" Changes: -------- --- /work/SRC/openSUSE:Factory/khtml/khtml.changes 2015-09-24 07:11:49.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.khtml.new/khtml.changes 2015-10-19 22:24:55.000000000 +0200 @@ -1,0 +2,17 @@ +Mon Oct 5 17:37:17 UTC 2015 - hrvoje.sen...@gmail.com + +- Update to 5.15.0 + * Replace std::auto_ptr with std::unique_ptr + * khtml-filter: Discard rules containing special adblock features + that we do not handle yet. + * khtml-filter: Code reorder, no functional changes. + * khtml-filter: Ignore regexp with options as we do + not support them. + * khtml-filter: Fix detection of adblock options delimiter. + * khtml-filter: Clean up from trailing white spaces. + * khtml-filter: Do not discard lines starting with '&' as it + is not a special adblock char. + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.15.0.php + +------------------------------------------------------------------- Old: ---- khtml-5.14.0.tar.xz New: ---- khtml-5.15.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ khtml.spec ++++++ --- /var/tmp/diff_new_pack.xPyQH3/_old 2015-10-19 22:24:56.000000000 +0200 +++ /var/tmp/diff_new_pack.xPyQH3/_new 2015-10-19 22:24:56.000000000 +0200 @@ -18,9 +18,9 @@ %bcond_without lang %define lname libKF5KHtml5 -%define _tar_path 5.14 +%define _tar_path 5.15 Name: khtml -Version: 5.14.0 +Version: 5.15.0 Release: 0 %define kf5_version %{version} BuildRequires: cmake >= 2.8.12 ++++++ khtml-5.14.0.tar.xz -> khtml-5.15.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/CMakeLists.txt new/khtml-5.15.0/CMakeLists.txt --- old/khtml-5.14.0/CMakeLists.txt 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/CMakeLists.txt 2015-10-05 10:06:51.000000000 +0200 @@ -3,7 +3,7 @@ project(KHtml) include(FeatureSummary) -find_package(ECM 5.14.0 NO_MODULE) +find_package(ECM 5.15.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -20,8 +20,8 @@ include(KDEFrameworkCompilerSettings) include(KDECMakeSettings) -set(KF5_VERSION "5.14.0") # handled by release scripts -set(KF5_DEP_VERSION "5.14.0") # handled by release scripts +set(KF5_VERSION "5.15.0") # handled by release scripts +set(KF5_DEP_VERSION "5.15.0") # handled by release scripts find_package(KF5Archive ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Codecs ${KF5_DEP_VERSION} REQUIRED) find_package(KF5GlobalAccel ${KF5_DEP_VERSION} REQUIRED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/po/eo/khtml5.po new/khtml-5.15.0/po/eo/khtml5.po --- old/khtml-5.14.0/po/eo/khtml5.po 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/po/eo/khtml5.po 2015-10-05 10:06:51.000000000 +0200 @@ -172,18 +172,13 @@ msgstr "Ŝargitaj skriptoj" #: ecma/kjs_binding.cpp:196 -#, fuzzy -#| msgid "" -#| "A script on this page is causing KHTML to freeze. If it continues to run, " -#| "other applications may become less responsive.\n" -#| "Do you want to abort the script?" msgid "" "A script on this page is causing KHTML to freeze. If it continues to run, " "other applications may become less responsive.\n" "Do you want to stop the script?" msgstr "" -"Skripto en tiu paĝo kaŭzis KHTMLon haltiĝi. Se vi pluigas ruli, aliaj povos " -"malpli uzeblaj.\n" +"Skripto en tiu paĝo kaŭzis KHTMLon frostiĝi. Se vi pluigas ruli, aliaj povos " +"malpli respondemaj.\n" "Ĉi vi volas ĉesigi la skripton?" #: ecma/kjs_binding.cpp:196 @@ -830,10 +825,6 @@ msgstr "Grandigi tiparon" #: khtml_part.cpp:386 -#, fuzzy -#| msgid "" -#| "Enlarge Font<br /><br />Make the font in this window bigger. Click and " -#| "hold down the mouse button for a menu with all available font sizes." msgid "" "<qt>Enlarge Font<br /><br />Make the font in this window bigger. Click and " "hold down the mouse button for a menu with all available font sizes.</qt>" @@ -846,10 +837,6 @@ msgstr "Malgrandigi tiparon" #: khtml_part.cpp:393 -#, fuzzy -#| msgid "" -#| "Shrink Font<br /><br />Make the font in this window smaller. Click and " -#| "hold down the mouse button for a menu with all available font sizes." msgid "" "<qt>Shrink Font<br /><br />Make the font in this window smaller. Click and " "hold down the mouse button for a menu with all available font sizes.</qt>" @@ -859,10 +846,6 @@ "tipargrandecoj." #: khtml_part.cpp:408 -#, fuzzy -#| msgid "" -#| "Find text<br /><br />Shows a dialog that allows you to find text on the " -#| "displayed page." msgid "" "<qt>Find text<br /><br />Shows a dialog that allows you to find text on the " "displayed page.</qt>" @@ -871,28 +854,20 @@ "vidigita paĝo." #: khtml_part.cpp:412 -#, fuzzy -#| msgid "" -#| "Find next<br /><br />Find the next occurrence of the text that you have " -#| "found using the <b>Find Text</b> function" msgid "" "<qt>Find next<br /><br />Find the next occurrence of the text that you have " "found using the <b>Find Text</b> function.</qt>" msgstr "" -"Trovi sekvan<br /><br />Trovi la sekvan tekston kiun vi trovis per la " -"<b>Trovi tekston</b> funkcio" +"Trovi sekvan<br /><br />Trovi la sekvan aperon de la teksto kiun vi trovis " +"per la <b>Trovi tekston</b> funkcio" #: khtml_part.cpp:418 -#, fuzzy -#| msgid "" -#| "Find previous<br /><br />Find the previous occurrence of the text that " -#| "you have found using the <b>Find Text</b> function" msgid "" "<qt>Find previous<br /><br />Find the previous occurrence of the text that " "you have found using the <b>Find Text</b> function.</qt>" msgstr "" -"Trovi antaŭan<br /><br />Trovi la antaŭan tekston kiun vi trovis per la " -"<b>Trovi tekston</b> funkcio" +"Trovi antaŭan<br /><br />Trovi la antaŭan aperon de la teksto kiun vi trovis " +"per la <b>Trovi tekston</b> funkcio" #: khtml_part.cpp:423 msgid "Find Text as You Type" @@ -915,10 +890,6 @@ msgstr "" #: khtml_part.cpp:452 -#, fuzzy -#| msgid "" -#| "Print Frame<br /><br />Some pages have several frames. To print only a " -#| "single frame, click on it and then use this function." msgid "" "<qt>Print Frame<br /><br />Some pages have several frames. To print only a " "single frame, click on it and then use this function.</qt>" @@ -1382,7 +1353,6 @@ #. i18n: ectx: property (whatsThis), widget (QDialog, KJSErrorDlgBase) #: kjserrordlgbase.ui:17 -#, fuzzy msgid "" "This dialog provides you with notification and details of scripting errors " "that occur on web pages. In many cases it is due to an error in the web " @@ -1393,11 +1363,11 @@ "which illustrates the problem will be appreciated." msgstr "" "Tiu dialogo havigas vin kun noto kaj detaloj pri skripteraroj, kiuj okazas " -"en la TTTa paĝoj. Ĉe multaj okazoj ili estas kaŭzata de eraro en la paĝo " +"en la TTTa paĝoj. Ĉe multaj okazoj ili estas kaŭzata de eraro en la retejo, " "verkita de la kreinto. ĉe aliaj okazoj ili estas la rezulto de programa " "eraro en Konkeranto. Se vi kredas la unuan, bonvolu informi la teksestron. " -"Kontraŭe vi kredas eraron en Konkeranto, bonvolu raporti ĝin al http://bugs." -"kde.org/. Ni ŝate ricevas testokazon, kiu montras la problemon." +"Se male vi kredas pri eraro en Konkeranto, bonvolu raporti ĝin al http://" +"bugs.kde.org/. Ni ŝate ricevas testokazon, kiu montras la problemon." #. i18n: ectx: property (text), widget (QPushButton, _close) #: kjserrordlgbase.ui:29 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/po/nb/khtml5.po new/khtml-5.15.0/po/nb/khtml5.po --- old/khtml-5.14.0/po/nb/khtml5.po 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/po/nb/khtml5.po 2015-10-05 10:06:51.000000000 +0200 @@ -1,5 +1,3 @@ -# Translation of khtml5 to Norwegian Bokmål -# # Knut Yrvin <knut.yr...@gmail.com>, 2002, 2003, 2004, 2005. # Bjørn Steensrud <bjor...@skogkatt.homelinux.org>, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014. # Eskild Hustvedt <zerod...@skolelinux.no>, 2004, 2005. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/po/se/khtml5.po new/khtml-5.15.0/po/se/khtml5.po --- old/khtml-5.14.0/po/se/khtml5.po 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/po/se/khtml5.po 2015-10-05 10:06:51.000000000 +0200 @@ -1,5 +1,3 @@ -# Translation of khtml5 to Northern Sami -# # Børre Gaup <boe...@skolelinux.no>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. msgid "" msgstr "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/khtml_filter.cpp new/khtml-5.15.0/src/khtml_filter.cpp --- old/khtml-5.14.0/src/khtml_filter.cpp 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/khtml_filter.cpp 2015-10-05 10:06:51.000000000 +0200 @@ -62,86 +62,87 @@ void FilterSet::addFilter(const QString &filterStr) { - QString filter = filterStr; + QString filter = filterStr.trimmed(); + if (filter.isEmpty()) { + return; + } - /** ignore special lines starting with "[", "!", "&", or "#" or contain "#" (comments or features are not supported by KHTML's AdBlock */ - QChar firstChar = filter.at(0); - if (firstChar == QLatin1Char('[') || firstChar == QLatin1Char('!') || firstChar == QLatin1Char('&') || firstChar == QLatin1Char('#') || filter.contains(QLatin1Char('#'))) { + /** ignore special lines starting with "[", "!", or "#" or contain "#" (comments or features are not supported by KHTML's AdBlock */ + const QChar firstChar = filter.at(0); + if (firstChar == QLatin1Char('[') || firstChar == QLatin1Char('!') || firstChar == QLatin1Char('#') || filter.contains(QLatin1Char('#'))) { return; } // Strip leading @@ - int first = 0; - int last = filter.length() - 1; if (filter.startsWith(QLatin1String("@@"))) { - first = 2; + filter.remove(0, 2); } // Strip options, we ignore them for now. + bool hadOptions = false; int dollar = filter.lastIndexOf(QLatin1Char('$')); if (dollar != -1) { - last = dollar - 1; - // If only "*" is left after ignoring the options, disregard the rule. - if (first == last && firstChar == QLatin1Char('*')) { - return; + // Is it adblock's options delimiter or the special '$' char in a regular expression? + if (!filter.startsWith(QLatin1Char('/')) || !filter.endsWith(QLatin1Char('/'))) { + filter = filter.mid(0, dollar); + hadOptions = true; } } - // Perhaps nothing left? - if (first > last) { - return; - } - - filter = filter.mid(first, last - first + 1); - // Is it a regexp filter? if (filter.length() > 2 && filter.startsWith(QLatin1Char('/')) && filter.endsWith(QLatin1Char('/'))) { + // Ignore regexp that had options as we do not support them + if (hadOptions) { + return; + } QString inside = filter.mid(1, filter.length() - 2); QRegExp rx(inside); reFilters.append(rx); -// qDebug() << "R:" << inside; - } else { - // Nope, a wildcard one. - // Note: For these, we also need to handle |. + //qDebug() << "R:" << inside; + return; + } + // Nope, a wildcard one. - // Strip wildcards at the ends - first = 0; - last = filter.length() - 1; + // Disregard the rule if only one char is left or it contains unsupported adblock features ('|', "||", '^') + if (filter.length() < 2 || filter.contains(QLatin1Char('|')) || filter.contains(QLatin1Char('^'))) { + return; + } - while (first < filter.length() && filter[first] == QLatin1Char('*')) { - ++first; - } + // Strip wildcards at the ends + int first = 0; + int last = filter.length() - 1; - while (last >= 0 && filter[last] == QLatin1Char('*')) { - --last; - } + while (first < filter.length() && filter.at(first) == QLatin1Char('*')) { + ++first; + } - if (first > last) { - filter = QLatin1String("*"); // erm... Well, they asked for it. - } else { - filter = filter.mid(first, last - first + 1); - } + while (last >= 0 && filter.at(last) == QLatin1Char('*')) { + --last; + } - // Now, do we still have any wildcard stuff left? - if (filter.contains("*")) { - // check if we can use RK first (and then check full RE for the rest) for better performance - int aPos = filter.indexOf('*'); - if (aPos < 0) { - aPos = filter.length(); - } - if (aPos > 7) { - QRegExp rx = fromAdBlockWildcard(filter.mid(aPos) + QLatin1Char('*')); - // We pad the final r.e. with * so we can check for an exact match - stringFiltersMatcher.addWildedString(filter.mid(0, aPos), rx); - } else { - QRegExp rx = fromAdBlockWildcard(filter); - reFilters.append(rx); - } + if (first > last) { + filter = QLatin1String("*"); // erm... Well, they asked for it. + } else { + filter = filter.mid(first, last - first + 1); + } + + // Now, do we still have any wildcard stuff left? + int aPos = filter.indexOf('*'); + if (aPos != -1) { + // check if we can use RK first (and then check full RE for the rest) for better performance + if (aPos > 7) { + QRegExp rx = fromAdBlockWildcard(filter.mid(aPos) + QLatin1Char('*')); + // We pad the final r.e. with * so we can check for an exact match + stringFiltersMatcher.addWildedString(filter.mid(0, aPos), rx); } else { - // Fast path - stringFiltersMatcher.addString(filter); + QRegExp rx = fromAdBlockWildcard(filter); + reFilters.append(rx); } + } else { + // Fast path + stringFiltersMatcher.addString(filter); } + } bool FilterSet::isUrlMatched(const QString &url) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/SVGDocumentExtensions.cpp new/khtml-5.15.0/src/svg/SVGDocumentExtensions.cpp --- old/khtml-5.14.0/src/svg/SVGDocumentExtensions.cpp 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/SVGDocumentExtensions.cpp 2015-10-05 10:06:51.000000000 +0200 @@ -152,16 +152,16 @@ return false; } -std::auto_ptr<HashSet<SVGStyledElement *> > SVGDocumentExtensions::removePendingResource(const AtomicString &id) +std::unique_ptr<HashSet<SVGStyledElement *> > SVGDocumentExtensions::removePendingResource(const AtomicString &id) { Q_UNUSED(id); /*ASSERT(m_pendingResources.contains(id)); - std::auto_ptr<HashSet<SVGStyledElement*> > set(m_pendingResources.get(id)); + std::unique_ptr<HashSet<SVGStyledElement*> > set(m_pendingResources.get(id)); m_pendingResources.remove(id); return set;*/ ASSERT(false); - return std::auto_ptr<HashSet<SVGStyledElement *> >(); + return std::unique_ptr<HashSet<SVGStyledElement *> >(); } void SVGDocumentExtensions::mapInstanceToElement(SVGElementInstance *instance, SVGElement *element) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/SVGDocumentExtensions.h new/khtml-5.15.0/src/svg/SVGDocumentExtensions.h --- old/khtml-5.14.0/src/svg/SVGDocumentExtensions.h 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/SVGDocumentExtensions.h 2015-10-05 10:06:51.000000000 +0200 @@ -109,7 +109,7 @@ // For instance, dynamically build gradients / patterns / clippers... void addPendingResource(const AtomicString &id, SVGStyledElement *); bool isPendingResource(const AtomicString &id) const; - std::auto_ptr<HashSet<SVGStyledElement *> > removePendingResource(const AtomicString &id); + std::unique_ptr<HashSet<SVGStyledElement *> > removePendingResource(const AtomicString &id); // This HashMap maps elements to their instances, when they are used by <use> elements. // This is needed to synchronize the original element with the internally cloned one. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/SVGElement.cpp new/khtml-5.15.0/src/svg/SVGElement.cpp --- old/khtml-5.14.0/src/svg/SVGElement.cpp 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/SVGElement.cpp 2015-10-05 10:06:51.000000000 +0200 @@ -231,7 +231,7 @@ String resourceId = SVGURIReference::getTarget(id()); if (extensions->isPendingResource(resourceId)) { - std::auto_ptr<HashSet<SVGStyledElement*> > clients(extensions->removePendingResource(resourceId)); + std::unique_ptr<HashSet<SVGStyledElement*> > clients(extensions->removePendingResource(resourceId)); if (clients->isEmpty()) return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/SVGMaskElement.cpp new/khtml-5.15.0/src/svg/SVGMaskElement.cpp --- old/khtml-5.14.0/src/svg/SVGMaskElement.cpp 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/SVGMaskElement.cpp 2015-10-05 10:06:51.000000000 +0200 @@ -144,7 +144,7 @@ m_masker->invalidate(); } -auto_ptr<ImageBuffer> SVGMaskElement::drawMaskerContent(const FloatRect &targetRect, FloatRect &maskDestRect) const +unique_ptr<ImageBuffer> SVGMaskElement::drawMaskerContent(const FloatRect &targetRect, FloatRect &maskDestRect) const { // Determine specified mask size float xValue; @@ -175,7 +175,7 @@ heightValue = imageSize.height(); } - auto_ptr<ImageBuffer> maskImage = ImageBuffer::create(imageSize, false); + unique_ptr<ImageBuffer> maskImage = ImageBuffer::create(imageSize, false); if (!maskImage.get()) { return maskImage; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/SVGMaskElement.h new/khtml-5.15.0/src/svg/SVGMaskElement.h --- old/khtml-5.14.0/src/svg/SVGMaskElement.h 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/SVGMaskElement.h 2015-10-05 10:06:51.000000000 +0200 @@ -56,7 +56,7 @@ virtual RenderObject *createRenderer(RenderArena *, RenderStyle *); virtual SVGResource *canvasResource(); - std::auto_ptr<ImageBuffer> drawMaskerContent(const FloatRect &targetRect, FloatRect &maskRect) const; + std::unique_ptr<ImageBuffer> drawMaskerContent(const FloatRect &targetRect, FloatRect &maskRect) const; protected: ANIMATED_PROPERTY_FORWARD_DECLARATIONS(SVGURIReference, String, Href, href) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/SVGPatternElement.cpp new/khtml-5.15.0/src/svg/SVGPatternElement.cpp --- old/khtml-5.14.0/src/svg/SVGPatternElement.cpp 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/SVGPatternElement.cpp 2015-10-05 10:06:51.000000000 +0200 @@ -239,7 +239,7 @@ IntSize imageSize(lroundf(patternBoundariesIncludingOverflow.width()), lroundf(patternBoundariesIncludingOverflow.height())); clampImageBufferSizeToViewport(document()->renderer(), imageSize); - auto_ptr<ImageBuffer> patternImage = ImageBuffer::create(imageSize, false); + unique_ptr<ImageBuffer> patternImage = ImageBuffer::create(imageSize, false); if (!patternImage.get()) { return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/graphics/SVGPaintServerPattern.cpp new/khtml-5.15.0/src/svg/graphics/SVGPaintServerPattern.cpp --- old/khtml-5.14.0/src/svg/graphics/SVGPaintServerPattern.cpp 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/graphics/SVGPaintServerPattern.cpp 2015-10-05 10:06:51.000000000 +0200 @@ -68,7 +68,7 @@ return m_tile.get(); } -void SVGPaintServerPattern::setTile(auto_ptr<ImageBuffer> tile) +void SVGPaintServerPattern::setTile(unique_ptr<ImageBuffer> tile) { m_tile.set(tile.release()); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/khtml-5.14.0/src/svg/graphics/SVGPaintServerPattern.h new/khtml-5.15.0/src/svg/graphics/SVGPaintServerPattern.h --- old/khtml-5.14.0/src/svg/graphics/SVGPaintServerPattern.h 2015-09-05 11:01:43.000000000 +0200 +++ new/khtml-5.15.0/src/svg/graphics/SVGPaintServerPattern.h 2015-10-05 10:06:51.000000000 +0200 @@ -63,7 +63,7 @@ FloatRect patternBoundaries() const; ImageBuffer *tile() const; - void setTile(std::auto_ptr<ImageBuffer>); + void setTile(std::unique_ptr<ImageBuffer>); AffineTransform patternTransform() const; void setPatternTransform(const AffineTransform &);