1. 03 Aug, 2015 3 commits
    • carlosgc@webkit.org's avatar
      Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.5 release. · 5f99aec6
      carlosgc@webkit.org authored
      .:
      
      * Source/cmake/OptionsGTK.cmake: Bump version numbers.
      
      Source/WebKit2:
      
      * gtk/NEWS: Add release notes for 2.9.5.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187734 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5f99aec6
    • benjamin@webkit.org's avatar
      Investigate HashTable::HashTable(const HashTable&) and... · a6e1187f
      benjamin@webkit.org authored
      Investigate HashTable::HashTable(const HashTable&) and HashTable::operator=(const HashTable&) performance for hash-based static analyses
      https://bugs.webkit.org/show_bug.cgi?id=118455
      
      Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-08-02
      Reviewed by Filip Pizlo.
      
      Source/JavaScriptCore:
      
      LivenessAnalysisPhase lights up like a christmas tree in profiles.
      
      This patch cuts its cost by 4.
      About half of the gains come from removing many rehash() when copying
      the HashSet.
      The last quarter is achieved by having a special add() function for initializing
      a HashSet.
      
      This makes benchmarks progress by 1-2% here and there. Nothing massive.
      
      * dfg/DFGLivenessAnalysisPhase.cpp:
      (JSC::DFG::LivenessAnalysisPhase::process):
      The m_live HashSet is only useful per block. When we are done with it,
      we can transfer it to liveAtHead to avoid a copy.
      
      Source/WTF:
      
      Previously, when copying a HashTable, we would start from scratch
      with an empty table and insert elements one by one, growing-rehashing
      the table as needed.
      
      With this patch, we have 2 improvements to remove most of the cost.
      
      First, we compute a good size from the start. This removes all the
      reallocations and rehashs.
      This is where the biggest gain comes from.
      
      The second part is a simpler version of add() when we know that
      we cannot find a bucket with the same key and there cannot
      be any deleted bucket.
      This removes most branches from the hot loop, cutting another 25%
      of the time.
      
      * wtf/HashTable.h:
      (WTF::KeyTraits>::addUniqueForInitialization):
      (WTF::KeyTraits>::HashTable):
      
      Tools:
      
      * TestWebKitAPI/Tests/WTF/HashSet.cpp:
      (TestWebKitAPI::TEST):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187733 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a6e1187f
    • mattbaker@apple.com's avatar
      Web Inspector: Unnamespaced Formatter classes break CSSStyleDeclarationTextEditor · 7aca9cc1
      mattbaker@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147544
      
      Reviewed by Brian Burg.
      
      Added Formatter and FormatterContentBuilder to WebInspector namespace.
      
      * UserInterface/Controllers/Formatter.js:
      * UserInterface/Controllers/FormatterContentBuilder.js:
      * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
      (WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
      * UserInterface/Views/TextEditor.js:
      (WebInspector.TextEditor.prototype.prettyPrint.prettyPrintAndUpdateEditor):
      (WebInspector.TextEditor.prototype.prettyPrint):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187732 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7aca9cc1
  2. 02 Aug, 2015 3 commits
    • cfleizach@apple.com's avatar
      AX: On some complex sites, iOS instantly crashes once VoiceOver is turned on · 63108b9a
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147529
      
      Reviewed by Dan Bernstein.
      
      Sometimes after focusing on a node, it seems like the entire document is destroyed.
      Accessibility the axObjectCache returns nullptr and we crash.
      
      Despite my best efforts, I couldn't make a layout test that reproduced this. It's possible
      the entire document needs to be destroyed and replaced with something.
      
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::setFocused):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187731 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63108b9a
    • mattbaker@apple.com's avatar
      Web Inspector: REGRESSION (r187689): Timeline overview graph layout is broken · e99fb8fe
      mattbaker@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147539
      
      Reviewed by Brian Burg.
      
      Removed timeline argument being passed to TimelineOverviewGraph constructor.
      
      * UserInterface/Views/LayoutTimelineOverviewGraph.js:
      (WebInspector.LayoutTimelineOverviewGraph):
      * UserInterface/Views/NetworkTimelineOverviewGraph.js:
      (WebInspector.NetworkTimelineOverviewGraph):
      * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
      (WebInspector.RenderingFrameTimelineOverviewGraph):
      * UserInterface/Views/ScriptTimelineOverviewGraph.js:
      (WebInspector.ScriptTimelineOverviewGraph):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e99fb8fe
    • mmaxfield@apple.com's avatar
      [OS X] Font fallback is not language-sensitive · 32242f00
      mmaxfield@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147390
      
      Reviewed by Dean Jackson.
      
      Source/WebCore:
      
      We need to make our font fallback code sensitive to locale.
      
      Test: fast/text/fallback-language-han.html
      
      * platform/graphics/mac/FontCacheMac.mm:
      (WebCore::lookupCTFont):
      (WebCore::FontCache::systemFallbackForCharacters):
      
      LayoutTests:
      
      Updating tests.
      
      * css3/line-break/line-break-auto-centered-expected.html:
      * css3/line-break/line-break-auto-centered.html:
      * css3/line-break/line-break-auto-postfixes-expected.html:
      * css3/line-break/line-break-auto-postfixes.html:
      * css3/line-break/line-break-loose-centered-expected.html:
      * css3/line-break/line-break-loose-centered.html:
      * css3/line-break/line-break-loose-hyphens-expected.html:
      * css3/line-break/line-break-loose-hyphens.html:
      * css3/line-break/line-break-loose-postfixes-expected.html:
      * css3/line-break/line-break-loose-postfixes.html:
      * css3/line-break/line-break-loose-sound-marks-expected.html:
      * css3/line-break/line-break-loose-sound-marks.html:
      * css3/line-break/line-break-normal-centered-expected.html:
      * css3/line-break/line-break-normal-centered.html:
      * css3/line-break/line-break-normal-hyphens-expected.html:
      * css3/line-break/line-break-normal-hyphens.html:
      * css3/line-break/line-break-normal-postfixes-expected.html:
      * css3/line-break/line-break-normal-postfixes.html:
      * css3/line-break/line-break-normal-sound-marks-expected.html:
      * css3/line-break/line-break-normal-sound-marks.html:
      * css3/line-break/line-break-strict-centered-expected.html:
      * css3/line-break/line-break-strict-centered.html:
      * css3/line-break/line-break-strict-hyphens-expected.html:
      * css3/line-break/line-break-strict-hyphens.html:
      * css3/line-break/line-break-strict-postfixes-expected.html:
      * css3/line-break/line-break-strict-postfixes.html:
      * css3/line-break/line-break-strict-sound-marks-expected.html:
      * css3/line-break/line-break-strict-sound-marks.html:
      * fast/text/fallback-language-han-expected.html: Added.
      * fast/text/fallback-language-han.html: Added.
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/win/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187729 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      32242f00
  3. 01 Aug, 2015 26 commits
  4. 31 Jul, 2015 8 commits
    • joepeck@webkit.org's avatar
      Web Inspector: Unskip / Unflake inspector tests after r187627 · df02b023
      joepeck@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=147503
      
      Reviewed by Brian Burg.
      
      Source/WebInspectorUI:
      
      * UserInterface/Base/Test.js:
      (InspectorTest.completeTest):
      (InspectorTest.completeTest.signalCompletionToTestPage): Deleted.
      (InspectorTest.testPageDidLoad):
      Instead of immediately resending results if completeTest was called
      during a reload before the load has completed, we just set a flag
      to complete the test when the load completes. This consistently
      resends the output to the new page for test output.
      
      (InspectorTest._resendResults):
      Delete clear results. If the page had logged anything directly on
      the page side (using InspectorTestProxy) this clearMessages would
      have deleted those messages and not been able to recreate them.
      Clearing messages wasn't really serving a purpose.
      
      LayoutTests:
      
      * TestExpectations:
      * platform/mac-wk2/TestExpectations:
      * platform/mac/TestExpectations:
      Unskip and unflake inspector tests.
      
      * http/tests/inspector/inspector-test.js:
      (InspectorTestProxy.addResult):
      Simplify with the new append API.
      
      (InspectorTestProxy.clearResults): Deleted.
      Delete, as it is no longer used.
      
      * inspector/debugger/probe-manager-add-remove-actions-expected.txt:
      Include output that was getting erronously cleared by clearResults
      which we removed.
      
      * inspector/dom/highlightSelector-expected.txt:
      * inspector/dom/highlightSelector.html:
      Make this test more reliable when run with other tests.
      Never assume the frame id for the main frame or sub frame,
      instead compute them and mask them in the output.
      
      * inspector/dom/resources/highlightSelector-iframe.html: Renamed from LayoutTests/inspector/dom/highlightSelector-iframe.html.
      Move the non-test iframe html resource into a sub-folder
      so it won't be treated like an actual test.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187692 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df02b023
    • cdumez@apple.com's avatar
      Source/WebCore: · 9e4b87c8
      cdumez@apple.com authored
      Coalesce authentication credential requests
      https://bugs.webkit.org/show_bug.cgi?id=128006
      <rdar://problem/16839069>
      
      Reviewed by Alexey Proskuryakov.
      
      Export symbol for ProtectionSpace::compare() so it can be called from
      WebKit2.
      
      * platform/network/ProtectionSpaceBase.h:
      
      Source/WebKit2:
      Coalesce concurrent authentication challenges for the same ProtectionSpace
      https://bugs.webkit.org/show_bug.cgi?id=147496
      <rdar://problem/16839069>
      
      Reviewed by Alexey Proskuryakov.
      
      Coalesce concurrent authentication challenges for the same ProtectionSpace.
      Ideally, this would be done in the network layer but short term, this will
      make sure the user no longer gets repeating authentication dialogs for the
      same protection space.
      
      This gets rid of a long-standing bug in WebKit / Safari where visiting a
      site using HTTP authentication would pop up one authentication dialog for
      each subresource being loaded from the network (especially when the main
      resource is loaded from the cache).
      
      * Shared/Authentication/AuthenticationManager.cpp:
      (WebKit::canCoalesceChallenge):
      (WebKit::AuthenticationManager::addChallengeToChallengeMap):
      (WebKit::AuthenticationManager::shouldCoalesceChallenge):
      (WebKit::AuthenticationManager::coalesceChallengesMatching):
      (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
      (WebKit::AuthenticationManager::useCredentialForChallenge):
      (WebKit::AuthenticationManager::useCredentialForSingleChallenge):
      (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
      (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
      (WebKit::AuthenticationManager::cancelChallenge):
      (WebKit::AuthenticationManager::cancelSingleChallenge):
      (WebKit::AuthenticationManager::performDefaultHandling):
      (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
      (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
      (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):
      (WebKit::AuthenticationManager::AuthenticationManager): Deleted.
      * Shared/Authentication/AuthenticationManager.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9e4b87c8
    • joepeck@webkit.org's avatar
      Unreviewed gardening. Skip more inspector tests on Windows. · 1d60eb87
      joepeck@webkit.org authored
      It may be that no inspector tests are working on Windows,
      if that is the case we may move to skipping all of them
      and investigate unskipping in chunks.
      
      * platform/win/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1d60eb87
    • burg@cs.washington.edu's avatar
      Web Inspector: Convert timeline view classes to ES6 classes · 79ebf2f8
      burg@cs.washington.edu authored
      https://bugs.webkit.org/show_bug.cgi?id=147381
      
      Reviewed by Joseph Pecoraro.
      
      Along the way, inline a few style class names.
      
      Elided mechanical changes from the Changelog.
      
      * UserInterface/Views/LayoutTimelineOverviewGraph.js:
      * UserInterface/Views/LayoutTimelineView.js:
      * UserInterface/Views/LinearTimelineOverview.js:
      * UserInterface/Views/NetworkTimelineOverviewGraph.js:
      * UserInterface/Views/NetworkTimelineView.js:
      * UserInterface/Views/OverviewTimelineView.js:
      * UserInterface/Views/RenderingFrameTimelineOverview.js:
      * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
      * UserInterface/Views/RenderingFrameTimelineView.js:
      * UserInterface/Views/ScriptTimelineOverviewGraph.js:
      * UserInterface/Views/ScriptTimelineView.js:
      * UserInterface/Views/TimelineOverview.js:
      * UserInterface/Views/TimelineOverviewGraph.js:
      * UserInterface/Views/TimelineRecordBar.js:
      * UserInterface/Views/TimelineRecordFrame.js:
      * UserInterface/Views/TimelineRecordingContentView.js:
      * UserInterface/Views/TimelineRuler.js:
      * UserInterface/Views/TimelineTabContentView.js:
      * UserInterface/Views/TimelineView.js:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      79ebf2f8
    • eric.carlson@apple.com's avatar
      [iOS] use a media-specific user gesture check · 53f1124c
      eric.carlson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147509
      
      Reviewed by Jer Noble.
      
      * bindings/js/ScriptController.cpp:
      (WebCore::ScriptController::processingUserGestureForMedia): New.
      * bindings/js/ScriptController.h:
      
      * dom/UserGestureIndicator.cpp:
      (WebCore::isDefinite): Allow DefinitelyProcessingMediaUserGesture.
      (WebCore::UserGestureIndicator::processingUserGestureForMedia): New.
      * dom/UserGestureIndicator.h:
      
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::load): Use ScriptController::processingUserGestureForMedia instead of 
        ScriptController::processingUserGesture
      (WebCore::HTMLMediaElement::play): Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      53f1124c
    • akling@apple.com's avatar
      Crashes under HTMLMediaElement::updateActiveTextTrackCues() when destroying CachedPage. · 169ebe27
      akling@apple.com authored
      <https://webkit.org/b/147506>
      <rdar://problem/21939014>
      
      Reviewed by Chris Dumez.
      
      Don't mess with the media element's text tracks below its ActiveDOMObject::stop()
      implementation, since that may cause DOM mutations.
      
      I don't have a repro or a test for this, but plenty of crash logs to indicate that
      we're getting ourselves into trouble by modifying the DOM during CachedPage teardown.
      
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::configureTextTrackDisplay):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      169ebe27
    • timothy_horton@apple.com's avatar
      [iOS] DOMNode preview snapshot rects are wrong for user-select: none links · d87371a3
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147513
      <rdar://problem/22083354>
      
      Reviewed by Simon Fraser.
      
      * bindings/objc/DOM.mm:
      (-[DOMNode getPreviewSnapshotImage:andRects:]):
      Use the same code as WebKit2 to compute the fallback rect (if TextIndicator fails),
      asking the RenderObject (or RenderImage) for its bounding box instead of using the
      (often wrong) Range bounding rect.
      
      Make sure to use the fallback rect *any* time TextIndicator fails (before
      we would return no rects at all if TextIndicator::createWithRange returned null,
      and the fallback rect if it returned with an empty image).
      
      Inverse-page-scale the margin, to match the appearance in WebKit2.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d87371a3
    • mmaxfield@apple.com's avatar
      [SVG -> OTF Converter] Crash when converting Arabic fonts · 63417b48
      mmaxfield@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=147510
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore:
      
      SVGToOTFFontConverter::compareCodepointsLexicographically() wasn't transitive.
      
      Test: fast/text/arabic-duplicate-glyph-font.html
      
      * svg/SVGToOTFFontConversion.cpp:
      (WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
      
      LayoutTests:
      
      * fast/text/arabic-duplicate-glyph-font-expected.txt: Added.
      * fast/text/arabic-duplicate-glyph-font.html: Added.
      * fast/text/resources/arabic-duplicate-glyph-font.svg: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@187685 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63417b48