[webkit-changes] [198827] trunk
Title: [198827] trunk Revision 198827 Author commit-qu...@webkit.org Date 2016-03-29 22:13:04 -0700 (Tue, 29 Mar 2016) Log Message [WTF] Removing a smart pointer from HashTable issues two stores to the same location https://bugs.webkit.org/show_bug.cgi?id=155676 Patch by Benjamin Poulainon 2016-03-29 Reviewed by Darin Adler. Source/WTF: While working on the hot loop of r198376, I noticed something weird... Every time we removed a smart pointer from the hash table, the code generated was something like: Load([bucket]) -> Tmp Store(0 -> [bucket]) JumpIfZero(Tmp, ->End) Call fastFree() Store(-1 -> [bucket]) -> End: The useless store before the branch is annoying, especially on ARM. Here is what happens: 1) The destructor of the smart pointer swaps its internal value with nullptr. 2) Since the smart pointer is not a local in-register value, that nullptr is stored in memory because it could be observable from fastFree(). 3) The destructor destroy the value if not zero (or deref for RefPtr). The "if-not-zero" may or may not be eliminated depending on what is between getting the iterator and the call to remove(). 4) fastFree() is called. 5) The deleted value is set in the bucket. This patch adds custom deletion for those cases to avoid the useless store. The useless null check is still eliminated when we are lucky. I went this path instead of changing the destructor of RefPtr for two reasons: -I need this to work in unique_ptr for JSC. -Nulling the memory may have security advantages in the cases where we do not immediately write over that memory again. This patch removes 13kb out of x86_64 WebCore. * wtf/HashTable.h: (WTF::HashTable::deleteBucket): (WTF::KeyTraits>::removeIf): * wtf/HashTraits.h: (WTF::HashTraits ::customDeleteBucket): (WTF::hashTraitsDeleteBucket): (WTF::KeyValuePairHashTraits::customDeleteBucket): * wtf/text/AtomicStringHash.h: (WTF::HashTraits::isEmptyValue): (WTF::HashTraits::customDeleteBucket): * wtf/text/StringHash.h: (WTF::HashTraits::customDeleteBucket): Tools: * TestWebKitAPI/Tests/WTF/HashMap.cpp: * TestWebKitAPI/Tests/WTF/HashSet.cpp: Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/HashTable.h trunk/Source/WTF/wtf/HashTraits.h trunk/Source/WTF/wtf/text/AtomicStringHash.h trunk/Source/WTF/wtf/text/StringHash.h trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp trunk/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp Diff Modified: trunk/Source/WTF/ChangeLog (198826 => 198827) --- trunk/Source/WTF/ChangeLog 2016-03-30 04:16:48 UTC (rev 198826) +++ trunk/Source/WTF/ChangeLog 2016-03-30 05:13:04 UTC (rev 198827) @@ -1,3 +1,56 @@ +2016-03-29 Benjamin Poulain + +[WTF] Removing a smart pointer from HashTable issues two stores to the same location +https://bugs.webkit.org/show_bug.cgi?id=155676 + +Reviewed by Darin Adler. + +While working on the hot loop of r198376, I noticed something +weird... +Every time we removed a smart pointer from the hash table, +the code generated was something like: +Load([bucket]) -> Tmp +Store(0 -> [bucket]) +JumpIfZero(Tmp, ->End) +Call fastFree() +Store(-1 -> [bucket]) +-> End: + +The useless store before the branch is annoying, especially on ARM. + +Here is what happens: +1) The destructor of the smart pointer swaps its internal value with nullptr. +2) Since the smart pointer is not a local in-register value, that nullptr + is stored in memory because it could be observable from fastFree(). +3) The destructor destroy the value if not zero (or deref for RefPtr). + The "if-not-zero" may or may not be eliminated depending on what + is between getting the iterator and the call to remove(). +4) fastFree() is called. +5) The deleted value is set in the bucket. + +This patch adds custom deletion for those cases to avoid the useless +store. The useless null check is still eliminated when we are lucky. + +I went this path instead of changing the destructor of RefPtr for two reasons: +-I need this to work in unique_ptr for JSC. +-Nulling the memory may have security advantages in the cases where we do not immediately + write over that memory again. + +This patch removes 13kb out of x86_64 WebCore. + +* wtf/HashTable.h: +(WTF::HashTable::deleteBucket): +(WTF::KeyTraits>::removeIf): +* wtf/HashTraits.h: +(WTF::HashTraits ::customDeleteBucket): +(WTF::hashTraitsDeleteBucket): +(WTF::KeyValuePairHashTraits::customDeleteBucket): +* wtf/text/AtomicStringHash.h: +(WTF::HashTraits::isEmptyValue): +
[webkit-changes] [198826] trunk/Websites/perf.webkit.org
Title: [198826] trunk/Websites/perf.webkit.org Revision 198826 Author rn...@webkit.org Date 2016-03-29 21:16:48 -0700 (Tue, 29 Mar 2016) Log Message Make dependency injection in unit tests more explicit https://bugs.webkit.org/show_bug.cgi?id=156006 Reviewed by Joseph Pecoraro. Make the dependency injection of model objects in unit tests explicit so that server tests that create "real" model objects won't create these mock objects. Now each test that uses mock model objects would call MockModels.inject() to inject before / beforeEach and access each object using a property on MockModels instead of them being implicitly defined on the global object. Similarly, MockRemoteAPI now only replaces global.RemoteAPI during each test so that server tests can use real RemoteAPI to access the test Apache server. * unit-tests/analysis-task-tests.js: * unit-tests/buildbot-syncer-tests.js: (createSampleBuildRequest): * unit-tests/measurement-adaptor-tests.js: * unit-tests/measurement-set-tests.js: * unit-tests/resources/mock-remote-api.js: (MockRemoteAPI.getJSONWithStatus): (MockRemoteAPI.inject): Added. Override RemoteAPI on the global object during each test. * unit-tests/resources/mock-v3-models.js: (MockModels.inject): Added. Create mock model objects before each test, and clear all static maps of various v3 model classes (to remove all singleton objects for those model classes). * unit-tests/test-groups-tests.js: Modified Paths trunk/Websites/perf.webkit.org/ChangeLog trunk/Websites/perf.webkit.org/unit-tests/analysis-task-tests.js trunk/Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js trunk/Websites/perf.webkit.org/unit-tests/measurement-adaptor-tests.js trunk/Websites/perf.webkit.org/unit-tests/measurement-set-tests.js trunk/Websites/perf.webkit.org/unit-tests/resources/mock-remote-api.js trunk/Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js trunk/Websites/perf.webkit.org/unit-tests/test-groups-tests.js Diff Modified: trunk/Websites/perf.webkit.org/ChangeLog (198825 => 198826) --- trunk/Websites/perf.webkit.org/ChangeLog 2016-03-30 03:34:15 UTC (rev 198825) +++ trunk/Websites/perf.webkit.org/ChangeLog 2016-03-30 04:16:48 UTC (rev 198826) @@ -1,5 +1,33 @@ 2016-03-29 Ryosuke Niwa+Make dependency injection in unit tests more explicit +https://bugs.webkit.org/show_bug.cgi?id=156006 + +Reviewed by Joseph Pecoraro. + +Make the dependency injection of model objects in unit tests explicit so that server tests that create +"real" model objects won't create these mock objects. Now each test that uses mock model objects would call +MockModels.inject() to inject before / beforeEach and access each object using a property on MockModels +instead of them being implicitly defined on the global object. + +Similarly, MockRemoteAPI now only replaces global.RemoteAPI during each test so that server tests can use +real RemoteAPI to access the test Apache server. + +* unit-tests/analysis-task-tests.js: +* unit-tests/buildbot-syncer-tests.js: +(createSampleBuildRequest): +* unit-tests/measurement-adaptor-tests.js: +* unit-tests/measurement-set-tests.js: +* unit-tests/resources/mock-remote-api.js: +(MockRemoteAPI.getJSONWithStatus): +(MockRemoteAPI.inject): Added. Override RemoteAPI on the global object during each test. +* unit-tests/resources/mock-v3-models.js: +(MockModels.inject): Added. Create mock model objects before each test, and clear all static maps of +various v3 model classes (to remove all singleton objects for those model classes). +* unit-tests/test-groups-tests.js: + +2016-03-29 Ryosuke Niwa + BuildbotSyncer should be able to fetch JSON from buildbot https://bugs.webkit.org/show_bug.cgi?id=155921 Modified: trunk/Websites/perf.webkit.org/unit-tests/analysis-task-tests.js (198825 => 198826) --- trunk/Websites/perf.webkit.org/unit-tests/analysis-task-tests.js 2016-03-30 03:34:15 UTC (rev 198825) +++ trunk/Websites/perf.webkit.org/unit-tests/analysis-task-tests.js 2016-03-30 04:16:48 UTC (rev 198826) @@ -3,8 +3,8 @@ var assert = require('assert'); require('../tools/js/v3-models.js'); -require('./resources/mock-v3-models.js'); -require('./resources/mock-remote-api.js'); +let MockModels = require('./resources/mock-v3-models.js').MockModels; +let MockRemoteAPI = require('./resources/mock-remote-api.js').MockRemoteAPI; function sampleAnalysisTask() { @@ -117,6 +117,9 @@ } describe('AnalysisTask', function () { +MockModels.inject(); +let requests = MockRemoteAPI.inject(); + describe('fetchAll', function () { it('should request all analysis tasks', function () { var callCount = 0; @@ -167,8 +170,8 @@ assert.equal(AnalysisTask.all().length, 1); var task =
[webkit-changes] [198825] trunk/Websites/webkit.org/wp-content
Title: [198825] trunk/Websites/webkit.org/wp-content Revision 198825 Author j...@apple.com Date 2016-03-29 20:34:15 -0700 (Tue, 29 Mar 2016) Log Message Unreviewed fixes for search errors on WebKit Nightly Archives page; fixed date display on WebKit Nightly page https://bugs.webkit.org/show_bug.cgi?id=155989 * wp-content/plugins/sync-nightly-builds.php: * wp-content/themes/webkit/nightly.php: * wp-content/themes/webkit/scripts/searchbuilds.js: (initsearch.displayError): Modified Paths trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php trunk/Websites/webkit.org/wp-content/themes/webkit/nightly.php trunk/Websites/webkit.org/wp-content/themes/webkit/scripts/searchbuilds.js Diff Modified: trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php (198824 => 198825) --- trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 03:16:29 UTC (rev 198824) +++ trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 03:34:15 UTC (rev 198825) @@ -34,6 +34,7 @@ $this->uploads_dir = trailingslashit($upload_dir_info['basedir']); add_action('update_webkit_nightly_builds', array($this, 'sync')); +add_action('wp_ajax_nopriv_search_nightly_builds', array($this, 'search')); add_action('wp_ajax_search_nightly_builds', array($this, 'search')); register_activation_hook(__FILE__, function () { Modified: trunk/Websites/webkit.org/wp-content/themes/webkit/nightly.php (198824 => 198825) --- trunk/Websites/webkit.org/wp-content/themes/webkit/nightly.php 2016-03-30 03:16:29 UTC (rev 198824) +++ trunk/Websites/webkit.org/wp-content/themes/webkit/nightly.php 2016-03-30 03:34:15 UTC (rev 198825) @@ -4,22 +4,15 @@ **/ add_filter('the_content', function ($content) { - + $build = get_nightly_build(); $source = get_nightly_source(); - -$content = sprintf($content, - -$build[0], -date(get_option( 'date_format' ), $build[1]), -$build[2], - -$source[0], -date(get_option( 'date_format' ), $source[1]), -$source[2] - + +$content = sprintf($content, +$build[0], $build[1], $build[2], +$source[0], $source[1], $source[2] ); - + return $content; }); @@ -80,6 +73,8 @@ #nightly a.download { color: #ff; font-size: 3rem; +background: none; +padding-right: 0; } .page-template-nightly hr { @@ -91,17 +86,17 @@ } - + - " rel="bookmark" title="Permanent Link: "> - - - - - +" rel="bookmark" title="Permanent Link: "> + + + + + - + \ No newline at end of file Modified: trunk/Websites/webkit.org/wp-content/themes/webkit/scripts/searchbuilds.js (198824 => 198825) --- trunk/Websites/webkit.org/wp-content/themes/webkit/scripts/searchbuilds.js 2016-03-30 03:16:29 UTC (rev 198824) +++ trunk/Websites/webkit.org/wp-content/themes/webkit/scripts/searchbuilds.js 2016-03-30 03:34:15 UTC (rev 198825) @@ -85,7 +85,7 @@ function displayError(message) { var note = document.createElement('div'); -if ( message === undefined ) +if ( typeof message !== 'string' ) message = 'A communication error occured preventing any results from being returned by the server.'; note.classList.add('note'); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198824] trunk/Websites/perf.webkit.org
Title: [198824] trunk/Websites/perf.webkit.org Revision 198824 Author rn...@webkit.org Date 2016-03-29 20:16:29 -0700 (Tue, 29 Mar 2016) Log Message BuildbotSyncer should be able to fetch JSON from buildbot https://bugs.webkit.org/show_bug.cgi?id=155921 Reviewed by Joseph Pecoraro. Added BuildbotSyncer.pullBuildbot which fetches pending, in-progress, and finished builds from buildbot with lots of unit tests as this has historically been a source of subtle bugs in the old script. New implementation fixes a subtle bug in the old pythons script which overlooked the possibility that the state of some builds may change between each HTTP request. In the old script, we fetched the list of the pending builds, and requested -1, -2, etc... builds for N times. But between each request, a pending build may start running or an in-progress build finish and shift the offset by one. The new script avoids this problem by first requesting all pending builds, then all in-progress and finished builds in a single HTTP request. The results are then merged so that entries for in-progress and finished builds would override the entries for pending builds if they overlap. Also renamed RemoteAPI.fetchJSON to RemoteAPI.getJSON to match v3 UI's RemoteAPI. This change makes the class interchangeable between frontend (public/v3/remote.js) and backend (tools/js/remote.js). * server-tests/api-build-requests-tests.js: * server-tests/api-manifest.js: * tools/js/buildbot-syncer.js: (BuildbotBuildEntry): Removed the unused argument "type". Store the syncer as an instance variable as we'd need to query for the buildbot URL. Also fixed a bug that _isInProgress was true for finished builds as 'currentStep' is always defined but null in those builds. (BuildbotBuildEntry.prototype.buildNumber): Added. (BuildbotBuildEntry.prototype.isPending): Added. (BuildbotBuildEntry.prototype.hasFinished): Added. (BuildbotSyncer.prototype.pullBuildbot): Added. Fetches pending builds first and then finished builds. (BuildbotSyncer.prototype._pullRecentBuilds): Added. Fetches in-progress and finished builds. (BuildbotSyncer.prototype.urlForPendingBuildsJSON): Added. (BuildbotSyncer.prototype.urlForBuildJSON): Added. (BuildbotSyncer.prototype.url): Added. (BuildbotSyncer.prototype.urlForBuildNumber): Added. * tools/js/remote.js: (RemoteAPI.prototype.getJSON): Renamed from fetchJSON. (RemoteAPI.prototype.getJSONWithStatus): Renamed from fetchJSONWithStatus. * tools/js/v3-models.js: Load tools/js/remote.js instead of public/v3/remote.js inside node. * unit-tests/buildbot-syncer-tests.js: Added a lot of unit tests for BuildbotSyncer.pullBuildbot (samplePendingBuild): (sampleInProgressBuild): Added. (sampleFinishedBuild): Added. * unit-tests/resources/mock-remote-api.js: (global.RemoteAPI.getJSON): Use the same mock as getJSONWithStatus. Modified Paths trunk/Websites/perf.webkit.org/ChangeLog trunk/Websites/perf.webkit.org/server-tests/api-build-requests-tests.js trunk/Websites/perf.webkit.org/server-tests/api-manifest.js trunk/Websites/perf.webkit.org/tools/js/buildbot-syncer.js trunk/Websites/perf.webkit.org/tools/js/remote.js trunk/Websites/perf.webkit.org/tools/js/v3-models.js trunk/Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js trunk/Websites/perf.webkit.org/unit-tests/resources/mock-remote-api.js Diff Modified: trunk/Websites/perf.webkit.org/ChangeLog (198823 => 198824) --- trunk/Websites/perf.webkit.org/ChangeLog 2016-03-30 02:50:12 UTC (rev 198823) +++ trunk/Websites/perf.webkit.org/ChangeLog 2016-03-30 03:16:29 UTC (rev 198824) @@ -1,3 +1,50 @@ +2016-03-29 Ryosuke Niwa+ +BuildbotSyncer should be able to fetch JSON from buildbot +https://bugs.webkit.org/show_bug.cgi?id=155921 + +Reviewed by Joseph Pecoraro. + +Added BuildbotSyncer.pullBuildbot which fetches pending, in-progress, and finished builds from buildbot +with lots of unit tests as this has historically been a source of subtle bugs in the old script. + +New implementation fixes a subtle bug in the old pythons script which overlooked the possibility that +the state of some builds may change between each HTTP request. In the old script, we fetched the list +of the pending builds, and requested -1, -2, etc... builds for N times. But between each request, +a pending build may start running or an in-progress build finish and shift the offset by one. The new +script avoids this problem by first requesting all pending builds, then all in-progress and finished +builds in a single HTTP request. The results are then merged so that entries for in-progress and +finished builds would override the entries for pending builds if they overlap. + +Also renamed RemoteAPI.fetchJSON to RemoteAPI.getJSON to match v3 UI's RemoteAPI. This change makes +the class interchangeable between frontend (public/v3/remote.js) and backend (tools/js/remote.js). + +
[webkit-changes] [198823] trunk/Source/WebKit2
Title: [198823] trunk/Source/WebKit2 Revision 198823 Author ddkil...@apple.com Date 2016-03-29 19:50:12 -0700 (Tue, 29 Mar 2016) Log Message REGRESSION: Yosemite-only: com.apple.WebKit.Plugin.32.Development crashed in PluginProcessShim.dylib: WebKit::shimMachVMMap + 26 Reviewed by Joseph Pecoraro. * PluginProcess/mac/PluginProcessShim.mm: (WebKit::shimMachVMMap): Add SUPPRESS_ASAN attribute on Yosemite. Modified Paths trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/PluginProcess/mac/PluginProcessShim.mm Diff Modified: trunk/Source/WebKit2/ChangeLog (198822 => 198823) --- trunk/Source/WebKit2/ChangeLog 2016-03-30 02:36:36 UTC (rev 198822) +++ trunk/Source/WebKit2/ChangeLog 2016-03-30 02:50:12 UTC (rev 198823) @@ -1,3 +1,15 @@ +2016-03-29 David Kilzer+ +REGRESSION: Yosemite-only: com.apple.WebKit.Plugin.32.Development crashed in PluginProcessShim.dylib: WebKit::shimMachVMMap + 26 + + + +Reviewed by Joseph Pecoraro. + +* PluginProcess/mac/PluginProcessShim.mm: +(WebKit::shimMachVMMap): Add SUPPRESS_ASAN attribute on +Yosemite. + 2016-03-28 Enrica Casucci When moving focus from one select element to another (iPhone) the value is committed to the newly focused element. Modified: trunk/Source/WebKit2/PluginProcess/mac/PluginProcessShim.mm (198822 => 198823) --- trunk/Source/WebKit2/PluginProcess/mac/PluginProcessShim.mm 2016-03-30 02:36:36 UTC (rev 198822) +++ trunk/Source/WebKit2/PluginProcess/mac/PluginProcessShim.mm 2016-03-30 02:50:12 UTC (rev 198823) @@ -38,6 +38,7 @@ #import #import #import +#import #import namespace WebKit { @@ -111,6 +112,9 @@ return LSOpenCFURLRef(url, launchedURL); } +#if __MAC_OS_X_VERSION_MIN_REQUIRED < 101100 +SUPPRESS_ASAN +#endif static kern_return_t shimMachVMMap(vm_map_t task, mach_vm_address_t *address, mach_vm_size_t size, mach_vm_offset_t mask, int flags, mem_entry_name_port_t object, memory_object_offset_t offset, boolean_t copy, vm_prot_t currentProtection, vm_prot_t maxProtection, vm_inherit_t inheritance) { if (task == mach_task_self()) { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198822] trunk/Websites/webkit.org
Title: [198822] trunk/Websites/webkit.org Revision 198822 Author j...@apple.com Date 2016-03-29 19:36:36 -0700 (Tue, 29 Mar 2016) Log Message Fixed a property access error by removing the lamda function for updates Modified Paths trunk/Websites/webkit.org/ChangeLog trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php Diff Modified: trunk/Websites/webkit.org/ChangeLog (198821 => 198822) --- trunk/Websites/webkit.org/ChangeLog 2016-03-30 02:22:47 UTC (rev 198821) +++ trunk/Websites/webkit.org/ChangeLog 2016-03-30 02:36:36 UTC (rev 198822) @@ -1,5 +1,12 @@ 2016-03-29 Jon Davis+Fixed a property access error by removing the lamda function for updates +https://bugs.webkit.org/show_bug.cgi?id=155989 + +* wp-content/plugins/sync-nightly-builds.php: + +2016-03-29 Jon Davis + Fixed a context error for Nightly Build sync plugin, tightens layout styles for abovetitle https://bugs.webkit.org/show_bug.cgi?id=155989 Modified: trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php (198821 => 198822) --- trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 02:22:47 UTC (rev 198821) +++ trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 02:36:36 UTC (rev 198822) @@ -33,28 +33,26 @@ $upload_dir_info = wp_upload_dir(); $this->uploads_dir = trailingslashit($upload_dir_info['basedir']); -add_action('update_webkit_nightly_builds', function () { -$SyncBuild = SyncWebKitNightlyBuilds::object(); -foreach ($SyncBuild->archives as $endpoint => $filename) { -// Download a copy of the archives -$url = "" $endpoint); +add_action('update_webkit_nightly_builds', array($this, 'sync')); +add_action('wp_ajax_search_nightly_builds', array($this, 'search')); -if (!copy($url, $SyncBuild->uploads_dir. $filename)) { -error_log("Couldn't download the $filename archive index. ({$errors['type']}) {$errors['message']}"); -} -} -}); - register_activation_hook(__FILE__, function () { if (!wp_next_scheduled('update_webkit_nightly_builds')) wp_schedule_event(current_time('timestamp'), 'hourly', 'update_webkit_nightly_builds'); do_action('update_webkit_nightly_builds'); }); +} +public function sync() { +foreach ($this->archives as $endpoint => $filename) { +// Download a copy of the archives +$url = "" $endpoint); -add_action('wp_ajax_search_nightly_builds', array($this, 'search')); - +if (!copy($url, $this->uploads_dir. $filename)) { +error_log("Couldn't download the $filename archive index. ({$errors['type']}) {$errors['message']}"); +} +} } public function latest($archive = 'builds') { ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198821] trunk/Source/bmalloc
Title: [198821] trunk/Source/bmalloc Revision 198821 Author gga...@apple.com Date 2016-03-29 19:22:47 -0700 (Tue, 29 Mar 2016) Log Message bmalloc: page size should be configurable at runtime https://bugs.webkit.org/show_bug.cgi?id=155993 Reviewed by Andreas Kling. This is a memory win on 32bit iOS devices, since their page sizes are 4kB and not 16kB. It's also a step toward supporting 64bit iOS devices that have a 16kB/4kB virtual/physical page size split. * bmalloc/Chunk.h: Align to largeAlignment since 2 * smallMax isn't required by the boundary tag allocator. (bmalloc::Chunk::page): Account for the slide when accessing a page. Each SmallPage hashes 4kB of memory. When we want to allocate a region of memory larger than 4kB, we store our metadata in the first SmallPage in the region and we assign a slide to the remaining SmallPages, so they forward to that first SmallPage when accessed. NOTE: We could use a less flexible technique that just hashed by vmPageSize() instead of 4kB at runtime, with no slide, but I think we'll be able to use this slide technique to make even more page sizes dynamically at runtime, which should save some memory and simplify the allocator. (bmalloc::SmallPage::begin): It's invalid to access a SmallPage with a slide, since such SmallPages do not contain meaningful data. (bmalloc::SmallPage::end): Account for smallPageCount when computing the size of a page. (bmalloc::Chunk::pageBegin): Deleted. (bmalloc::Chunk::pageEnd): Deleted. (bmalloc::Object::pageBegin): Deleted. * bmalloc/Heap.cpp: (bmalloc::Heap::Heap): Cache vmPageSize because computing it might require a syscall. (bmalloc::Heap::initializeLineMetadata): Line metadata is a vector instead of a 2D array because we don't know how much metadata we'll need until we know the page size. (bmalloc::Heap::scavengeSmallPage): Be sure to revert the slide when deallocating a page. Otherwise, the next attempt to allocate the page will slide when initializing it, sliding to nowhere. (bmalloc::Heap::allocateSmallBumpRanges): Account for vector change to line metadata. (bmalloc::Heap::allocateSmallPage): Initialize slide and smallPageCount since they aren't constant anymore. (bmalloc::Heap::allocateLarge): (bmalloc::Heap::splitAndAllocate): (bmalloc::Heap::tryAllocateXLarge): (bmalloc::Heap::shrinkXLarge): Adopt dynamic page size. * bmalloc/Heap.h: * bmalloc/Sizes.h: smallPageSize is no longer equal to the VM page size -- it's just the smallest VM page size we're interested in supporting. * bmalloc/SmallPage.h: (bmalloc::SmallPage::slide): (bmalloc::SmallPage::setSlide): (bmalloc::SmallPage::smallPageCount): (bmalloc::SmallPage::setSmallPageCount): (bmalloc::SmallPage::ref): (bmalloc::SmallPage::deref): Support slide and small page count as dynamic values. This doesn't increase metadata size since sizeof(SmallPage) rounds up to alignment anyway. * bmalloc/VMAllocate.h: (bmalloc::vmPageSize): (bmalloc::vmPageShift): (bmalloc::vmSize): (bmalloc::vmValidate): (bmalloc::tryVMAllocate): (bmalloc::vmDeallocatePhysicalPagesSloppy): (bmalloc::vmAllocatePhysicalPagesSloppy): Treat page size as a variable. * bmalloc/Vector.h: (bmalloc::Vector::initialCapacity): (bmalloc::Vector::insert): (bmalloc::Vector::grow): (bmalloc::Vector::shrink): (bmalloc::Vector::shrinkCapacity): (bmalloc::Vector::growCapacity): Treat page size as a variable. Modified Paths trunk/Source/bmalloc/ChangeLog trunk/Source/bmalloc/bmalloc/Chunk.h trunk/Source/bmalloc/bmalloc/Heap.cpp trunk/Source/bmalloc/bmalloc/Heap.h trunk/Source/bmalloc/bmalloc/Sizes.h trunk/Source/bmalloc/bmalloc/SmallPage.h trunk/Source/bmalloc/bmalloc/VMAllocate.h trunk/Source/bmalloc/bmalloc/Vector.h Diff Modified: trunk/Source/bmalloc/ChangeLog (198820 => 198821) --- trunk/Source/bmalloc/ChangeLog 2016-03-30 02:18:56 UTC (rev 198820) +++ trunk/Source/bmalloc/ChangeLog 2016-03-30 02:22:47 UTC (rev 198821) @@ -1,3 +1,96 @@ +2016-03-29 Geoffrey Garen+ +bmalloc: page size should be configurable at runtime +https://bugs.webkit.org/show_bug.cgi?id=155993 + +Reviewed by Andreas Kling. + +This is a memory win on 32bit iOS devices, since their page sizes are +4kB and not 16kB. + +It's also a step toward supporting 64bit iOS devices that have a +16kB/4kB virtual/physical page size split. + +* bmalloc/Chunk.h: Align to largeAlignment since 2 * smallMax isn't +required by the boundary tag allocator. + +(bmalloc::Chunk::page): Account for the slide when accessing a page. +Each SmallPage hashes 4kB of memory. When we want to allocate a region +of memory larger than 4kB, we store our metadata in the first SmallPage +in the region and we assign a slide to the remaining SmallPages, so +they forward to that first SmallPage when accessed. + +NOTE: We could use a less flexible technique that just hashed by +vmPageSize() instead of 4kB
[webkit-changes] [198820] trunk/Websites/webkit.org
Title: [198820] trunk/Websites/webkit.org Revision 198820 Author j...@apple.com Date 2016-03-29 19:18:56 -0700 (Tue, 29 Mar 2016) Log Message Fixed a context error for Nightly Build sync plugin, tightens layout styles for abovetitle Modified Paths trunk/Websites/webkit.org/ChangeLog trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php trunk/Websites/webkit.org/wp-content/themes/webkit/nightly-archives.php trunk/Websites/webkit.org/wp-content/themes/webkit/style.css Diff Modified: trunk/Websites/webkit.org/ChangeLog (198819 => 198820) --- trunk/Websites/webkit.org/ChangeLog 2016-03-30 02:02:47 UTC (rev 198819) +++ trunk/Websites/webkit.org/ChangeLog 2016-03-30 02:18:56 UTC (rev 198820) @@ -1,5 +1,18 @@ 2016-03-29 Jon Davis+Fixed a context error for Nightly Build sync plugin, tightens layout styles for abovetitle +https://bugs.webkit.org/show_bug.cgi?id=155989 + +Unreviewed fix for the Sync Nightly Builds plugin to work with the older +PHP environment on the server. Quick style adjustments for abovetitle images. + +* wp-content/plugins/sync-nightly-builds.php: +* wp-content/themes/webkit/nightly-archives.php: +* wp-content/themes/webkit/style.css: +(article .abovetitle): + +2016-03-29 Jon Davis + Add WebKit Nightly Archives, WebKit Nightly Start, and Downloads pages https://bugs.webkit.org/show_bug.cgi?id=155989 Modified: trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php (198819 => 198820) --- trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 02:02:47 UTC (rev 198819) +++ trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 02:18:56 UTC (rev 198820) @@ -34,11 +34,12 @@ $this->uploads_dir = trailingslashit($upload_dir_info['basedir']); add_action('update_webkit_nightly_builds', function () { -foreach ($this->archives as $endpoint => $filename) { +$SyncBuild = SyncWebKitNightlyBuilds::object(); +foreach ($SyncBuild->archives as $endpoint => $filename) { // Download a copy of the archives $url = "" $endpoint); -if (!copy($url, $this->uploads_dir. $filename)) { +if (!copy($url, $SyncBuild->uploads_dir. $filename)) { error_log("Couldn't download the $filename archive index. ({$errors['type']}) {$errors['message']}"); } } Modified: trunk/Websites/webkit.org/wp-content/themes/webkit/nightly-archives.php (198819 => 198820) --- trunk/Websites/webkit.org/wp-content/themes/webkit/nightly-archives.php 2016-03-30 02:02:47 UTC (rev 198819) +++ trunk/Websites/webkit.org/wp-content/themes/webkit/nightly-archives.php 2016-03-30 02:18:56 UTC (rev 198820) @@ -40,13 +40,8 @@
[webkit-changes] [198819] trunk
Title: [198819] trunk Revision 198819 Author n_w...@apple.com Date 2016-03-29 19:02:47 -0700 (Tue, 29 Mar 2016) Log Message AX: VoiceOver not announcing the right header information for table on iOS https://bugs.webkit.org/show_bug.cgi?id=155907 Reviewed by Chris Fleizach. Source/WebCore: Make sure we consider the case where header elements size does not equal to row size. Test: accessibility/ios-simulator/table-row-column-headers.html * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]): LayoutTests: * accessibility/ios-simulator/table-row-column-headers-expected.txt: Added. * accessibility/ios-simulator/table-row-column-headers.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm Added Paths trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers-expected.txt trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers.html Diff Modified: trunk/LayoutTests/ChangeLog (198818 => 198819) --- trunk/LayoutTests/ChangeLog 2016-03-30 01:31:33 UTC (rev 198818) +++ trunk/LayoutTests/ChangeLog 2016-03-30 02:02:47 UTC (rev 198819) @@ -1,3 +1,13 @@ +2016-03-29 Nan Wang+ +AX: VoiceOver not announcing the right header information for table on iOS +https://bugs.webkit.org/show_bug.cgi?id=155907 + +Reviewed by Chris Fleizach. + +* accessibility/ios-simulator/table-row-column-headers-expected.txt: Added. +* accessibility/ios-simulator/table-row-column-headers.html: Added. + 2016-03-29 Dana Burkart and Matthew Hanson Web Inspector: JS PrettyPrinting in do/while loops, "while" should be on the same line as "}" if there was a closing brace Added: trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers-expected.txt (0 => 198819) --- trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers-expected.txt (rev 0) +++ trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers-expected.txt 2016-03-30 02:02:47 UTC (rev 198819) @@ -0,0 +1,33 @@ +ColHeader1 ColHeader2 +Rowheader1 content1 content2 content3 +RowHeader2 content4 content5 content6 +content7 content8 content9 +This test makes sure that cells are getting the correct header elements. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +Verifying "content1" with col header: "ColHeader1" row header: "Rowheader1". +PASS cell.headerElementAtIndex(0).description is colDescription +PASS cell.headerElementAtIndex(1).description is rowDescription + + +Verifying "content2" with col header: "ColHeader2" row header: "Rowheader1". +PASS cell.headerElementAtIndex(0).description is colDescription +PASS cell.headerElementAtIndex(1).description is rowDescription + + +Verifying "content7" with col header: "ColHeader1" row header: "Rowheader2". +PASS cell.headerElementAtIndex(0).description is colDescription +PASS cell.headerElementAtIndex(1).description is rowDescription + + +Verifying "content9" with col header: "ColHeader2" row header: "Rowheader2". +PASS cell.headerElementAtIndex(0).description is colDescription +PASS cell.headerElementAtIndex(1).description is rowDescription + + +PASS successfullyParsed is true + +TEST COMPLETE + Added: trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers.html (0 => 198819) --- trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers.html (rev 0) +++ trunk/LayoutTests/accessibility/ios-simulator/table-row-column-headers.html 2016-03-30 02:02:47 UTC (rev 198819) @@ -0,0 +1,83 @@ + + + + +var successfullyParsed = false; + + +table, th, td { +border: 1px solid black; +} + + + + + + + +ColHeader1 +ColHeader2 + + + + +Rowheader1 +content1 +content2 +content3 + + +RowHeader2 +content4 +content5 +content6 + + +content7 +content8 +content9 + + + + + + + + + +description("This test makes sure that cells are getting the correct header elements."); + +if (window.accessibilityController) { + +var cell; +var colDescription, rowDescription; +var rowHeaderLabel1 = "Rowheader1"; +var rowHeaderLabel2 = "Rowheader2"; +var colHeaderLabel1 = "ColHeader1"; +var colHeaderLabel2 = "ColHeader2"; + +verifyCellAndHeaders("content1", colHeaderLabel1, rowHeaderLabel1); +verifyCellAndHeaders("content2", colHeaderLabel2, rowHeaderLabel1); +verifyCellAndHeaders("content7", colHeaderLabel1, rowHeaderLabel2); +verifyCellAndHeaders("content9", colHeaderLabel2, rowHeaderLabel2); +} + +function verifyCellAndHeaders(cellID, colHeader, rowHeader) { +cell = accessibilityController.accessibleElementById(cellID); +colDescription = "AXLabel: " + colHeader; +
[webkit-changes] [198818] trunk/Source/WebCore
Title: [198818] trunk/Source/WebCore Revision 198818 Author commit-qu...@webkit.org Date 2016-03-29 18:31:33 -0700 (Tue, 29 Mar 2016) Log Message REGRESSION (r198782): CGImageSourceUpdateData() is called twice with the same data every time ImageSource::setData() is called https://bugs.webkit.org/show_bug.cgi?id=155997 Patch by Said Abou-Hallawaon 2016-03-29 Reviewed by Simon Fraser. Remove a call to CGImageSourceUpdateData() which was mistakenly left in ImageDecoder::setData() after ImageSource refactoring. * platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageDecoder::setData): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (198817 => 198818) --- trunk/Source/WebCore/ChangeLog 2016-03-30 01:24:50 UTC (rev 198817) +++ trunk/Source/WebCore/ChangeLog 2016-03-30 01:31:33 UTC (rev 198818) @@ -1,3 +1,16 @@ +2016-03-29 Said Abou-Hallawa + +REGRESSION (r198782): CGImageSourceUpdateData() is called twice with the same data every time ImageSource::setData() is called +https://bugs.webkit.org/show_bug.cgi?id=155997 + +Reviewed by Simon Fraser. + +Remove a call to CGImageSourceUpdateData() which was mistakenly left in +ImageDecoder::setData() after ImageSource refactoring. + +* platform/graphics/cg/ImageSourceCG.cpp: +(WebCore::ImageDecoder::setData): + 2016-03-29 Myles C. Maxfield REGRESSION(r198784) Shouldn't add platform-dependent code to ScrollableArea.h Modified: trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp (198817 => 198818) --- trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp 2016-03-30 01:24:50 UTC (rev 198817) +++ trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp 2016-03-30 01:31:33 UTC (rev 198818) @@ -436,7 +436,6 @@ // We use SharedBuffer's ability to wrap itself inside CFData to get around this, ensuring that ImageIO is // really looking at the SharedBuffer. setData(data->createCFData().get(), allDataReceived); -CGImageSourceUpdateData(m_nativeDecoder.get(), data->createCFData().get(), allDataReceived); #else // Create a CGDataProvider to wrap the SharedBuffer. data->ref(); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198817] trunk/Source/WebCore
Title: [198817] trunk/Source/WebCore Revision 198817 Author mmaxfi...@apple.com Date 2016-03-29 18:24:50 -0700 (Tue, 29 Mar 2016) Log Message REGRESSION(r198784) Shouldn't add platform-dependent code to ScrollableArea.h https://bugs.webkit.org/show_bug.cgi?id=155999 Rolling out the patch. * platform/ScrollableArea.h: (WebCore::ScrollableArea::horizontalScrollbar): (WebCore::ScrollableArea::verticalScrollbar): (WebCore::ScrollableArea::tiledBacking): (WebCore::ScrollableArea::layerForHorizontalScrollbar): (WebCore::ScrollableArea::layerForVerticalScrollbar): (WebCore::ScrollableArea::layerForScrolling): (WebCore::ScrollableArea::layerForScrollCorner): (WebCore::ScrollableArea::layerForOverhangAreas): * platform/mac/ScrollAnimatorMac.mm: (WebCore::ScrollAnimatorMac::updateScrollerStyle): Deleted. * platform/mac/ScrollableAreaMac.mm: (WebCore::ScrollableArea::setScrollbarLayoutDirection): Deleted. * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::registerScrollbar): Deleted. * platform/spi/mac/NSScrollerImpSPI.h: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/ScrollableArea.h trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm trunk/Source/WebCore/platform/mac/ScrollableAreaMac.mm trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm trunk/Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h Diff Modified: trunk/Source/WebCore/ChangeLog (198816 => 198817) --- trunk/Source/WebCore/ChangeLog 2016-03-30 00:40:28 UTC (rev 198816) +++ trunk/Source/WebCore/ChangeLog 2016-03-30 01:24:50 UTC (rev 198817) @@ -1,3 +1,27 @@ +2016-03-29 Myles C. Maxfield+ +REGRESSION(r198784) Shouldn't add platform-dependent code to ScrollableArea.h +https://bugs.webkit.org/show_bug.cgi?id=155999 + +Rolling out the patch. + +* platform/ScrollableArea.h: +(WebCore::ScrollableArea::horizontalScrollbar): +(WebCore::ScrollableArea::verticalScrollbar): +(WebCore::ScrollableArea::tiledBacking): +(WebCore::ScrollableArea::layerForHorizontalScrollbar): +(WebCore::ScrollableArea::layerForVerticalScrollbar): +(WebCore::ScrollableArea::layerForScrolling): +(WebCore::ScrollableArea::layerForScrollCorner): +(WebCore::ScrollableArea::layerForOverhangAreas): +* platform/mac/ScrollAnimatorMac.mm: +(WebCore::ScrollAnimatorMac::updateScrollerStyle): Deleted. +* platform/mac/ScrollableAreaMac.mm: +(WebCore::ScrollableArea::setScrollbarLayoutDirection): Deleted. +* platform/mac/ScrollbarThemeMac.mm: +(WebCore::ScrollbarThemeMac::registerScrollbar): Deleted. +* platform/spi/mac/NSScrollerImpSPI.h: + 2016-03-29 Alex Christensen Fix Windows clean build. Modified: trunk/Source/WebCore/platform/ScrollableArea.h (198816 => 198817) --- trunk/Source/WebCore/platform/ScrollableArea.h 2016-03-30 00:40:28 UTC (rev 198816) +++ trunk/Source/WebCore/platform/ScrollableArea.h 2016-03-30 01:24:50 UTC (rev 198817) @@ -29,10 +29,6 @@ #include "Scrollbar.h" #include -#if PLATFORM(COCOA) -OBJC_CLASS NSScrollerImp; -#endif - namespace WebCore { class FloatPoint; @@ -184,8 +180,8 @@ int verticalScrollbarIntrusion() const; WEBCORE_EXPORT IntSize scrollbarIntrusion() const; -virtual Scrollbar* horizontalScrollbar() const { return nullptr; } -virtual Scrollbar* verticalScrollbar() const { return nullptr; } +virtual Scrollbar* horizontalScrollbar() const { return 0; } +virtual Scrollbar* verticalScrollbar() const { return 0; } const IntPoint& scrollOrigin() const { return m_scrollOrigin; } bool scrollOriginChanged() const { return m_scrollOriginChanged; } @@ -297,15 +293,15 @@ bool isPinnedVerticallyInDirection(int verticalScrollDelta) const; #endif -virtual TiledBacking* tiledBacking() const { return nullptr; } +virtual TiledBacking* tiledBacking() const { return 0; } // True if scrolling happens by moving compositing layers. virtual bool usesCompositedScrolling() const { return false; } // True if the contents can be scrolled asynchronously (i.e. by a ScrollingCoordinator). virtual bool usesAsyncScrolling() const { return false; } -virtual GraphicsLayer* layerForHorizontalScrollbar() const { return nullptr; } -virtual GraphicsLayer* layerForVerticalScrollbar() const { return nullptr; } +virtual GraphicsLayer* layerForHorizontalScrollbar() const { return 0; } +virtual GraphicsLayer* layerForVerticalScrollbar() const { return 0; } bool hasLayerForHorizontalScrollbar() const; bool hasLayerForVerticalScrollbar() const; @@ -318,9 +314,6 @@ bool verticalScrollbarIsOnLeft() const; static bool systemLanguageIsRTL(); -#if PLATFORM(COCOA) -void setScrollbarLayoutDirection(NSScrollerImp *) const; -#endif protected: WEBCORE_EXPORT ScrollableArea(); @@ -334,10 +327,10 @@
[webkit-changes] [198816] trunk/Websites/webkit.org
Title: [198816] trunk/Websites/webkit.org Revision 198816 Author j...@apple.com Date 2016-03-29 17:40:28 -0700 (Tue, 29 Mar 2016) Log Message Add WebKit Nightly Archives, WebKit Nightly Start, and Downloads pages https://bugs.webkit.org/show_bug.cgi?id=155989 Reviewed by Timothy Hatcher. * wp-content/plugins/sync-nightly-builds.php: Added. * wp-content/themes/webkit/downloads.php: Added. * wp-content/themes/webkit/functions.php: * wp-content/themes/webkit/images/download.svg: * wp-content/themes/webkit/images/spinner.svg: Added. * wp-content/themes/webkit/nightly-archives.php: Added. * wp-content/themes/webkit/nightly-start.php: Added. * wp-content/themes/webkit/nightly.php: * wp-content/themes/webkit/scripts/searchbuilds.js: Added. (initsearch.xhrPromise.): (initsearch): (initsearch.displayResults.addEntry): (initsearch.displayResults): (initsearch.displayError): (initsearch.clearErrors): * wp-content/themes/webkit/style.css: (input[type=text]): (input[type=submit]): (article .byline): (article .abovetitle): Modified Paths trunk/Websites/webkit.org/ChangeLog trunk/Websites/webkit.org/wp-content/themes/webkit/functions.php trunk/Websites/webkit.org/wp-content/themes/webkit/images/download.svg trunk/Websites/webkit.org/wp-content/themes/webkit/nightly.php trunk/Websites/webkit.org/wp-content/themes/webkit/style.css Added Paths trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php trunk/Websites/webkit.org/wp-content/themes/webkit/downloads.php trunk/Websites/webkit.org/wp-content/themes/webkit/images/spinner.svg trunk/Websites/webkit.org/wp-content/themes/webkit/nightly-archives.php trunk/Websites/webkit.org/wp-content/themes/webkit/nightly-start.php trunk/Websites/webkit.org/wp-content/themes/webkit/scripts/searchbuilds.js Diff Modified: trunk/Websites/webkit.org/ChangeLog (198815 => 198816) --- trunk/Websites/webkit.org/ChangeLog 2016-03-30 00:31:01 UTC (rev 198815) +++ trunk/Websites/webkit.org/ChangeLog 2016-03-30 00:40:28 UTC (rev 198816) @@ -1,5 +1,33 @@ 2016-03-29 Jon Davis+Add WebKit Nightly Archives, WebKit Nightly Start, and Downloads pages +https://bugs.webkit.org/show_bug.cgi?id=155989 + +Reviewed by Timothy Hatcher. + +* wp-content/plugins/sync-nightly-builds.php: Added. +* wp-content/themes/webkit/downloads.php: Added. +* wp-content/themes/webkit/functions.php: +* wp-content/themes/webkit/images/download.svg: +* wp-content/themes/webkit/images/spinner.svg: Added. +* wp-content/themes/webkit/nightly-archives.php: Added. +* wp-content/themes/webkit/nightly-start.php: Added. +* wp-content/themes/webkit/nightly.php: +* wp-content/themes/webkit/scripts/searchbuilds.js: Added. +(initsearch.xhrPromise.): +(initsearch): +(initsearch.displayResults.addEntry): +(initsearch.displayResults): +(initsearch.displayError): +(initsearch.clearErrors): +* wp-content/themes/webkit/style.css: +(input[type=text]): +(input[type=submit]): +(article .byline): +(article .abovetitle): + +2016-03-29 Jon Davis + Support images above the title on webkit.org posts https://bugs.webkit.org/show_bug.cgi?id=155979 Added: trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php (0 => 198816) --- trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php (rev 0) +++ trunk/Websites/webkit.org/wp-content/plugins/sync-nightly-builds.php 2016-03-30 00:40:28 UTC (rev 198816) @@ -0,0 +1,172 @@ + 'builds.csv', +'src' => 'source.csv' +); + +private $uploads_dir = ''; + +public static function object() { +if (self::$object === null) +self::$object = new self(); +return self::$object; +} + +private function __construct() { +$upload_dir_info = wp_upload_dir(); +$this->uploads_dir = trailingslashit($upload_dir_info['basedir']); + +add_action('update_webkit_nightly_builds', function () { +foreach ($this->archives as $endpoint => $filename) { +// Download a copy of the archives +$url = "" $endpoint); + +if (!copy($url, $this->uploads_dir. $filename)) { +error_log("Couldn't download the $filename archive index. ({$errors['type']}) {$errors['message']}"); +} +} +}); + +register_activation_hook(__FILE__, function () { +if (!wp_next_scheduled('update_webkit_nightly_builds')) +wp_schedule_event(current_time('timestamp'), 'hourly', 'update_webkit_nightly_builds'); + +do_action('update_webkit_nightly_builds'); +}); + + +add_action('wp_ajax_search_nightly_builds', array($this, 'search')); + +} + +public function latest($archive = 'builds') { +$records
[webkit-changes] [198815] trunk
Title: [198815] trunk Revision 198815 Author dburk...@apple.com Date 2016-03-29 17:31:01 -0700 (Tue, 29 Mar 2016) Log Message Web Inspector: JS PrettyPrinting in do/while loops, "while" should be on the same line as "}" if there was a closing brace https://bugs.webkit.org/show_bug.cgi?id=117616 Reviewed by Joseph Pecoraro. Source/WebInspectorUI: This patch fixes the formatting of do / while loops in the WebInspector CodeFormatter. Before: do { "x" } while (0); After: do { "x" } while (0); * UserInterface/Views/CodeMirrorFormatters.js: (shouldHaveSpaceBeforeToken): If we encounter a while token and the last token was a closing brace, we *should* add a space if that closing brace was closing a do block. (removeLastNewline): If we encounter a while token and the last token was a closing brace, we *should not* add a newline if that closing brace closes a do block. (modifyStateForTokenPre): We should keep track of the last token that we encountered before entering into a block. We do this by setting a lastContentBeforeBlock property on openBraceStartMarker / state objects. In addition, this fixes a bug where we do not pop a state object off of openBraceStartMarkers if our indentCount is 0. Without doing this, we cannot reliably determine whether or not our while token needs to be inline or not. LayoutTests: * inspector/codemirror/prettyprinting-_javascript_-expected.txt: * inspector/codemirror/prettyprinting-_javascript_.html: * inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-loop-expected.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-loop.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-within-if-expected.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-within-if.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-followed-by-while-expected.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-followed-by-while.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-while-within-do-while-expected.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-while-within-do-while.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/while-within-do-while-expected.js: Added. * inspector/codemirror/resources/prettyprinting/_javascript_-tests/while-within-do-while.js: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/codemirror/prettyprinting-_javascript_-expected.txt trunk/LayoutTests/inspector/codemirror/prettyprinting-_javascript_.html trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Views/CodeMirrorFormatters.js Added Paths trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-loop-expected.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-loop.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-within-if-expected.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-within-if.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-followed-by-while-expected.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-followed-by-while.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-while-within-do-while-expected.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/if-while-within-do-while.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/while-within-do-while-expected.js trunk/LayoutTests/inspector/codemirror/resources/prettyprinting/_javascript_-tests/while-within-do-while.js Diff Modified: trunk/LayoutTests/ChangeLog (198814 => 198815) --- trunk/LayoutTests/ChangeLog 2016-03-30 00:26:00 UTC (rev 198814) +++ trunk/LayoutTests/ChangeLog 2016-03-30 00:31:01 UTC (rev 198815) @@ -1,3 +1,24 @@ +2016-03-29 Dana Burkart and Matthew Hanson+ +Web Inspector: JS PrettyPrinting in do/while loops, "while" should be on the same line as "}" if there was a closing brace +https://bugs.webkit.org/show_bug.cgi?id=117616 + + +Reviewed by Joseph Pecoraro. + +* inspector/codemirror/prettyprinting-_javascript_-expected.txt: +* inspector/codemirror/prettyprinting-_javascript_.html: +* inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-loop-expected.js: Added. +* inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-loop.js: Added. +* inspector/codemirror/resources/prettyprinting/_javascript_-tests/do-while-within-if-expected.js: Added. +*
[webkit-changes] [198814] branches/safari-601.1.46-branch/Source
Title: [198814] branches/safari-601.1.46-branch/Source Revision 198814 Author matthew_han...@apple.com Date 2016-03-29 17:26:00 -0700 (Tue, 29 Mar 2016) Log Message Versioning. Modified Paths branches/safari-601.1.46-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-601.1.46-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-601.1.46-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-601.1.46-branch/Source/WebKit/mac/Configurations/Version.xcconfig branches/safari-601.1.46-branch/Source/WebKit2/Configurations/Version.xcconfig Diff Modified: branches/safari-601.1.46-branch/Source/_javascript_Core/Configurations/Version.xcconfig (198813 => 198814) --- branches/safari-601.1.46-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2016-03-30 00:24:16 UTC (rev 198813) +++ branches/safari-601.1.46-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2016-03-30 00:26:00 UTC (rev 198814) @@ -24,7 +24,7 @@ MAJOR_VERSION = 601; MINOR_VERSION = 1; TINY_VERSION = 46; -MICRO_VERSION = 124; +MICRO_VERSION = 125; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION); Modified: branches/safari-601.1.46-branch/Source/WebCore/Configurations/Version.xcconfig (198813 => 198814) --- branches/safari-601.1.46-branch/Source/WebCore/Configurations/Version.xcconfig 2016-03-30 00:24:16 UTC (rev 198813) +++ branches/safari-601.1.46-branch/Source/WebCore/Configurations/Version.xcconfig 2016-03-30 00:26:00 UTC (rev 198814) @@ -24,7 +24,7 @@ MAJOR_VERSION = 601; MINOR_VERSION = 1; TINY_VERSION = 46; -MICRO_VERSION = 124; +MICRO_VERSION = 125; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION); Modified: branches/safari-601.1.46-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (198813 => 198814) --- branches/safari-601.1.46-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2016-03-30 00:24:16 UTC (rev 198813) +++ branches/safari-601.1.46-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2016-03-30 00:26:00 UTC (rev 198814) @@ -1,7 +1,7 @@ MAJOR_VERSION = 601; MINOR_VERSION = 1; TINY_VERSION = 46; -MICRO_VERSION = 124; +MICRO_VERSION = 125; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION); Modified: branches/safari-601.1.46-branch/Source/WebKit/mac/Configurations/Version.xcconfig (198813 => 198814) --- branches/safari-601.1.46-branch/Source/WebKit/mac/Configurations/Version.xcconfig 2016-03-30 00:24:16 UTC (rev 198813) +++ branches/safari-601.1.46-branch/Source/WebKit/mac/Configurations/Version.xcconfig 2016-03-30 00:26:00 UTC (rev 198814) @@ -24,7 +24,7 @@ MAJOR_VERSION = 601; MINOR_VERSION = 1; TINY_VERSION = 46; -MICRO_VERSION = 124; +MICRO_VERSION = 125; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION); Modified: branches/safari-601.1.46-branch/Source/WebKit2/Configurations/Version.xcconfig (198813 => 198814) --- branches/safari-601.1.46-branch/Source/WebKit2/Configurations/Version.xcconfig 2016-03-30 00:24:16 UTC (rev 198813) +++ branches/safari-601.1.46-branch/Source/WebKit2/Configurations/Version.xcconfig 2016-03-30 00:26:00 UTC (rev 198814) @@ -24,7 +24,7 @@ MAJOR_VERSION = 601; MINOR_VERSION = 1; TINY_VERSION = 46; -MICRO_VERSION = 124; +MICRO_VERSION = 125; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198813] trunk
Title: [198813] trunk Revision 198813 Author sbar...@apple.com Date 2016-03-29 17:24:16 -0700 (Tue, 29 Mar 2016) Log Message Fix typos in our error messages and remove some trailing periods https://bugs.webkit.org/show_bug.cgi?id=155985 Reviewed by Mark Lam. Source/_javascript_Core: * bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::BytecodeGenerator): * runtime/ArrayConstructor.h: (JSC::isArray): * runtime/ProxyConstructor.cpp: (JSC::makeRevocableProxy): (JSC::proxyRevocableConstructorThrowError): (JSC::ProxyConstructor::finishCreation): (JSC::constructProxyObject): * runtime/ProxyObject.cpp: (JSC::ProxyObject::finishCreation): (JSC::performProxyGet): (JSC::ProxyObject::performInternalMethodGetOwnProperty): (JSC::ProxyObject::performHasProperty): (JSC::ProxyObject::performPut): (JSC::performProxyCall): (JSC::performProxyConstruct): (JSC::ProxyObject::performDelete): (JSC::ProxyObject::performPreventExtensions): (JSC::ProxyObject::performIsExtensible): (JSC::ProxyObject::performDefineOwnProperty): (JSC::ProxyObject::performGetOwnPropertyNames): (JSC::ProxyObject::performSetPrototype): (JSC::ProxyObject::performGetPrototype): * runtime/StringPrototype.cpp: (JSC::stringProtoFuncStartsWith): (JSC::stringProtoFuncEndsWith): (JSC::stringProtoFuncIncludes): * runtime/Structure.cpp: (JSC::Structure::preventExtensionsTransition): * tests/stress/proxy-basic.js: * tests/stress/proxy-construct.js: (throw.new.Error): (assert): * tests/stress/proxy-define-own-property.js: (assert): (throw.new.Error): (i.catch): (assert.set get catch): * tests/stress/proxy-delete.js: (assert): * tests/stress/proxy-get-own-property.js: (assert): (i.catch): (set get let): * tests/stress/proxy-get-prototype-of.js: (assert): (assert.get let): (assert.get catch): * tests/stress/proxy-has-property.js: (assert): * tests/stress/proxy-is-array.js: (test): * tests/stress/proxy-is-extensible.js: (assert): * tests/stress/proxy-json.js: (assert): (test): * tests/stress/proxy-own-keys.js: (assert): (i.catch): * tests/stress/proxy-prevent-extensions.js: (assert): * tests/stress/proxy-property-descriptor.js: * tests/stress/proxy-revoke.js: (assert): (throw.new.Error.): (throw.new.Error): (shouldThrowNullHandler): * tests/stress/proxy-set-prototype-of.js: (assert.set let): (assert.set catch): (assert): (set catch): * tests/stress/proxy-set.js: (throw.new.Error.let.handler.set 45): (throw.new.Error): * tests/stress/proxy-with-private-symbols.js: (assert): * tests/stress/proxy-with-unbalanced-getter-setter.js: (assert): * tests/stress/reflect-set-proxy-set.js: (throw.new.Error.let.handler.set 45): (throw.new.Error): * tests/stress/reflect-set-receiver-proxy-set.js: (let.handler.set 45): (catch): * tests/stress/string-prototype-methods-endsWith-startsWith-includes-correctness.js: (test): (test.get let): LayoutTests: * js/string-includes-expected.txt: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/js/string-includes-expected.txt trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp trunk/Source/_javascript_Core/runtime/ArrayConstructor.h trunk/Source/_javascript_Core/runtime/ProxyConstructor.cpp trunk/Source/_javascript_Core/runtime/ProxyObject.cpp trunk/Source/_javascript_Core/runtime/StringPrototype.cpp trunk/Source/_javascript_Core/runtime/Structure.cpp trunk/Source/_javascript_Core/tests/stress/proxy-basic.js trunk/Source/_javascript_Core/tests/stress/proxy-construct.js trunk/Source/_javascript_Core/tests/stress/proxy-define-own-property.js trunk/Source/_javascript_Core/tests/stress/proxy-delete.js trunk/Source/_javascript_Core/tests/stress/proxy-get-own-property.js trunk/Source/_javascript_Core/tests/stress/proxy-get-prototype-of.js trunk/Source/_javascript_Core/tests/stress/proxy-has-property.js trunk/Source/_javascript_Core/tests/stress/proxy-is-array.js trunk/Source/_javascript_Core/tests/stress/proxy-is-extensible.js trunk/Source/_javascript_Core/tests/stress/proxy-json.js trunk/Source/_javascript_Core/tests/stress/proxy-own-keys.js trunk/Source/_javascript_Core/tests/stress/proxy-prevent-extensions.js trunk/Source/_javascript_Core/tests/stress/proxy-property-descriptor.js trunk/Source/_javascript_Core/tests/stress/proxy-revoke.js trunk/Source/_javascript_Core/tests/stress/proxy-set-prototype-of.js trunk/Source/_javascript_Core/tests/stress/proxy-set.js trunk/Source/_javascript_Core/tests/stress/proxy-with-private-symbols.js trunk/Source/_javascript_Core/tests/stress/proxy-with-unbalanced-getter-setter.js trunk/Source/_javascript_Core/tests/stress/reflect-set-proxy-set.js trunk/Source/_javascript_Core/tests/stress/reflect-set-receiver-proxy-set.js trunk/Source/_javascript_Core/tests/stress/string-prototype-methods-endsWith-startsWith-includes-correctness.js Diff Modified: trunk/LayoutTests/ChangeLog (198812 => 198813) --- trunk/LayoutTests/ChangeLog 2016-03-30 00:21:46 UTC (rev 198812) +++ trunk/LayoutTests/ChangeLog 2016-03-30 00:24:16 UTC (rev
[webkit-changes] [198812] tags/Safari-601.1.46.124/
Title: [198812] tags/Safari-601.1.46.124/ Revision 198812 Author matthew_han...@apple.com Date 2016-03-29 17:21:46 -0700 (Tue, 29 Mar 2016) Log Message New Tag. Added Paths tags/Safari-601.1.46.124/ Diff Property changes: tags/Safari-601.1.46.124 Added: svn:ignore depcomp compile config.guess GNUmakefile.in config.sub ltmain.sh aconfig.h.in autom4te.cache missing aclocal.m4 install-sh autotoolsconfig.h.in INSTALL README gtk-doc.make out Makefile.chromium WebKitSupportLibrary.zip WebKitBuild Added: svn:mergeinfo ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198811] trunk/Source/WebCore
Title: [198811] trunk/Source/WebCore Revision 198811 Author achristen...@apple.com Date 2016-03-29 16:55:01 -0700 (Tue, 29 Mar 2016) Log Message Fix Windows clean build. * CMakeLists.txt: Make sure WebCoreDerivedSources is done building before building WebCore. Modified Paths trunk/Source/WebCore/CMakeLists.txt trunk/Source/WebCore/ChangeLog Diff Modified: trunk/Source/WebCore/CMakeLists.txt (198810 => 198811) --- trunk/Source/WebCore/CMakeLists.txt 2016-03-29 23:34:54 UTC (rev 198810) +++ trunk/Source/WebCore/CMakeLists.txt 2016-03-29 23:55:01 UTC (rev 198811) @@ -3807,11 +3807,15 @@ set_target_properties(WebCoreDerivedSources PROPERTIES OUTPUT_NAME WebCoreDerivedSources${DEBUG_SUFFIX}) set_target_properties(WebCoreDerivedSources PROPERTIES FOLDER "WebCore") if (NOT WIN32) -list(APPEND WebCore_LIBRARIES WebCoreDerivedSources${DEBUG_SUFFIX}) +list(APPEND WebCore_LIBRARIES WebCoreDerivedSources) endif () WEBKIT_FRAMEWORK(WebCore) +if (WIN32) +add_dependencies(WebCore WebCoreDerivedSources) +endif () + # The -ftree-sra optimization (implicit with -O2) causes crashes when # allocating large chunks of memory using bmalloc on Intel 32bit. # See https://bugs.webkit.org/show_bug.cgi?id=146440 Modified: trunk/Source/WebCore/ChangeLog (198810 => 198811) --- trunk/Source/WebCore/ChangeLog 2016-03-29 23:34:54 UTC (rev 198810) +++ trunk/Source/WebCore/ChangeLog 2016-03-29 23:55:01 UTC (rev 198811) @@ -1,3 +1,10 @@ +2016-03-29 Alex Christensen+ +Fix Windows clean build. + +* CMakeLists.txt: +Make sure WebCoreDerivedSources is done building before building WebCore. + 2016-03-29 Keith Miller [ES6] Add support for Symbol.isConcatSpreadable. ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198810] trunk/Source/WebKit2
Title: [198810] trunk/Source/WebKit2 Revision 198810 Author enr...@apple.com Date 2016-03-29 16:34:54 -0700 (Tue, 29 Mar 2016) Log Message When moving focus from one select element to another (iPhone) the value is committed to the newly focused element. https://bugs.webkit.org/show_bug.cgi?id=155958 rdar://problem/22738524 Reviewed by Tim Horton. We should not delay the call to endEditing until we receive stopAssistingNode, because by then the assisted node might have already changed. We need to call endEditing to commit potential changes every time we tap. This way we can make sure the editing session on the select element has been completed. This affects only single select elements on iPhone, where the change to the actual DOM element is delayed until we stop interacting with the element. On iPad or for multi-select elements, the change to the DOM happens immediately. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _singleTapCommited:]): (-[WKContentView _attemptClickAtLocation:]): (-[WKContentView _stopAssistingNode]): Modified Paths trunk/Source/WebKit2/ChangeLog trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm Diff Modified: trunk/Source/WebKit2/ChangeLog (198809 => 198810) --- trunk/Source/WebKit2/ChangeLog 2016-03-29 23:19:11 UTC (rev 198809) +++ trunk/Source/WebKit2/ChangeLog 2016-03-29 23:34:54 UTC (rev 198810) @@ -1,3 +1,25 @@ +2016-03-28 Enrica Casucci+ +When moving focus from one select element to another (iPhone) the value is committed to the newly focused element. +https://bugs.webkit.org/show_bug.cgi?id=155958 +rdar://problem/22738524 + +Reviewed by Tim Horton. + +We should not delay the call to endEditing until we receive +stopAssistingNode, because by then the assisted node might have already +changed. We need to call endEditing to commit potential changes every +time we tap. This way we can make sure the editing session on the select +element has been completed. This affects only single select elements on +iPhone, where the change to the actual DOM element is delayed until we +stop interacting with the element. On iPad or for multi-select elements, +the change to the DOM happens immediately. + +* UIProcess/ios/WKContentViewInteraction.mm: +(-[WKContentView _singleTapCommited:]): +(-[WKContentView _attemptClickAtLocation:]): +(-[WKContentView _stopAssistingNode]): + 2016-03-29 Brian Burg Unreviewed build fix after r198793. Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (198809 => 198810) --- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm 2016-03-29 23:19:11 UTC (rev 198809) +++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm 2016-03-29 23:34:54 UTC (rev 198810) @@ -1448,6 +1448,7 @@ _hasTapHighlightForPotentialTap = NO; } +[_inputPeripheral endEditing]; _page->commitPotentialTap(); if (!_isExpectingFastSingleTapCommit) @@ -1486,6 +1487,7 @@ if (![self isFirstResponder]) [self becomeFirstResponder]; +[_inputPeripheral endEditing]; _page->handleTap(location); } @@ -3587,7 +3589,6 @@ _formInputSession = nil; _isEditable = NO; _assistedNodeInformation.elementType = InputType::None; -[_inputPeripheral endEditing]; _inputPeripheral = nil; [self _stopAssistingKeyboard]; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [198809] trunk/Source/bmalloc
Title: [198809] trunk/Source/bmalloc Revision 198809 Author ddkil...@apple.com Date 2016-03-29 16:19:11 -0700 (Tue, 29 Mar 2016) Log Message bmalloc: add logging for mmap() failures Reviewed by Saam Barati. This patch causes additional logging to be generated on internal iOS builds when mmap() fails. We are trying to track down an issue where the WebContent process runs out of VM address space before it is killed by jetsam. * CMakeLists.txt: Add Logging.cpp. * bmalloc.xcodeproj/project.pbxproj: Add new files. * bmalloc/BAssert.h: (RELEASE_BASSERT_WITH_MESSAGE): Add macro. * bmalloc/Logging.cpp: Added. (bmalloc::logVMFailure): Implementation. * bmalloc/Logging.h: Added. (bmalloc::logVMFailure): Declaration. * bmalloc/VMAllocate.h: (bmalloc::tryVMAllocate): Call logVMFailure() on mmap() failure. * bmalloc/darwin/BSoftLinking.h: Copied from Source/WebCore/platform/mac/SoftLinking.h. Modified Paths trunk/Source/bmalloc/CMakeLists.txt trunk/Source/bmalloc/ChangeLog trunk/Source/bmalloc/bmalloc/BAssert.h trunk/Source/bmalloc/bmalloc/VMAllocate.h trunk/Source/bmalloc/bmalloc.xcodeproj/project.pbxproj Added Paths trunk/Source/bmalloc/bmalloc/Logging.cpp trunk/Source/bmalloc/bmalloc/Logging.h trunk/Source/bmalloc/bmalloc/darwin/ trunk/Source/bmalloc/bmalloc/darwin/BSoftLinking.h Diff Modified: trunk/Source/bmalloc/CMakeLists.txt (198808 => 198809) --- trunk/Source/bmalloc/CMakeLists.txt 2016-03-29 22:57:01 UTC (rev 198808) +++ trunk/Source/bmalloc/CMakeLists.txt 2016-03-29 23:19:11 UTC (rev 198809) @@ -9,6 +9,7 @@ bmalloc/Environment.cpp bmalloc/FreeList.cpp bmalloc/Heap.cpp +bmalloc/Logging.cpp bmalloc/ObjectType.cpp bmalloc/SegregatedFreeList.cpp bmalloc/StaticMutex.cpp Modified: trunk/Source/bmalloc/ChangeLog (198808 => 198809) --- trunk/Source/bmalloc/ChangeLog 2016-03-29 22:57:01 UTC (rev 198808) +++ trunk/Source/bmalloc/ChangeLog 2016-03-29 23:19:11 UTC (rev 198809) @@ -1,3 +1,29 @@ +2016-03-29 David Kilzer+ +bmalloc: add logging for mmap() failures + + + +Reviewed by Saam Barati. + +This patch causes additional logging to be generated on internal +iOS builds when mmap() fails. We are trying to track down an +issue where the WebContent process runs out of VM address space +before it is killed by jetsam. + +* CMakeLists.txt: Add Logging.cpp. +* bmalloc.xcodeproj/project.pbxproj: Add new files. + +* bmalloc/BAssert.h: +(RELEASE_BASSERT_WITH_MESSAGE): Add macro. +* bmalloc/Logging.cpp: Added. +(bmalloc::logVMFailure): Implementation. +* bmalloc/Logging.h: Added. +(bmalloc::logVMFailure): Declaration. +* bmalloc/VMAllocate.h: +(bmalloc::tryVMAllocate): Call logVMFailure() on mmap() failure. +* bmalloc/darwin/BSoftLinking.h: Copied from Source/WebCore/platform/mac/SoftLinking.h. + 2016-03-26 Geoffrey Garen Unreviewed, rolling out r198702, r198704. Modified: trunk/Source/bmalloc/bmalloc/BAssert.h (198808 => 198809) --- trunk/Source/bmalloc/bmalloc/BAssert.h 2016-03-29 22:57:01 UTC (rev 198808) +++ trunk/Source/bmalloc/bmalloc/BAssert.h 2016-03-29 23:19:11 UTC (rev 198809) @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 Apple Inc. All rights reserved. + * Copyright (C) 2014-2016 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -63,6 +63,9 @@ #define RELEASE_BASSERT(x) BASSERT_IMPL(x) +// FIXME: Implement logging: +#define RELEASE_BASSERT_WITH_MESSAGE(x, f, ...) BASSERT_IMPL(x) + #define UNUSED(x) (void)x // = Release build = Added: trunk/Source/bmalloc/bmalloc/Logging.cpp (0 => 198809) --- trunk/Source/bmalloc/bmalloc/Logging.cpp (rev 0) +++ trunk/Source/bmalloc/bmalloc/Logging.cpp 2016-03-29 23:19:11 UTC (rev 198809) @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2016 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL
[webkit-changes] [198808] trunk
Title: [198808] trunk Revision 198808 Author keith_mil...@apple.com Date 2016-03-29 15:57:01 -0700 (Tue, 29 Mar 2016) Log Message [ES6] Add support for Symbol.isConcatSpreadable. https://bugs.webkit.org/show_bug.cgi?id=155351 Reviewed by Saam Barati. Source/_javascript_Core: This patch adds support for Symbol.isConcatSpreadable. In order to do so it was necessary to move the Array.prototype.concat function to JS. A number of different optimizations were needed to make such the move to a builtin performant. First, four new DFG intrinsics were added. 1) IsArrayObject (I would have called it IsArray but we use the same name for an IndexingType): an intrinsic of the Array.isArray function. 2) IsJSArray: checks the first child is a JSArray object. 3) IsArrayConstructor: checks the first child is an instance of ArrayConstructor. 4) CallObjectConstructor: an intrinsic of the Object constructor. IsActualObject, IsJSArray, and CallObjectConstructor can all be converted into constants in the abstract interpreter if we are able to prove that the first child is an Array or for ToObject an Object. In order to further improve the perfomance we also now cover more indexing types in our fast path memcpy code. Before we would only memcpy Arrays if they had the same indexing type and did not have Array storage and were not undecided. Now the memcpy code covers the following additional two cases: One array is undecided and the other is a non-array storage and the case where one array is Int32 and the other is contiguous (we map this into a contiguous array). This patch also adds a new fast path for concat with more than one array argument by using memcpy to append values onto the result array. This works roughly the same as the two array fast path using the same methodology to decide if we can memcpy the other butterfly into the result butterfly. Two new debugging tools are also added to the jsc cli. One is a version of the print function with a private name so it can be used for debugging builtins. The other is dumpDataLog, which takes a JSValue and runs our dataLog function on it. Finally, this patch add a new constructor to JSValueRegsTemporary that allows it to reuse the the registers of a JSValueOperand if the operand's use count is one. * _javascript_Core.xcodeproj/project.pbxproj: * builtins/ArrayPrototype.js: (concatSlowPath): (concat): * bytecode/BytecodeIntrinsicRegistry.cpp: (JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry): * bytecode/BytecodeIntrinsicRegistry.h: * dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter::executeEffects): * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsicCall): (JSC::DFG::ByteCodeParser::handleConstantInternalFunction): * dfg/DFGClobberize.h: (JSC::DFG::clobberize): * dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC): * dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): * dfg/DFGNodeType.h: * dfg/DFGOperations.cpp: * dfg/DFGOperations.h: * dfg/DFGPredictionPropagationPhase.cpp: (JSC::DFG::PredictionPropagationPhase::propagate): * dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCurrentBlock): (JSC::DFG::SpeculativeJIT::compileIsJSArray): (JSC::DFG::SpeculativeJIT::compileIsArrayObject): (JSC::DFG::SpeculativeJIT::compileIsArrayConstructor): (JSC::DFG::SpeculativeJIT::compileCallObjectConstructor): * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile): * ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor): (JSC::FTL::DFG::LowerDFGToB3::compileIsArrayObject): (JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray): (JSC::FTL::DFG::LowerDFGToB3::compileIsArrayConstructor): (JSC::FTL::DFG::LowerDFGToB3::isArray): * jit/JITOperations.h: * jsc.cpp: (WTF::RuntimeArray::createStructure): (GlobalObject::finishCreation): (functionDebug): (functionDataLogValue): * runtime/ArrayConstructor.cpp: (JSC::ArrayConstructor::finishCreation): (JSC::arrayConstructorPrivateFuncIsArrayConstructor): * runtime/ArrayConstructor.h: (JSC::isArrayConstructor): * runtime/ArrayPrototype.cpp: (JSC::ArrayPrototype::finishCreation): (JSC::arrayProtoPrivateFuncIsJSArray): (JSC::moveElements): (JSC::arrayProtoPrivateFuncConcatMemcpy): (JSC::arrayProtoPrivateFuncAppendMemcpy): (JSC::arrayProtoFuncConcat): Deleted. * runtime/ArrayPrototype.h: (JSC::ArrayPrototype::createStructure): * runtime/CommonIdentifiers.h: * runtime/Intrinsic.h: * runtime/JSArray.cpp: (JSC::JSArray::appendMemcpy): (JSC::JSArray::fastConcatWith): Deleted. * runtime/JSArray.h: (JSC::JSArray::createStructure): (JSC::JSArray::fastConcatType): Deleted. * runtime/JSArrayInlines.h: Added. (JSC::JSArray::memCopyWithIndexingType): (JSC::JSArray::canFastCopy): *
[webkit-changes] [198807] trunk/Tools
Title: [198807] trunk/Tools Revision 198807 Author commit-qu...@webkit.org Date 2016-03-29 15:23:42 -0700 (Tue, 29 Mar 2016) Log Message Add machine-readable results for JSC stress tests https://bugs.webkit.org/show_bug.cgi?id=155771 Patch by Srinivasan Vijayaraghavanon 2016-03-29 Reviewed by Darin Adler and Dean Johnson Add an option to output JSC stress test results to a user-specified file in JSON format. * Scripts/run-_javascript_core-tests: (runJSCStressTests): Add JSON output support (readAllLines): Remove trailing newline from the end of each item Modified Paths trunk/Tools/ChangeLog trunk/Tools/Scripts/run-_javascript_core-tests Diff Modified: trunk/Tools/ChangeLog (198806 => 198807) --- trunk/Tools/ChangeLog 2016-03-29 22:19:40 UTC (rev 198806) +++ trunk/Tools/ChangeLog 2016-03-29 22:23:42 UTC (rev 198807) @@ -1,3 +1,16 @@ +2016-03-29 Srinivasan Vijayaraghavan + +Add machine-readable results for JSC stress tests +https://bugs.webkit.org/show_bug.cgi?id=155771 + +Reviewed by Darin Adler and Dean Johnson + +Add an option to output JSC stress test results to a user-specified file in JSON format. + +* Scripts/run-_javascript_core-tests: +(runJSCStressTests): Add JSON output support +(readAllLines): Remove trailing newline from the end of each item + 2016-03-29 Alex Christensen Fix Windows build. Modified: trunk/Tools/Scripts/run-_javascript_core-tests (198806 => 198807) --- trunk/Tools/Scripts/run-_javascript_core-tests 2016-03-29 22:19:40 UTC (rev 198806) +++ trunk/Tools/Scripts/run-_javascript_core-tests 2016-03-29 22:23:42 UTC (rev 198807) @@ -31,12 +31,14 @@ # as well as other tests: testapi on Mac and LayoutTests/js. use strict; +use File::Spec; use FindBin; use Getopt::Long qw(:config pass_through); +use JSON::PP; +use lib $FindBin::Bin; use List::Util qw(min max); -use lib $FindBin::Bin; +use POSIX; use webkitdirs; -use POSIX; # determine configuration setConfiguration(); @@ -66,6 +68,7 @@ my $createTarball = 0; my $remoteHost = 0; my $remoteConfigFile; +my $jsonFileName; my $programName = basename($0); my $buildJSCDefault = $buildJSC ? "will check" : "will not check"; @@ -87,6 +90,7 @@ If the runner only runs some it will run the default and no-cjit-validate modes. Note, this will not change the behavior of tests that specify their own modes. + --json-output=Create a file at specified path, listing failed stress tests in JSON format. --tarball Create a tarball of the bundle produced by running the JSC stress tests. --remote= Run the JSC stress tests on the specified remote host. Implies --tarball. --remote-config-file= Same as remote, but read config from JSON file. @@ -112,6 +116,7 @@ 'jsc-stress!' => \$runJSCStress, 'jit-stress-tests!' => \$runJITStressTests, 'quick!' => \$runQuickMode, +'json-output=s' => \$jsonFileName, 'tarball!' => \$createTarball, 'remote=s' => \$remoteHost, 'remote-config-file=s' => \$remoteConfigFile, @@ -121,7 +126,7 @@ 'filter=s' => \$filter, 'help' => \$showHelp, 'env-vars=s' => \$envVars, -'gmalloc:s' => \$gmallocPath +'gmalloc:s' => \$gmallocPath, ); # Assume any arguments left over from GetOptions are assumed to be build arguments @@ -139,6 +144,10 @@ setConfigurationProductDir(Cwd::abs_path($root)) if (defined($root)); +if (defined($jsonFileName)) { +$jsonFileName = File::Spec->rel2abs($jsonFileName); +} + if (!defined($root) && $buildJSC) { chdirWebKit(); @@ -283,7 +292,7 @@ if ($makeRunner) { push(@jscStressDriverCmd, "--make-runner"); } - + if ($filter) { push(@jscStressDriverCmd, "--filter"); push(@jscStressDriverCmd, $filter); @@ -309,7 +318,7 @@ if ($numJSCStressFailures) { print "\n** The following JSC stress test failures have been introduced:\n"; foreach my $testFailure (@jscStressFailList) { -print "\t$testFailure"; +print "\t$testFailure\n"; } } print "\n"; @@ -320,6 +329,17 @@ print "\n"; +if (defined($jsonFileName)) { +my %jsonData = ( +"numJSCStressFailures" => $numJSCStressFailures, +"jscStressFailList" => \@jscStressFailList, +); + +open(my $fileHandler, ">", $jsonFileName) or die; +print $fileHandler "${\encode_json(\%jsonData)}\n"; +close($fileHandler); +} + exit(1) if $numJSCStressFailures; } @@ -330,6 +350,7 @@ eval { open FILE, $filename or die; while () { +chomp; push @array, $_; } close FILE; ___ webkit-changes
[webkit-changes] [198806] trunk
Title: [198806] trunk Revision 198806 Author n_w...@apple.com Date 2016-03-29 15:19:40 -0700 (Tue, 29 Mar 2016) Log Message AX: VoiceOver: Navigating Numbered Lists Causes Number to be announced On Each Line of List https://bugs.webkit.org/show_bug.cgi?id=155984 Reviewed by Chris Fleizach. Source/WebCore: We should limit the list marker text only to the first line of that list item. Test: accessibility/mac/attributed-string-with-listitem-multiple-lines.html * accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition): (WebCore::AccessibilityObject::stringForRange): LayoutTests: * accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt: Added. * accessibility/mac/attributed-string-with-listitem-multiple-lines.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/accessibility/AccessibilityObject.cpp Added Paths trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines.html Diff Modified: trunk/LayoutTests/ChangeLog (198805 => 198806) --- trunk/LayoutTests/ChangeLog 2016-03-29 22:17:04 UTC (rev 198805) +++ trunk/LayoutTests/ChangeLog 2016-03-29 22:19:40 UTC (rev 198806) @@ -1,3 +1,13 @@ +2016-03-29 Nan Wang+ +AX: VoiceOver: Navigating Numbered Lists Causes Number to be announced On Each Line of List +https://bugs.webkit.org/show_bug.cgi?id=155984 + +Reviewed by Chris Fleizach. + +* accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt: Added. +* accessibility/mac/attributed-string-with-listitem-multiple-lines.html: Added. + 2016-03-29 Antonio Gomes Wheel events' latching state is not reset when appropriate Added: trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt (0 => 198806) --- trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt (rev 0) +++ trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines-expected.txt 2016-03-29 22:19:40 UTC (rev 198806) @@ -0,0 +1,17 @@ +First line + +second line +Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long +This tests that when list item has text of multiple lines we only speak the list marker for the first line. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +1. First line +second line +2. Long long long long long long long long long long long long long long long long long long long long long long +long long long long long long long long long long long long long +PASS successfullyParsed is true + +TEST COMPLETE + Added: trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines.html (0 => 198806) --- trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines.html (rev 0) +++ trunk/LayoutTests/accessibility/mac/attributed-string-with-listitem-multiple-lines.html 2016-03-29 22:19:40 UTC (rev 198806) @@ -0,0 +1,48 @@ + + + + + +
+ + + + + +- +
First line
second line- Long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long
+