⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Dec 20, 2015:

8:23 PM Changeset in webkit [194326] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Don't allocate a NSImage and skip unneeded call to TIFFRepresentation when copying image to clipboard.
https://bugs.webkit.org/show_bug.cgi?id=152374

Patch by Jeremy Zerfas <WebKit@JeremyZerfas.com> on 2015-12-20
Reviewed by Darin Adler.

Source/WebCore:

When copying an image to the clipboard, don't bother allocating a
NSImage and skip the unneeded call to TIFFRepresentation since the data
from the previous getTIFFRepresentation call can be used instead. This
considerably reduces the amount of memory and CPU time used for large
images/animations.

Test: fast/images/image-copy-memory-usage.html

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

LayoutTests:

Added test to make sure that when copying a 50 frame 500x500 animation
(50 MB uncompressed) to the clipboard, the additional memory usage is
kept to less than 200 MB.

  • fast/images/image-copy-memory-usage-expected.txt: Added.
  • fast/images/image-copy-memory-usage.html: Added.
  • fast/images/resources/dot-moving-in-a-circle-animation.gif: Added.
6:54 PM Changeset in webkit [194325] by jh718.park@samsung.com
  • 7 edits
    1 copy in trunk/Source/WebKit2

[WK2][EFL] Use WebsiteDataStore instead of WebDatabaseManager which has been deleted in r194295
https://bugs.webkit.org/show_bug.cgi?id=152460

Reviewed by Gyuyoung Kim.

Use WebsiteDataStore to support EFL WebDatabase API and to fix build break.

  • PlatformEfl.cmake:
  • UIProcess/API/APIWebsiteDataStore.cpp:
  • UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp: Copied from Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp.

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::EwkContext):

  • UIProcess/API/efl/ewk_database_manager.cpp:

(EwkDatabaseManager::EwkDatabaseManager):
(EwkDatabaseManager::getDatabaseOrigins):

  • UIProcess/API/efl/ewk_database_manager_private.h:
  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):

6:10 PM Changeset in webkit [194324] by Gyuyoung Kim
  • 15 edits in trunk/Source/WebCore

Reduce PassRefPtr uses in dom - 2
https://bugs.webkit.org/show_bug.cgi?id=151936

Reviewed by Darin Adler.

Change PassRefPtr with RefPtr<Foo>&&, WTF::move(), Foo*, and Foo&.

  • dom/ScopedEventQueue.h:
  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::registerCallback):

  • dom/ScriptedAnimationController.h:
  • dom/StaticNodeList.h:
  • dom/Traversal.cpp:

(WebCore::NodeIteratorBase::NodeIteratorBase):

  • dom/Traversal.h:
  • dom/TreeWalker.cpp:

(WebCore::TreeWalker::TreeWalker):
(WebCore::TreeWalker::setCurrentNode):

  • dom/TreeWalker.h:

(WebCore::TreeWalker::create):

  • dom/UserActionElementSet.h:
  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::WebKitNamedFlow):
(WebCore::WebKitNamedFlow::create):
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):

  • dom/WebKitNamedFlow.h:
  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
(WebCore::WheelEvent::initWebKitWheelEvent):

  • dom/WheelEvent.h:
5:19 PM Changeset in webkit [194323] by Michael Catanzaro
  • 7 edits in trunk/Source

[SOUP] Performs DNS prefetch when a proxy is configured (information leak)
https://bugs.webkit.org/show_bug.cgi?id=145542

Reviewed by Darin Adler.

Source/WebCore:

Perform DNS prefetch only when no proxy is configured.

No new tests. Test this manually with Wireshark. Run the simple-proxy example program found
in libsoup's examples directory, set that as your system HTTP proxy, and see if DNS queries
show up in Wireshark when refreshing a page sent over HTTP. They should appear only when the
proxy is not configured.

  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::DNSResolveQueue):
(WebCore::DNSResolveQueue::isUsingProxy):

  • platform/network/DNSResolveQueue.h:
  • platform/network/cf/DNSCFNet.cpp:

(WebCore::DNSResolveQueue::updateIsUsingProxy):
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Deleted.

  • platform/network/soup/DNSSoup.cpp:

(WebCore::didResolveProxy):
(WebCore::proxyResolvedForHttpUriCallback):
(WebCore::proxyResolvedForHttpsUriCallback):
(WebCore::DNSResolveQueue::updateIsUsingProxy):
(WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences): Deleted.

Source/WTF:

Specialize GUniquePtr<char*>, using g_strfreev.

  • wtf/glib/GUniquePtr.h:
1:57 PM Changeset in webkit [194322] by mitz@apple.com
  • 26 edits in trunk/Source

Remove unused setToolbarHeight
https://bugs.webkit.org/show_bug.cgi?id=152466

Reviewed by Darin Adler.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::setToolbarHeight): Deleted.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:
  • testing/Internals.cpp:

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

  • UserInterface/Protocol/InspectorFrontendHostStub.js:

(window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight): Deleted.

Source/WebKit/ios:

  • WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::setToolbarHeight): Deleted.

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm::

(WebInspectorFrontendClient::setToolbarHeight): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorFrontendClient::setToolbarHeight): Deleted.

  • WebCoreSupport/WebInspectorClient.h:

Source/WebKit2:

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted.

  • UIProcess/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::setToolbarHeight): Deleted.

  • UIProcess/WebInspectorProxy.messages.in:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::setToolbarHeight): Deleted.

  • WebProcess/WebPage/WebInspectorUI.h:
12:08 PM Changeset in webkit [194321] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

German translation update
https://bugs.webkit.org/show_bug.cgi?id=152228

Unreviewed.

Patch by Bernd Homuth <dev@hmt.im> on 2015-12-20

  • de.po:
11:53 AM Changeset in webkit [194320] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Implement compareDouble in B3/Air
https://bugs.webkit.org/show_bug.cgi?id=150903

Reviewed by Benjamin Poulain.

A hole in our coverage is that we don't fuse a double comparison into a branch, then we will
crash in the instruction selector. Obviously, we *really* want to fuse double comparisons,
but we can't guarantee that this will always happen.

This also removes all uses of WTF::Dominators verification, since it's extremely slow even in
a release build. This speeds up testb3 with validateGraphAtEachPhase=true by an order of
magnitude.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::moveDoubleConditionallyFloat):
(JSC::MacroAssembler::compareDouble):
(JSC::MacroAssembler::compareFloat):
(JSC::MacroAssembler::lea):

  • b3/B3Dominators.h:

(JSC::B3::Dominators::Dominators):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createCompare):
(JSC::B3::Air::LowerToAir::lower):

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testCompare):
(JSC::B3::testEqualDouble):
(JSC::B3::simpleFunction):
(JSC::B3::run):

  • dfg/DFGDominators.h:

(JSC::DFG::Dominators::Dominators):

2:27 AM Changeset in webkit [194319] by commit-queue@webkit.org
  • 34 edits
    1 delete in trunk

Unreviewed, rolling out r194033 and r194267.
https://bugs.webkit.org/show_bug.cgi?id=152465

Caused crashes on Mac WK1 bots (Requested by youenn on
#webkit).

Reverted changesets:

"[Streams API] Expose ReadableStream and relatives to Worker"
https://bugs.webkit.org/show_bug.cgi?id=152066
http://trac.webkit.org/changeset/194033

"[Streams API] imported/w3c/web-platform-tests/streams-api
/readable-streams/cancel.html has a flaky test"
https://bugs.webkit.org/show_bug.cgi?id=152065
http://trac.webkit.org/changeset/194267

Dec 19, 2015:

10:27 PM Changeset in webkit [194318] by mitz@apple.com
  • 136 edits
    1 delete in trunk

[Mac] WebKit contains dead source code for OS X Mavericks and earlier
https://bugs.webkit.org/show_bug.cgi?id=152462

Reviewed by Alexey Proskuryakov.

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig: Removed definition of MACOSX_DEPLOYMENT_TARGET for OS X 10.9.

Source/JavaScriptCore:

  • Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions that became uniform across all OS X versions as a result:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • API/JSBase.h: Removed check against MAC_OS_X_VERSION_MIN_REQUIRED that was always true.

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig: Removed definitions of MACOSX_DEPLOYMENT_TARGET for OS X 10.8 and 10.9.

Source/WebCore:

  • Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions that became uniform across all OS X versions as a result:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • Removed support for animating default buttons:
  • rendering/RenderButton.cpp:

(WebCore::RenderButton::RenderButton): Removed m_default initialization.
(WebCore::RenderButton::styleDidChange): Removed checking for animating default button and

starting the animation timer.

(WebCore::RenderButton::timerFired): Deleted.

  • rendering/RenderButton.h: Removed m_timer and m_default member variables
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::defaultButtonHasAnimation): Deleted.

  • rendering/RenderThemeMac.h: Deleted override.
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::defaultButtonHasAnimation): Deleted.

  • Simplified expressions involving MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was never getting compiled:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
  • editing/mac/DictionaryLookup.h:
  • editing/mac/DictionaryLookup.mm:
  • html/canvas/WebGLDrawBuffers.cpp:
  • loader/DocumentLoader.cpp:
  • loader/cache/CachedFont.cpp:
  • loader/cocoa/DiskCacheMonitorCocoa.h:
  • page/cocoa/SettingsCocoa.mm:
  • platform/Scrollbar.cpp:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:
  • platform/cocoa/NetworkExtensionContentFilter.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/cg/ImageSourceCG.cpp:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:
  • platform/graphics/cocoa/FontCascadeCocoa.mm:
  • platform/graphics/mac/GraphicsContext3DMac.mm:
  • platform/mac/NSScrollerImpDetails.h:
  • platform/mac/ScrollAnimatorMac.mm:
  • platform/mac/ScrollViewMac.mm:
  • platform/mac/ScrollbarThemeMac.mm:
  • platform/mac/ThemeMac.mm:
  • platform/mac/WebCoreFullScreenPlaceholderView.h:
  • platform/mac/WebCoreFullScreenPlaceholderView.mm:
  • platform/network/cf/CookieJarCFNet.cpp:
  • platform/network/cf/ResourceRequest.h:
  • platform/spi/cf/CFNetworkSPI.h:
  • platform/spi/cocoa/CoreTextSPI.h:
  • platform/spi/cocoa/NSButtonCellSPI.h:
  • platform/spi/cocoa/NSColorSPI.h:
  • platform/spi/cocoa/QuartzCoreSPI.h:
  • platform/spi/mac/LookupSPI.h:
  • platform/spi/mac/NSFontSPI.h:
  • platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h:
  • platform/spi/mac/NSPopoverSPI.h:
  • platform/spi/mac/NSSharingServicePickerSPI.h:
  • platform/spi/mac/NSSharingServiceSPI.h:
  • platform/spi/mac/TUCallSPI.h:
  • platform/sql/SQLiteDatabase.cpp:

Source/WebInspectorUI:

  • Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions that became uniform across all OS X versions as a result:
  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Scripts/copy-user-interface-resources.pl: Removed code to delete Images/Legacy.
  • UserInterface/Images/Legacy: Removed this empty directory.

Source/WebKit/mac:

  • Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions that became uniform across all OS X versions as a result:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
  • Simplified expressions involving MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was never getting compiled:
  • WebCoreSupport/WebInspectorClient.mm:
  • WebView/WebDynamicScrollBarsView.mm:
  • WebView/WebHTMLView.mm:
  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:
  • WebView/WebView.mm:
  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:
  • WebView/WebViewInternal.h:

Source/WebKit2:

  • Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions that became uniform across all OS X versions as a result:
  • Configurations/BaseTarget.xcconfig:
  • Configurations/BaseXPCService.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Removed the definition of BUNDLE_LOCALIZATION_KEY:
  • Configurations/WebContentService.Development.xcconfig:
  • Configurations/WebContentService.xcconfig:
  • Added CFBundleFollowParentLocalization set to true:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
  • WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
  • WebKit2.xcodeproj/project.pbxproj: Removed the “Add CFBundle Localization Info.plist Key” script build phases from the Web Content Service targets.
  • Simplified expressions involving MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was never getting compiled:
  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Platform/IPC/mac/ConnectionMac.mm:
  • Platform/IPC/mac/ImportanceAssertion.h:
  • Platform/mac/MenuUtilities.h:
  • Platform/mac/MenuUtilities.mm:
  • Platform/mac/StringUtilities.h:
  • Platform/mac/StringUtilities.mm:
  • Shared/API/Cocoa/WKFoundation.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/mac/PageClientImpl.mm:
  • UIProcess/mac/WKImmediateActionController.h:
  • UIProcess/mac/WKImmediateActionController.mm:
  • UIProcess/mac/WebInspectorProxyMac.mm:
  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/com.apple.WebProcess.sb.in:
  • config.h:

Source/WTF:

  • Configurations/DebugRelease.xcconfig: Removed definition of MACOSX_DEPLOYMENT_TARGET for OS X 10.9.
  • Simplified expressions involving MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was never getting compiled:
  • wtf/FeatureDefines.h:
  • wtf/MainThread.h:
  • wtf/OSObjectPtr.h:
  • wtf/Platform.h:
  • wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
  • wtf/spi/darwin/XPCSPI.h:

Tools:

  • Removed definitions of MACOSX_DEPLOYMENT_TARGET and WEBKIT_SYSTEM_INTERFACE_LIBRARY for OS X 10.9:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • LayoutTestRelay/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • Simplified expressions involving MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was never getting compiled:
  • DumpRenderTree/mac/TextInputController.m:
  • MiniBrowser/mac/BrowserWindowController.m:
  • TestWebKitAPI/Tests/mac/AttributedString.mm:
  • WebKitTestRunner/mac/EventSenderProxy.mm:

WebKitLibraries:

  • libWebKitSystemInterfaceMavericks.a: Removed.
1:42 PM Changeset in webkit [194317] by Sukolsak Sakshuwong
  • 1 edit in trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

Make Intl headers private in Xcode

1:04 PM Changeset in webkit [194316] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Streamline Tmp indexing inside the register allocator
https://bugs.webkit.org/show_bug.cgi?id=152420

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-19
Reviewed by Filip Pizlo.

AirIteratedRegisterCoalescing has been accumulating a bit of mess over time.

When it started, every map addressed by Tmp was using Tmp hashing.
That caused massive performance problems. Everything perf sensitive was moved
to direct array addressing by the absolute Tmp index. This left the code
with half of the function using Tmp, the other half using indices.

With this patch, almost everything is moved to absolute indexing.
There are a few advantages to this:
-No more conversion churn for Floating Point registers.
-Most of the functions can now be shared between GP and FP.
-A bit of clean up since the core algorithm only deals with integers now.

This patch also changes the index type to be a template argument.
That will allow future specialization of "m_interferenceEdges" based
on the expected problem size.

Finally, the code related to the program modification (register assignment
and spilling) was moved to the wrapper "IteratedRegisterCoalescing".

The current split is:
-AbstractColoringAllocator: common core. Share as much as possible between

GP and FP.

-ColoringAllocator: the remaining parts of the algorithm, everything that

is specific to GP, FP.

-IteratedRegisterCoalescing: the "iterated" part of the algorithm.

Try to allocate and modify the code as needed.

The long term plan is:
-Move selectSpill() and the coloring loop to AbstractColoringAllocator.
-Specialize m_interferenceEdges to make it faster.

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/air/AirTmpInlines.h:

(JSC::B3::Air::AbsoluteTmpMapper<Arg::GP>::lastMachineRegisterIndex):
(JSC::B3::Air::AbsoluteTmpMapper<Arg::FP>::lastMachineRegisterIndex):

11:01 AM Changeset in webkit [194315] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] FTLB3Output generates some invalid ZExt32
https://bugs.webkit.org/show_bug.cgi?id=151905

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-19
Reviewed by Filip Pizlo.

FTLLowerDFGToLLVM calls zeroExt() to int32 in some cases.
We were generating ZExt32 with Int32 as return type :(

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::zeroExt):

8:52 AM Changeset in webkit [194314] by commit-queue@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Add EqualOrUnordered to B3
https://bugs.webkit.org/show_bug.cgi?id=152425

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-19
Reviewed by Mark Lam.

Add EqualOrUnordered to B3 and use it to implements
FTL::Output's NotEqualAndOrdered.

  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::equalOrUnordered):

  • b3/B3ConstDoubleValue.h:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3ReduceDoubleToFloat.cpp:

(JSC::B3::reduceDoubleToFloat):

  • b3/B3ReduceStrength.cpp:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::equalOrUnordered):
(JSC::B3::Value::returnsBool):
(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/testb3.cpp:

(JSC::B3::testBranchEqualOrUnorderedArgs):
(JSC::B3::testBranchNotEqualAndOrderedArgs):
(JSC::B3::testBranchEqualOrUnorderedDoubleArgImm):
(JSC::B3::testBranchEqualOrUnorderedFloatArgImm):
(JSC::B3::testBranchEqualOrUnorderedDoubleImms):
(JSC::B3::testBranchEqualOrUnorderedFloatImms):
(JSC::B3::testBranchEqualOrUnorderedFloatWithUselessDoubleConversion):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleNotEqualAndOrdered):
(JSC::FTL::Output::doubleNotEqual): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::boolify):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::doubleNotEqualAndOrdered):
(JSC::FTL::Output::doubleNotEqual): Deleted.

5:26 AM Changeset in webkit [194313] by Antti Koivisto
  • 17 edits
    2 adds in trunk

Cache redirects as separate entries
https://bugs.webkit.org/show_bug.cgi?id=152424

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/cache/disk-cache/disk-cache-redirect.html

  • platform/network/ResourceRequestBase.h:

Source/WebKit2:

We are currently caching redirect chains. This has correctness issues and can be inefficient in cases
where multiple URLs redirect to the same destination.

After this patch we write a cache entry for each redirect individually.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):

  • NetworkProcess/NetworkLoad.h:

(WebKit::NetworkLoad::currentRequest):
(WebKit::NetworkLoad::clearCurrentRequest):

  • NetworkProcess/NetworkLoadClient.h:

Add original request as a parameter for willSendRedirectedRequest.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::~NetworkResourceLoader):
(WebKit::NetworkResourceLoader::canUseCache):

Factor to a function.

(WebKit::NetworkResourceLoader::isSynchronous):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):

Factor to a function.
Call dispatchWillSendRequestForCacheEntry for cached redirects.

(WebKit::NetworkResourceLoader::startNetworkLoad):

Make this take request as argument instead of always loading originalRequest().

(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didFinishLoading):

Remove redirect chain code.
Store cache entry for current request instead of the original request.

(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):

Write cache entry for redirect.

(WebKit::NetworkResourceLoader::continueWillSendRequest):

If we are playing back cached redirect continue with another cache lookup.

(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

No need to synthesize fake willSendRequest anymore.

(WebKit::NetworkResourceLoader::validateCacheEntry):
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):

Route via web process willSendRequest so cached redirects looks exactly like network ones.

(WebKit::NetworkResourceLoader::messageSenderConnection):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeUseDecision):

Ignore validation headers for cached redirects.

(WebKit::NetworkCache::makeRetrieveDecision):
(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):

Rename originalRequest -> request since it is not really the original request anymore in all cases.

(WebKit::NetworkCache::Cache::storeRedirect):

Stored redirects include the network layer generated ResourceRequest instead of body data.

(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):

New constructor for making redirect entries.

(WebKit::NetworkCache::Entry::encodeAsStorageRecord):
(WebKit::NetworkCache::Entry::decodeStorageRecord):

Encoding support.

  • NetworkProcess/cache/NetworkCacheEntry.h:

(WebKit::NetworkCache::Entry::varyingRequestHeaders):
(WebKit::NetworkCache::Entry::redirectRequest):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cache/NetworkCacheStatistics.cpp:

(WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey):

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-redirect-expected.txt: Added.
  • http/tests/cache/disk-cache/disk-cache-redirect.html: Added.
  • http/tests/cache/disk-cache/resources/generate-response.cgi:
1:01 AM Changeset in webkit [194312] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] B3: Add indexed addressing when lowering BitwiseCast
https://bugs.webkit.org/show_bug.cgi?id=152432

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-12-19
Reviewed by Geoffrey Garen.

The MacroAssembler supports it, we should use it.

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testBitwiseCastOnDoubleInMemoryIndexed):
(JSC::B3::testBitwiseCastOnInt64InMemoryIndexed):

Note: See TracTimeline for information about the timeline view.