Timeline
Jun 12, 2016:
- 8:57 PM Changeset in webkit [201986] by
-
- 2 edits in trunk/Tools
run-safari/run-webkit-app fail to quit iOS simulator after Xcode installation
https://bugs.webkit.org/show_bug.cgi?id=158651
rdar://problem/26499824
Reviewed by Daniel Bates.
This change is to make our tools more robust. Sometimes run-safari/run-webkit-app fails
to start the tests as one of the first thing these scripts do is to relaunch iOS Simulators,
and in process call quitIOSSimulator. In case the Simulator is not registered in LaunchServices
for some reason, quitIOSSimulator fails and the script stops. This change will make the scripts
still continue when they fail to quit iOS Simuator, and modify the way Simulator is opened,
so that Simulator is implicitly registered with LaunchServices while opening it.
- Scripts/webkitdirs.pm:
(relaunchIOSSimulator):
Launch iOS Simulator using complete path. Partially reverting http://trac.webkit.org/changeset/184202.
(quitIOSSimulator):
Do not die if quitting ios Simulator fails, so that relaunchIOSSimulator can still
attempt to launch the simulator.
(waitUntilIOSSimulatorDeviceIsInState):
Added a FIXME.
- 1:57 PM Changeset in webkit [201985] by
-
- 3 edits in trunk/Source/WebCore
Cleanup RenderBlock::removePositionedObjects
https://bugs.webkit.org/show_bug.cgi?id=158670
Reviewed by Simon Fraser.
No change in functionality.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):
(WebCore::RenderBlock::removePositionedObjects):
- rendering/RenderBlock.h:
- 1:45 PM Changeset in webkit [201984] by
-
- 3 edits2 adds in trunk
Remove positioned descendants when RenderBlock is no longer a containing block.
https://bugs.webkit.org/show_bug.cgi?id=158655
<rdar://problem/26510032>
Reviewed by Simon Fraser.
Normally the RenderView is the containing block for fixed positioned renderers.
However when a renderer acquires some transform related properties, it becomes the containing
block for all the fixed positioned renderers in its descendant tree.
When the last transform related property is removed, the renderer is no longer a containing block
and we need to remove all these positioned renderers from the descendant tracker map (gPositionedDescendantsMap).
They will be inserted back into the tracker map during the next layout (either under the RenderView or
under the next transformed renderer in the ancestor chain).
Source/WebCore:
Test: fast/block/fixed-position-reparent-when-transition-is-removed.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
LayoutTests:
- fast/block/fixed-position-reparent-when-transition-is-removed-expected.txt: Added.
- fast/block/fixed-position-reparent-when-transition-is-removed.html: Added.
- 6:22 AM Changeset in webkit [201983] by
-
- 3 edits in trunk/Source/bmalloc
Crash in com.apple.WebKit.WebContent at std::1::call_once_proxy<std::__1::tuple<CrashReporterSupportLibrary()::$_0&&> >
<https://webkit.org/b/158660>
<rdar://problem/25652686>
Reviewed by Darin Adler.
- bmalloc/Logging.cpp: Switch to use
BSOFT_LINK_PRIVATE_FRAMEWORK() to link
CrashReporterSupport.framework.
- bmalloc/darwin/BSoftLinking.h:
(BSOFT_LINK_PRIVATE_FRAMEWORK): Rename from BSOFT_LINK_FRAMEWORK.
Switch to use /System/Library/PrivateFrameworks/.
Jun 11, 2016:
- 6:14 PM Changeset in webkit [201982] by
-
- 7 edits in trunk
Addressing post-review comments after r201978.
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>
Unreviewed.
Source/WebCore:
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::alternateFamilyName):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::equal):
(WTF::naiveEqualWithoutPerformingUnicodeNormalization): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/WTFString.cpp:
(TestWebKitAPI::TEST):
- 4:44 PM Changeset in webkit [201981] by
-
- 2 edits in trunk/Tools
Unreviewed leak fix after r201863.
- DumpRenderTree/mac/DumpRenderTree.mm:
(dumpFramesAsText):
- 4:35 PM Changeset in webkit [201980] by
-
- 2 edits in trunk/Source/WebCore
Tighten code to build set of tag names
https://bugs.webkit.org/show_bug.cgi?id=158662
Reviewed by Alexey Proskuryakov.
- dom/Element.cpp:
(WebCore::canAttachAuthorShadowRoot): Use an array of pointers that the loader
can initialize as part of loading the library, rather than an array that needs
to be initialized with code at runtime.
- 3:55 PM Changeset in webkit [201979] by
-
- 3 edits in trunk/Source/WebCore
[Win] [EFL] Build fix after r201978.
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>
Unreviewed
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/win/FontCacheWin.cpp:
- 2:48 PM Changeset in webkit [201978] by
-
- 16 edits4 adds in trunk
[Cocoa] Map commonly used Chinese Windows font names to names present on Cocoa operating systems
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>
Reviewed by Darin Adler.
Source/WebCore:
There are many Chinese websites which hardcode Windows font names.
We should map these to fonts which best match them on Cocoa operating
systems. We can do this by using our existing fallback font name
infrastructure.
Tests: fast/text/chinese-font-name-aliases-2.html
fast/text/chinese-font-name-aliases.html
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::alternateFamilyName):
(WebCore::alternateFamilyName): Deleted.
- platform/graphics/FontCache.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::naiveEqualWithoutPerformingUnicodeNormalization): Added.
Tools:
- TestWebKitAPI/Tests/WTF/WTFString.h:
(TestWebKitAPI::TEST):
LayoutTests:
Because this tests platform-specific font names, the test must
be platform-specific. Because it's a ref test, make two tests which
are mutually-exclusive on Cocoa platforms, and expected to fail
everywhere else.
- fast/text/chinese-font-name-aliases-2-expected.html: Added.
- fast/text/chinese-font-name-aliases-2.html: Added.
- fast/text/chinese-font-name-aliases-expected.html: Added.
- fast/text/chinese-font-name-aliases.html: Added.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 1:05 PM Changeset in webkit [201977] by
-
- 11 edits1 delete in trunk
Unreviewed, rolling out r201967, r201968, and r201972.
https://bugs.webkit.org/show_bug.cgi?id=158665
Caused flaky failures on IndexedDB tests (Requested by ap on
#webkit).
Reverted changesets:
"Vary:Cookie validation doesn't work in private browsing"
https://bugs.webkit.org/show_bug.cgi?id=158616
http://trac.webkit.org/changeset/201967
"Build fix."
http://trac.webkit.org/changeset/201968
"WinCairo build fix attempt."
http://trac.webkit.org/changeset/201972
- 12:58 PM Changeset in webkit [201976] by
-
- 7 edits in trunk/Source/JavaScriptCore
Minimize the amount of memcpy done for allocating Error stacks.
https://bugs.webkit.org/show_bug.cgi?id=158664
Reviewed by Darin Adler.
Currently, Vector<StackFrame> are being copied around multiple times in the
process of creating Error stacks.
This patch avoids this unnecessary copying by:
- Sizing the StackFrame vector correctly to begin with, and skipping undesirable top frames before filling in the vector.
- Using perfect forwarding or passing by reference to pass the vector data around instead of copying the vectors.
- Changing the Exception object to take a Vector<StackFrame> instead of a RefCountedArray<StackFrame>.
This patch has passed the JSC and layout tests. Benchmarks show that perf is
neutral.
- API/tests/testapi.mm:
(testObjectiveCAPI):
- inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStackFromException):
- interpreter/Interpreter.cpp:
(JSC::GetStackTraceFunctor::GetStackTraceFunctor):
(JSC::GetStackTraceFunctor::operator()):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::stackTraceAsString):
(JSC::findExceptionHandler):
- interpreter/Interpreter.h:
- runtime/Error.cpp:
(JSC::addErrorInfoAndGetBytecodeOffset):
- runtime/Exception.cpp:
(JSC::Exception::finishCreation):
- runtime/Exception.h:
(JSC::Exception::valueOffset):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):
- 12:48 PM Changeset in webkit [201975] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
- Skipped:
- 11:53 AM Changeset in webkit [201974] by
-
- 2 edits in trunk/Source/JavaScriptCore
Tests that overflows the stack should not be run with the sampling profiler.
https://bugs.webkit.org/show_bug.cgi?id=158663
Reviewed by Saam Barati.
The sampling profiler will be sampling the whole stack, and the amount of memory
churn will make this tests time out, especially with debug builds. Hence,
let's not run the test with the sampling profiler configuration.
- tests/stress/mutual-tail-call-no-stack-overflow.js:
(shouldThrow):
- 11:07 AM Changeset in webkit [201973] by
-
- 2 edits in trunk/Source/WebCore
Fixed compilation of LocaleICU with ENABLE(DATE_AND_TIME_INPUT_TYPES)
https://bugs.webkit.org/show_bug.cgi?id=158659
Reviewed by Darin Adler.
No new tests needed.
- platform/text/LocaleICU.cpp:
(WebCore::getFormatForSkeleton):
(WebCore::LocaleICU::monthFormat):
(WebCore::LocaleICU::shortMonthFormat):
- 10:58 AM Changeset in webkit [201972] by
-
- 4 edits in trunk/Source/WebCore
WinCairo build fix attempt.
- platform/network/NetworkStorageSession.cpp:
- platform/network/NetworkStorageSession.h:
- platform/network/NetworkStorageSessionStub.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::context):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession): Deleted.
(WebCore::defaultSession): Deleted.
(WebCore::NetworkStorageSession::defaultStorageSession): Deleted.
- 10:52 AM Changeset in webkit [201971] by
-
- 10 edits2 adds in trunk
Deleting a CSSOM style rule invalidates any previously-added FontFaces
https://bugs.webkit.org/show_bug.cgi?id=158450
Reviewed by Darin Adler.
Source/WebCore:
This patch has two pieces: updating the CSSOM when the FontFace changes, and
updating the FontFace when the CSSOM changes.
1: Updating the CSSOM when the FontFace changes: CSSFontFaces already have a RefPtr
to their StyleRuleFontFace which represents their CSS-connection. When changing a
property of the CSSFontFace, we simply reach into the StyleRule and update it to
match. Our existing infrastructure of invalidation due to the attribute changes
makes sure that all the necessary updates occur.
- Updating the FontFace when the CSSOM changes: If the CSSOM changes in a trivial
way (for example, a new @font-face is appended to the end of the last <style>
element), we can handle it directly. However, when something more invasive occurs,
we end up clearing the entire CSSFontSelector, and then adding all the style rules
from scratch. This involves three steps:
a) CSSFontSelector::buildStarted() is run, which means "we're about to start
building up all the @font-face rules from scratch." We take this opportunity
to purge as many fonts as possible. This is valuable because, for example,
this function gets run when the page gets put into the page cache, so we
want to destroy as much as possible. Not everything can be purged, however -
only CSS-connected fonts which have never been inspected by script are
purgeable. We don't allow fonts inspected by script to be purged because
purging might result in a font appearing from JavaScript to transition from
a success -> failure state, which we don't allow.
b) Upon style recalc (possibly asynchronously) CSSFontSelector::addFontFaceRule()
is called for each @font-face rule. We actually detect that we're in the
middle of a style rebuild, and defer this step.
c) When we're done adding all the font face rules, we call
CSSFontSelector::buildCompleted(). This is where we compare the newly built-
up list of font faces with what existed previously (as remembered in
CSSFontSelector::buildStarted()) in order to detect font faces which were
deleted from the document. Fonts which were newly added to the document
are handled naturally.
Fonts which have a property modified on them are created as if they were new.
However, instead of simply adding the CSSFontFace, we search for the existing
CSSFontFace (by CSS connection pointer) and tell the existing FontFace to
adopt this new CSSFontFace. This means that the JavaScript object will just
pick up any newly-written values in the CSSOM. It also means that the
"status" attribute of the JavaScript object is reset, but this is expected
and allowed by the spec. (For example, if you change the "src" attribute of
an @font-face block via the CSSOM, all bets are off when you inspect the
FontFace JS object representing that block.)
Test: fast/text/font-face-set-cssom.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::setFamilies):
(WebCore::CSSFontFace::setStyle):
(WebCore::CSSFontFace::setWeight):
(WebCore::CSSFontFace::setUnicodeRange):
(WebCore::CSSFontFace::setVariantLigatures):
(WebCore::CSSFontFace::setVariantPosition):
(WebCore::CSSFontFace::setVariantCaps):
(WebCore::CSSFontFace::setVariantNumeric):
(WebCore::CSSFontFace::setVariantAlternates):
(WebCore::CSSFontFace::setVariantEastAsian):
(WebCore::CSSFontFace::setFeatureSettings):
(WebCore::CSSFontFace::initializeWrapper):
(WebCore::CSSFontFace::wrapper):
(WebCore::CSSFontFace::setWrapper):
(WebCore::CSSFontFace::purgeable):
(WebCore::CSSFontFace::updateStyleIfNeeded):
- css/CSSFontFace.h:
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::containsCSSConnection):
(WebCore::CSSFontFaceSet::purge):
- css/CSSFontFaceSet.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):
- css/CSSFontSelector.h:
- css/FontFace.cpp:
(WebCore::FontFace::family):
(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::variant):
(WebCore::FontFace::featureSettings):
(WebCore::FontFace::adopt):
- css/FontFace.h:
LayoutTests:
- fast/text/font-face-set-cssom-expected.txt: Added.
- fast/text/font-face-set-cssom.html: Added.
- 10:44 AM Changeset in webkit [201970] by
-
- 17 edits4 copies in trunk
WorkerNavigator is missing some attributes
https://bugs.webkit.org/show_bug.cgi?id=158593
<rdar://problem/26731334>
Reviewed by Darin Adler.
Source/WebCore:
Add attributes that are missing on WorkerNavigator:
- appCodeName
- hardwareConcurrency
- language
- product
- productSub
- vendor
- vendorSub
Firefox and Chrome already expose those attributes.
Relevant specification:
https://html.spec.whatwg.org/multipage/workers.html#the-workernavigator-object
This patch also refactors the IDL to match the specification more
closely and promote sharing between Navigator and WorkerNavigator.
No new tests, updated existing test.
- CMakeLists.txt:
- DerivedSources.make:
Add new supplemental IDL files.
- page/Navigator.cpp:
- page/Navigator.h:
Moved language() / hardwareConcurrency() from Navigator to NavigatorBase
so that it can be used by NavigatorWorker as well.
- page/NavigatorBase.h:
- page/NavigatorBase.cpp:
(WebCore::NavigatorBase::language):
The implementation still calls defaultLanguage() but I updated it to be
thread safe on all platforms.
(WebCore::NavigatorBase::hardwareConcurrency):
Use std::call_once() for thread safety.
- page/Navigator.idl:
- page/NavigatorConcurrentHardware.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/NavigatorID.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/NavigatorLanguage.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/NavigatorOnLine.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/WorkerNavigator.idl:
Move several attributes to their own supplemental interfaces to match
the specification and promote sharing with WorkerNavigator.
- platform/Language.cpp:
(WebCore::userPreferredLanguages):
- platform/Language.h:
Made thread-safe on all platforms.
Source/WTF:
- wtf/PlatformUserPreferredLanguages.h:
- wtf/PlatformUserPreferredLanguagesWin.cpp:
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):
Make platformUserPreferredLanguages() thread safe on Windows. The
Mac and Unix implementations are already thread-safe.
LayoutTests:
Improved test coverage for WorkerNavigator.
- fast/workers/resources/worker-navigator.js:
- 4:46 AM Changeset in webkit [201969] by
-
- 5 edits in trunk/Source/bmalloc
Implement logging for RELEASE_BASSERT_WITH_MESSAGE() in BAssert.h
<http://webkit.org/b/155992>
Reviewed by Geoff Garen.
- bmalloc/BAssert.h:
(BLOG_ERROR): Add method to always log error messages.
(RELEASE_BASSERT_WITH_MESSAGE): Use BLOG_ERROR() to implement
logging in Debug builds.
- bmalloc/BPlatform.h:
(BPLATFORM_MAC): Add.
(BUSE): Add BUSE() macro.
(BATTRIBUTE_PRINTF): Add.
(BUSE_OS_LOG): Add.
- bmalloc/Logging.cpp:
(bmalloc::reportAssertionFailureWithMessage): Add. Logs to
stderr.
- bmalloc/Logging.h:
(bmalloc::reportAssertionFailureWithMessage): Add declaration.
- 4:20 AM Changeset in webkit [201968] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::switchToNewTestingSession):
- 4:09 AM Changeset in webkit [201967] by
-
- 10 edits1 add in trunk
Vary:Cookie validation doesn't work in private browsing
https://bugs.webkit.org/show_bug.cgi?id=158616
Source/WebCore:
rdar://problem/26755067
Reviewed by Darin Adler.
This wasn't implemented because there was no way to get NetworkStorageSession from
a SessionID on WebCore side.
The patch adds a simple WebCore level weak map that allows getting NetworkStorageSessions
from SessionID. This seemed like the cleanest way to do this without a big refactoring
around the currently WebKit2 level SessionTracker.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/network/CacheValidation.cpp:
(WebCore::headerValueForVary):
Get NetworkStorageSession from SessionID for cookies
(WebCore::verifyVaryingRequestHeaders):
- platform/network/NetworkStorageSession.cpp: Added.
Add platform independent .cpp for NetworkStorageSession.
Implement a weak map for SessionID -> NetworkStorageSession.
(WebCore::sessionsMap):
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession):
(WebCore::NetworkStorageSession::forSessionID):
Get NetworkStorageSession for sessionID.
- platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::sessionID):
(WebCore::NetworkStorageSession::credentialStorage):
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
Call to common constructor.
(WebCore::defaultNetworkStorageSession):
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
Call to common constructor.
(WebCore::defaultSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession): Deleted.
LayoutTests:
Reviewed by Darin Adler.
- http/tests/cache/disk-cache/disk-cache-vary-cookie-expected.txt:
- http/tests/cache/disk-cache/disk-cache-vary-cookie.html:
Exapand the existing test to cover memory cache and private browsing.