WebKit-https.git
3 years agoIt should be possible to re-initialize a CustomEvent after it's been dispatched
cdumez@apple.com [Tue, 9 Aug 2016 18:52:11 +0000 (18:52 +0000)]
It should be possible to re-initialize a CustomEvent after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160664

Reviewed by Darin Adler.

Source/WebCore:

It should be possible to re-initialize a CustomEvent after it's been dispatched:
- https://dom.spec.whatwg.org/#dom-customevent-initcustomevent

Test: fast/events/initCustomEvent-after-dispatch.html

* dom/CustomEvent.cpp:
(WebCore::CustomEvent::initCustomEvent):

LayoutTests:

* fast/events/initCustomEvent-after-dispatch-expected.txt: Copied from LayoutTests/fast/events/initEvent-after-dispatch-expected.txt.
* fast/events/initCustomEvent-after-dispatch.html: Copied from LayoutTests/fast/events/initEvent-after-dispatch.html.
Add layout test coverage.

* fast/events/initEvent-after-dispatch-expected.txt:
* fast/events/initEvent-after-dispatch.html:
Fix related layout test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204288 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoGet rid of PluginStrategy
andersca@apple.com [Tue, 9 Aug 2016 18:06:30 +0000 (18:06 +0000)]
Get rid of PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160696

Reviewed by Dan Bernstein.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.cpp:
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::pluginStrategy): Deleted.
* plugins/PluginInfoProvider.h:
* plugins/PluginStrategy.h: Removed.
(WebCore::PluginStrategy::~PluginStrategy): Deleted.

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createPluginStrategy): Deleted.
* WebCoreSupport/WebPluginInfoProvider.h:
* WebCoreSupport/WebPluginInfoProvider.mm:
(WebPluginInfoProvider::setPluginLoadClientPolicy): Deleted.
(WebPluginInfoProvider::clearPluginClientPolicies): Deleted.

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createPluginStrategy): Deleted.

Source/WebKit2:

* NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createPluginStrategy): Deleted.
* NetworkProcess/NetworkProcessPlatformStrategies.h:
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPluginStrategy): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204287 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAdd WKPage SPI for looking up a WKFrame given a WKFrameHandle
mitz@apple.com [Tue, 9 Aug 2016 17:01:39 +0000 (17:01 +0000)]
Add WKPage SPI for looking up a WKFrame given a WKFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=160695

Reviewed by Anders Carlsson.

* UIProcess/API/C/WKPage.cpp:
(WKPageLookUpFrameFromHandle): Added. Gets the frame from the map in the page’s process and
  returns it if it belongs to the page.
* UIProcess/API/C/WKPagePrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204284 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agowebkit-gtk tarball fails to build due to missing files
annulen@yandex.ru [Tue, 9 Aug 2016 16:57:46 +0000 (16:57 +0000)]
webkit-gtk tarball fails to build due to missing files
https://bugs.webkit.org/show_bug.cgi?id=160684

Reviewed by Alex Christensen.

* gtk/manifest.txt.in: Added back spi directories.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204283 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoMove plug-in enumeration from WebPlatformStrategies to WebPluginInfoProvider
andersca@apple.com [Tue, 9 Aug 2016 16:57:38 +0000 (16:57 +0000)]
Move plug-in enumeration from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160694

Reviewed by Dan Bernstein.

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::refreshPlugins): Deleted.
(WebPlatformStrategies::getPluginInfo): Deleted.
(WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebPlatformStrategies::clearPluginClientPolicies): Deleted.
* WebCoreSupport/WebPluginInfoProvider.mm:
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createPluginStrategy):
(WebPlatformStrategies::refreshPlugins): Deleted.
(WebPlatformStrategies::getPluginInfo): Deleted.
(WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPluginInfoProvider.cpp:
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204282 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoMove plug-in code from WebPlatformStrategies to WebPluginInfoProvider
andersca@apple.com [Tue, 9 Aug 2016 16:26:28 +0000 (16:26 +0000)]
Move plug-in code from WebPlatformStrategies to WebPluginInfoProvider
https://bugs.webkit.org/show_bug.cgi?id=160679

Reviewed by Alex Christensen.

* WebProcess/Plugins/WebPluginInfoProvider.cpp:
(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):
(WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost):
(WebKit::WebPluginInfoProvider::longestMatchedWildcardHostForHost):
(WebKit::WebPluginInfoProvider::replaceHostWithMatchedWildcardHost):
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createPluginStrategy):
(WebKit::WebPlatformStrategies::WebPlatformStrategies): Deleted.
(WebKit::WebPlatformStrategies::refreshPlugins): Deleted.
(WebKit::WebPlatformStrategies::getPluginInfo): Deleted.
(WebKit::WebPlatformStrategies::getWebVisiblePluginInfo): Deleted.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy): Deleted.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies): Deleted.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost): Deleted.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost): Deleted.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
(WebKit::WebPlatformStrategies::populatePluginCache): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setPluginLoadClientPolicy):
(WebKit::WebProcess::clearPluginClientPolicies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204281 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[GTK] Build the jhbuild with -O2 optimization level by default
clopez@igalia.com [Tue, 9 Aug 2016 10:37:44 +0000 (10:37 +0000)]
[GTK] Build the jhbuild with -O2 optimization level by default
https://bugs.webkit.org/show_bug.cgi?id=160544

Reviewed by Michael Catanzaro.

* gtk/jhbuildrc: Pass -O2 when building the JHBuild, as also -g1
which don't increases the required disk space significatively and
provides better debug information than no passing it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204279 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAllow more --cmakeargs option in build-jsc and build-webkit
ossy@webkit.org [Tue, 9 Aug 2016 09:11:06 +0000 (09:11 +0000)]
Allow more --cmakeargs option in build-jsc and build-webkit
https://bugs.webkit.org/show_bug.cgi?id=160340

Reviewed by Michael Catanzaro.

* Scripts/build-jsc:
* Scripts/build-webkit:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204278 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDo not check if WebKitLibraries folder exists on EFL and GTK
gyuyoung.kim@webkit.org [Tue, 9 Aug 2016 07:25:25 +0000 (07:25 +0000)]
Do not check if WebKitLibraries folder exists on EFL and GTK
https://bugs.webkit.org/show_bug.cgi?id=160659

Reviewed by Csaba Osztrogonác.

Though WebKitLibraries is only needed by mac and win ports,
EFL and GTK ports have checked whether it exists.

* Scripts/build-webkit:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204277 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoEnsure StringView lifetime is correct inside InlineTextBox
mmaxfield@apple.com [Tue, 9 Aug 2016 03:26:49 +0000 (03:26 +0000)]
Ensure StringView lifetime is correct inside InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=160584

Reviewed by Darin Adler.

A TextRun contains a StringView. Previously, we had a helper function which
could possibly create a new string, and then create a TextRun whose StringView
pointed inside this new string. Then, the string would be destroyed because it
was on the stack.

Luckily, this is benign because this new string would always share a
StringImpl with the string passed into the function (and the StringView
would point into this StringImpl). However, relying on this is dangerous
and we are trying to enforce StringView lifetime checks in
https://bugs.webkit.org/show_bug.cgi?id=160384.

The solution is to make a helper function which returns this built string
so that the caller can own this built string, thereby extending its lifetime.
Unfortunately, this built string can't be a StringView because the same
mechanism must be used for text-combine, which returns originalText(), which
may return a built string if it is a RenderCounter. Perhaps it would be
valuable to migrate RenderCounter::originalText() to something else, or to
divorce text-combine from originalText(), but that is out of scope for this
patch. Similarly, hyphenation uses this same mechanism, but because the
hyphenated string needs to be created, we must own the string storage (so
StringView is incorrect here).

Another reason is for performance: StringView::substring() is faster to use
than String::substringSharingImpl(), since it does not allocate and destroy a
StringImpl on the heap. This patch migrates away from
String::substringSharingImpl() and onto StringView::substring().

No new tests because there is no behavior change.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::hyphenatedStringForTextRun):
(WebCore::InlineTextBox::constructTextRun):
* rendering/InlineTextBox.h:
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::maybeGetCombinedStringForRendering):
(WebCore::RenderCombineText::getStringToRender): Deleted.
* rendering/RenderCombineText.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204276 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoSome EWS console logs doesn't go to log file
aakash_jain@apple.com [Tue, 9 Aug 2016 01:17:52 +0000 (01:17 +0000)]
Some EWS console logs doesn't go to log file
https://bugs.webkit.org/show_bug.cgi?id=160585
rdar://problem/24464570

Reviewed by Daniel Bates.

* Scripts/webkitpy/common/system/logutils.py:
(FileSystemHandler._open): Ensure that we open logfile in append mode in order to avoid
any possible overwriting.
* Scripts/webkitpy/common/system/filesystem.py:
(FileSystem.open_text_file_for_writing): Add should_append parameter to append to file.
* Scripts/webkitpy/common/system/filesystem_mock.py:
(MockFileSystem.open_text_file_for_writing): Same.
* Scripts/webkitpy/common/system/filesystem_unittest.py:
(RealFileSystemTest.test_read_and_write_text_file): Removed unused variable 'hex_equivalent'.
(RealFileSystemTest.test_append_to_text_file): Added new unit test for testing append functionality.
* Scripts/webkitpy/tool/commands/queues.py:
(AbstractQueue.begin_work_queue): Configure the logger for overall webkitpy to log to file.
This will ensure that all the sub-modules inside webkitpy will log to file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204275 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoClear fullscreen mode state after exiting fullscreen mode to keep state in sync.
commit-queue@webkit.org [Tue, 9 Aug 2016 01:06:50 +0000 (01:06 +0000)]
Clear fullscreen mode state after exiting fullscreen mode to keep state in sync.
https://bugs.webkit.org/show_bug.cgi?id=160668

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-08-08
Reviewed by Jon Lee.

When exiting fullscreen while in auto picture in picture mode, fullscreen mode gets
out of sync, causing exit fullscreen to fail. This change updates the state
to keep it correct.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204274 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Web IDL] We should resolve typedefs for dictionary members
cdumez@apple.com [Tue, 9 Aug 2016 00:52:13 +0000 (00:52 +0000)]
[Web IDL] We should resolve typedefs for dictionary members
https://bugs.webkit.org/show_bug.cgi?id=160675

Reviewed by Sam Weinig.

Resolve typedefs for dictionary member types.

Added bindings test coverage.

* bindings/scripts/IDLParser.pm:
(applyTypedefs):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convert<TestObj::Dictionary>):
* bindings/scripts/test/TestObj.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204273 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUpdate test expectations for rdar://problem/27711048.
ryanhaddad@apple.com [Tue, 9 Aug 2016 00:48:42 +0000 (00:48 +0000)]
Update test expectations for rdar://problem/27711048.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204272 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoHave the iOS platform interit from the Apple platform in webkitpy
simon.fraser@apple.com [Tue, 9 Aug 2016 00:22:06 +0000 (00:22 +0000)]
Have the iOS platform interit from the Apple platform in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=160672

Reviewed by Dan Bates.

The IOSSimulatorPort used to inherit from Port, rather than ApplePort.
Fix this, and move duplicated code from IOSSimulatorPort and MacPort into
ApplePort.

Since WinPort also inherits from ApplePort, it needs to stub out some things
that are unavailable on Windows (leaks, sampling).

Some SnowLeopard-related code and the associated test were removed.

* Scripts/webkitpy/port/apple.py:
(ApplePort.__init__):
(ApplePort):
(ApplePort._make_leak_detector):
(ApplePort.default_timeout_ms):
(ApplePort.supports_per_test_timeout):
(ApplePort.should_retry_crashes):
(ApplePort._generate_all_test_configurations):
(ApplePort.check_for_leaks):
(ApplePort.print_leaks_summary):
(ApplePort._path_to_webcore_library):
(ApplePort.show_results_html_file):
(ApplePort._merge_crash_logs):
(ApplePort._look_for_all_crash_logs_in_log_dir):
(ApplePort._get_crash_log):
(ApplePort.look_for_new_crash_logs):
(ApplePort.sample_process):
(ApplePort.sample_file_path):
(ApplePort.look_for_new_samples):
(ApplePort._path_to_helper):
(ApplePort.determine_full_port_name): Deleted.
* Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort):
(IOSSimulatorPort.__init__):
(IOSSimulatorPort.default_timeout_ms): Deleted.
(IOSSimulatorPort.supports_per_test_timeout): Deleted.
(IOSSimulatorPort.should_retry_crashes): Deleted.
(IOSSimulatorPort.check_for_leaks): Deleted.
(IOSSimulatorPort.print_leaks_summary): Deleted.
(IOSSimulatorPort._path_to_webcore_library): Deleted.
(IOSSimulatorPort.show_results_html_file): Deleted.
(IOSSimulatorPort.sample_file_path): Deleted.
(IOSSimulatorPort._merge_crash_logs): Deleted.
(IOSSimulatorPort._look_for_all_crash_logs_in_log_dir): Deleted.
(IOSSimulatorPort.look_for_new_crash_logs): Deleted.
(IOSSimulatorPort.look_for_new_samples): Deleted.
(IOSSimulatorPort.sample_process): Deleted.
(IOSSimulatorPort._path_to_helper): Deleted.
(IOSSimulatorPort.make_command): Deleted.
* Scripts/webkitpy/port/mac.py:
(MacPort.__init__):
(MacPort.make_command):
(MacPort._build_java_test_support):
(MacPort): Deleted.
(MacPort.default_timeout_ms): Deleted.
(MacPort.supports_per_test_timeout): Deleted.
(MacPort.should_retry_crashes): Deleted.
(MacPort.default_child_processes): Deleted.
(MacPort.check_for_leaks): Deleted.
(MacPort.print_leaks_summary): Deleted.
(MacPort._path_to_webcore_library): Deleted.
(MacPort.show_results_html_file): Deleted.
(MacPort.sample_file_path): Deleted.
(MacPort._merge_crash_logs): Deleted.
(MacPort._look_for_all_crash_logs_in_log_dir): Deleted.
(MacPort.look_for_new_crash_logs): Deleted.
(MacPort.look_for_new_samples): Deleted.
(MacPort.sample_process): Deleted.
(MacPort._path_to_helper): Deleted.
* Scripts/webkitpy/port/mac_unittest.py:
(MacTest.test_default_child_processes): Deleted.
* Scripts/webkitpy/port/win.py:
(WinPort.look_for_new_samples):
(WinPort):
(WinPort.sample_process):
(WinPort._make_leak_detector):
(WinPort.check_for_leaks):
(WinPort.print_leaks_summary):
(WinPort._path_to_webcore_library):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204271 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoFix the Windows build.
andersca@apple.com [Tue, 9 Aug 2016 00:08:28 +0000 (00:08 +0000)]
Fix the Windows build.

* plugins/PluginInfoProvider.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204270 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAdd a new PluginInfoProvider class, to replace PluginStrategy
andersca@apple.com [Mon, 8 Aug 2016 23:43:50 +0000 (23:43 +0000)]
Add a new PluginInfoProvider class, to replace PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=160670

Reviewed by Sam Weinig.

Source/WebCore:

Add a per page PluginInfoProvider class that's going to ultimately replace the plug-in strategy.

* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::refreshPlugins):
(WebCore::Page::pluginData):
(WebCore::Page::pluginInfoProvider):
* page/Page.h:
* page/PageConfiguration.cpp:
* page/PageConfiguration.h:
* plugins/DOMPluginArray.cpp:
(WebCore::DOMPluginArray::refresh):
* plugins/DOMPluginArray.h:
* plugins/PluginData.cpp:
(WebCore::PluginData::PluginData):
(WebCore::PluginData::webVisiblePlugins):
(WebCore::PluginData::publiclyVisiblePlugins):
(WebCore::PluginData::initPlugins):
(WebCore::PluginData::refresh): Deleted.
* plugins/PluginData.h:
(WebCore::PluginData::create):
(WebCore::PluginData::PluginData): Deleted.
* plugins/PluginInfoProvider.cpp: Added.
(WebCore::PluginInfoProvider::~PluginInfoProvider):
(WebCore::PluginInfoProvider::addPage):
(WebCore::PluginInfoProvider::removePage):
* plugins/PluginInfoProvider.h: Added.
* replay/SerializationMethods.cpp:
(JSC::EncodingTraits<PluginData>::decodeValue):
(JSC::DeserializedPluginData::DeserializedPluginData): Deleted.

Source/WebKit:

Add new files.

* PlatformWin.cmake:
* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.

* WebCoreSupport/WebPluginInfoProvider.h: Added.
* WebCoreSupport/WebPluginInfoProvider.mm: Added.
(WebPluginInfoProvider::singleton):
(WebPluginInfoProvider::WebPluginInfoProvider):
(WebPluginInfoProvider::~WebPluginInfoProvider):
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebPluginInfoProvider::clearPluginClientPolicies):
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit/win:

Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.

* WebCoreSupport/WebPluginInfoProvider.cpp: Added.
(WebPluginInfoProvider::singleton):
(WebPluginInfoProvider::WebPluginInfoProvider):
(WebPluginInfoProvider::~WebPluginInfoProvider):
(WebPluginInfoProvider::refreshPlugins):
(WebPluginInfoProvider::getPluginInfo):
(WebPluginInfoProvider::getWebVisiblePluginInfo):
* WebCoreSupport/WebPluginInfoProvider.h: Added.

Source/WebKit2:

Add a new WebPluginInfoProvider - it just calls through to the plug-in strategy for now.

* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Plugins/WebPluginInfoProvider.cpp: Added.
(WebKit::WebPluginInfoProvider::singleton):
(WebKit::WebPluginInfoProvider::WebPluginInfoProvider):
(WebKit::WebPluginInfoProvider::~WebPluginInfoProvider):
(WebKit::WebPluginInfoProvider::refreshPlugins):
(WebKit::WebPluginInfoProvider::getPluginInfo):
(WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy):
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies):
* WebProcess/Plugins/WebPluginInfoProvider.h: Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204268 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoPopups opened from a sandboxed iframe should themselves be sandboxed
wilander@apple.com [Mon, 8 Aug 2016 21:43:36 +0000 (21:43 +0000)]
Popups opened from a sandboxed iframe should themselves be sandboxed
https://bugs.webkit.org/show_bug.cgi?id=134850
<rdar://problem/27375388>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
    Now copies the opener's frame loader effective sandbox flags to the
    new frame loader.

LayoutTests:

* http/tests/security/resources/anchor-tag-with-blank-target.html: Added.
* http/tests/security/resources/page-executing-javascript.html: Added.
* http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox-expected.txt: Added.
* http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204266 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed: moved myself to the reviewers list.
mattbaker@apple.com [Mon, 8 Aug 2016 21:41:52 +0000 (21:41 +0000)]
Unreviewed: moved myself to the reviewers list.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204265 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWeb Inspector: Popover for Color Picker should update position when window resizes
joepeck@webkit.org [Mon, 8 Aug 2016 20:56:35 +0000 (20:56 +0000)]
Web Inspector: Popover for Color Picker should update position when window resizes
https://bugs.webkit.org/show_bug.cgi?id=160321

Reviewed by Brian Burg.

* UserInterface/Views/Popover.js:
(WebInspector.Popover):
(WebInspector.Popover.prototype.set windowResizeHandler):
(WebInspector.Popover.prototype.dismiss):
(WebInspector.Popover.prototype.handleEvent):
(WebInspector.Popover.prototype._addListenersIfNeeded):
The popover already has a set of window listeners, add "resize" to
the list. If there is a resize, invoke a resize handler. The resize
handler will only be called while the popover is visible.

* UserInterface/Views/HeapSnapshotDataGridTree.js:
(WebInspector.HeapSnapshotDataGridTree):
(WebInspector.HeapSnapshotDataGridTree.prototype.get visible):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popoverNode):
(WebInspector.HeapSnapshotDataGridTree.prototype.set popoverNode):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popoverTargetElement):
(WebInspector.HeapSnapshotDataGridTree.prototype.set popoverTargetElement):
(WebInspector.HeapSnapshotDataGridTree.prototype.get popover):
(WebInspector.HeapSnapshotDataGridTree.prototype.willDismissPopover):
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
Update heap snapshot popovers to reposition on window resize.
Set a target to reposition around, since the popover is shared.

* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
Update probe expression popover to respect window resizes.

* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor.prototype._showPropertyInfoPopover):
Though not yet visible, update this to respect window resizes.

* UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch.prototype._swatchElementClicked):
Add a window resize handler to reposition over the swatch element.

* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._updatePopoverForSelectedNode):
(WebInspector.LayerTreeDetailsSidebarPanel): Deleted.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._windowResized): Deleted.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
(WebInspector.TimelineDataGrid): Deleted.
(WebInspector.TimelineDataGrid.prototype.closed): Deleted.
(WebInspector.TimelineDataGrid.prototype.handleEvent): Deleted.
(WebInspector.TimelineDataGrid.prototype._windowResized): Deleted.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover): Deleted.
Replace custom popover repositioning with standard Popover handling.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204264 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAlign Selection API with the specification
cdumez@apple.com [Mon, 8 Aug 2016 20:30:29 +0000 (20:30 +0000)]
Align Selection API with the specification
https://bugs.webkit.org/show_bug.cgi?id=160663

Reviewed by Ryosuke Niwa.

Source/WebCore:

Align Selection API with the specification:
- https://www.w3.org/TR/selection-api/#idl-def-Selection

In particular, the following changes were made:
- Mark parameters as non-nullable when they should be.
- Mark parameters as mandatory when they should be.
- Use "unsigned long" type for offsets instead of "long".

This aligns our behavior with Firefox and Chrome.

Note that the Node parameters to setBaseAndExtent() operation were kept
nullable, which does not match the specification. This is intentional
as I worry about compatibility risk, especially considering they are
still nullable in Chrome. Only Firefox marks them as non-nullable.

Test: editing/selection/bad-input.html

* dom/Position.h:
(WebCore::Position::LegacyEditingOffset::value):
(WebCore::Position::LegacyEditingOffset::LegacyEditingOffset):
(WebCore::createLegacyEditingPosition):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::anchorOffset):
(WebCore::DOMSelection::focusOffset):
(WebCore::DOMSelection::baseOffset):
(WebCore::DOMSelection::extentOffset):
(WebCore::DOMSelection::rangeCount):
(WebCore::DOMSelection::collapse):
(WebCore::DOMSelection::setBaseAndExtent):
(WebCore::DOMSelection::setPosition):
(WebCore::DOMSelection::extend):
(WebCore::DOMSelection::getRangeAt):
(WebCore::DOMSelection::addRange):
(WebCore::DOMSelection::deleteFromDocument):
(WebCore::DOMSelection::containsNode):
(WebCore::DOMSelection::selectAllChildren):
(WebCore::DOMSelection::shadowAdjustedOffset):
(WebCore::DOMSelection::modify): Deleted.
(WebCore::DOMSelection::shadowAdjustedNode): Deleted.
(WebCore::DOMSelection::isValidForPosition): Deleted.
* page/DOMSelection.h:
* page/DOMSelection.idl:

LayoutTests:

* editing/selection/bad-input-expected.txt: Added.
* editing/selection/bad-input.html: Added.
Add new layout test to cover passing bad input to the Selection API.
This new test is passing completely in Firefox and Chrome.

* editing/execCommand/apply-style-text-decoration-crash.html:
* editing/execCommand/applyblockelement-visiblepositionforindex-crash.html:
* editing/execCommand/ident-crashes-topnode-is-text.html:
* editing/execCommand/indent-pre-expected.txt:
* editing/execCommand/indent-pre.html:
* editing/execCommand/overtype.html:
* editing/selection/containsNode-expected.txt:
* editing/selection/containsNode.html:
* editing/selection/move-by-line-003.html:
* editing/selection/script-tests/DOMSelection-DocumentType.js:
* editing/selection/script-tests/DOMSelection-crossing-document.js:
(clear):
* editing/selection/selection-invalid-offset-expected.txt:
* fast/block/float/float-list-changed-before-layout-crash.html:
* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
* fast/events/selectstart-by-arrow-keys.html:
* fast/html/nav-element.html:
* fast/html/script-tests/article-element.js:
* fast/html/script-tests/aside-element.js:
* fast/html/script-tests/footer-element.js:
* fast/html/script-tests/header-element.js:
* fast/html/script-tests/hgroup-element.js:
* fast/html/script-tests/main-element.js:
* fast/html/script-tests/section-element.js:
* imported/blink/accessibility/event-on-deleted-iframe-causes-crash.html:
* imported/blink/editing/apply-inline-style-to-element-with-no-renderer-crash.html:
* svg/custom/unicode-in-tspan-multi-svg-crash.html:
Update existing tests to use the Selection API properly.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204263 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoRegression(r204239): Caused flaky crashes under ~Database()
cdumez@apple.com [Mon, 8 Aug 2016 19:39:36 +0000 (19:39 +0000)]
Regression(r204239): Caused flaky crashes under ~Database()
https://bugs.webkit.org/show_bug.cgi?id=160665
<rdar://problem/27748065>

Reviewed by Brady Eidson.

Make sure the scriptExecution context only gets ref'd / deref'd
on the context thread. Document / WorkerGlobalScope are not
ThreadSafeRefCounted.

No new tests, already covered by:
storage/websql/open-database-creation-callback.html

* Modules/webdatabase/Database.cpp:
(WebCore::Database::~Database):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204262 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
mark.lam@apple.com [Mon, 8 Aug 2016 18:56:54 +0000 (18:56 +0000)]
ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=160666

Reviewed by Keith Miller.

JSTests:

* stress/object-constructor-should-be-new-target-aware.js:

Source/JavaScriptCore:

This assertion is benign.  JSFinalObject::visitChildren() calls
JSObject::inlineStorage() to get a pointer to the object's inline storage, and
later passes it to visitor.appendValuesHidden() with a previously computed
storageSize.  When storageSize is 0, appendValuesHidden() ends up doing nothing.
However, before we get there, JSObject::inlineStorage() will be asserting
hasInlineStorage() and this assertion will fail when storageSize is 0.

We can fix this assertion failure by simply adding a storageSize check before
calling hasInlineStorage() and visitor.appendValuesHidden().

* runtime/JSObject.cpp:
(JSC::JSFinalObject::visitChildren):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204261 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDon't set document.domain to an IP address fragment
wilander@apple.com [Mon, 8 Aug 2016 18:38:29 +0000 (18:38 +0000)]
Don't set document.domain to an IP address fragment
https://bugs.webkit.org/show_bug.cgi?id=126045
<rdar://problem/27331794>

Reviewed by Daniel Bates.

Source/WebCore:

This patch matches the following Blink one:
https://chromium.googlesource.com/chromium/blink//b19a57fdb323d5a80d3a1cb0a6b343558c4237b0

IP address octets should not be treated as subdomains when setting
document.domain. The specs say:
'The domain attribute's setter must run these steps: ...
7. If host is not equal to effectiveDomain, then run these substeps:
    1. If host or effectiveDomain is not a domain, then throw a
    "SecurityError" DOMException.'
https://html.spec.whatwg.org/multipage/browsers.html#relaxing-the-same-origin-restriction
Last Updated 5 August 2016

'A host is a domain, an IPv4 address, or an IPv6 address.'
https://url.spec.whatwg.org/#concept-domain
Last Updated 28 July 2016

Test: http/tests/security/set-domain-remove-subdomain-for-ip-address.html

* dom/Document.cpp:
(WebCore::Document::setDomain):
    Now checks whether the security origin is allowed to remove
    subdomains. If not, it throws a security error.
* page/OriginAccessEntry.cpp:
(WebCore::OriginAccessEntry::OriginAccessEntry):
    Constructor now expects an IP address setting.
(WebCore::OriginAccessEntry::matchesOrigin):
    Now also checks whether the host in an IP address and returns
    false if IP addresses aren't configured to be treated as domains.
* page/OriginAccessEntry.h:
    Introduced new enum for IP address setting.
    Constructor now expects an IP address setting.
(WebCore::OriginAccessEntry::ipAddressSettings):
    New getter.
(WebCore::operator==):
    Now also requires IP address settings to match.
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
    Changes to match OriginAccessEntry's new constructor.
(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
    Changes to match OriginAccessEntry's new constructor.
* page/Settings.in:
    Added a setting to allow IP address octets to be treated as
    subdomains. This way our existing tests setting document.domain
    still work.

LayoutTests:

IP address octets should not be treated as subdomains when setting document.domain.

* http/tests/security/aboutBlank/security-context-alias.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/security/aboutBlank/security-context-grandchildren-alias.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/security/postMessage/origin-unaffected-by-document-domain.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/security/set-domain-remove-subdomain-for-ip-address-expected.txt: Added.
* http/tests/security/set-domain-remove-subdomain-for-ip-address.html: Added.
* http/tests/security/setDomainRelaxationForbiddenForURLScheme.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/workers/worker-document-domain-security.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/xmlhttprequest/document-domain-set.html:
    Now enables the new setting treatIPAddressesAsDomains.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204260 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoRemove more unused bindings code
andersca@apple.com [Mon, 8 Aug 2016 17:54:46 +0000 (17:54 +0000)]
Remove more unused bindings code
https://bugs.webkit.org/show_bug.cgi?id=160568

Reviewed by Sam Weinig.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMDocument.mm:
(-[DOMDocument execCommand:userInterface:]):
(-[DOMDocument execCommand:]):
(-[DOMDocument getMatchedCSSRules:pseudoElement:]):
* bindings/objc/DOMHTMLBaseFontElement.mm:
* bindings/objc/DOMHTMLCollection.mm:
(-[DOMHTMLCollection tags:]):
* bindings/objc/DOMWheelEvent.mm:
(-[DOMWheelEvent isHorizontal]):
* css/RGBColor.idl:
* dom/Attr.idl:
* dom/DOMImplementation.idl:
* dom/Document.h:
* dom/Document.idl:
* dom/Element.idl:
* dom/EventException.h: Removed.
(WebCore::EventException::EventException): Deleted.
* dom/EventException.idl: Removed.
* dom/KeyboardEvent.idl:
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::messagePort): Deleted.
(WebCore::MessageEvent::initMessageEvent): Deleted.
* dom/MessageEvent.h:
* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage): Deleted.
* dom/MessagePort.h:
* dom/Node.idl:
* dom/NodeFilter.idl:
* dom/OverflowEvent.idl:
* dom/WheelEvent.h:
* dom/WheelEvent.idl:
* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::tags):
* html/HTMLAllCollection.h:
* html/HTMLAnchorElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBaseFontElement.cpp: Removed.
(WebCore::HTMLBaseFontElement::HTMLBaseFontElement): Deleted.
* html/HTMLBaseFontElement.h: Removed.
* html/HTMLBaseFontElement.idl: Removed.
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::tags): Deleted.
* html/HTMLCollection.h:
* html/HTMLCollection.idl:
* html/HTMLElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLHyperlinkElementUtils.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLSelectElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTextAreaElement.idl:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage): Deleted.
* page/DOMWindow.h:
* workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage): Deleted.
* workers/DedicatedWorkerGlobalScope.h:
* workers/Worker.cpp:
(WebCore::Worker::postMessage): Deleted.
* workers/Worker.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204259 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoLand test expectations for rdar://problem/27711048.
ryanhaddad@apple.com [Mon, 8 Aug 2016 17:26:59 +0000 (17:26 +0000)]
Land test expectations for rdar://problem/27711048.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204258 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAddressing late review feedback in bug 160605
beidson@apple.com [Mon, 8 Aug 2016 17:25:59 +0000 (17:25 +0000)]
Addressing late review feedback in bug 160605
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Darin's suggestions.

Source/WebCore:

* Modules/gamepad/GamepadManager.cpp:
(WebCore::GamepadManager::maybeStartMonitoringGamepads):
(WebCore::GamepadManager::maybeStopMonitoringGamepads):

* platform/gamepad/EmptyGamepadProvider.cpp:
(WebCore::EmptyGamepadProvider::startMonitoringGamepads):
(WebCore::EmptyGamepadProvider::stopMonitoringGamepads):
* platform/gamepad/EmptyGamepadProvider.h:

* platform/gamepad/GamepadProvider.h:

* platform/gamepad/mac/HIDGamepadProvider.cpp:
(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):
* platform/gamepad/mac/HIDGamepadProvider.h:
(WebCore::HIDGamepadProvider::platformGamepads): Deleted.

Source/WebKit2:

* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
* UIProcess/Gamepad/UIGamepadProvider.h:

* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):
* UIProcess/WebProcessPool.h:

* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204257 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUpdate API tests in mac/SetDocumentURI.mm after r204247
cdumez@apple.com [Mon, 8 Aug 2016 17:24:18 +0000 (17:24 +0000)]
Update API tests in mac/SetDocumentURI.mm after r204247
https://bugs.webkit.org/show_bug.cgi?id=160660

Reviewed by Alex Christensen.

* TestWebKitAPI/Tests/mac/SetDocumentURI.mm:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204256 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWeb Inspector: clean up prefixing of Automation protocol generated files
bburg@apple.com [Mon, 8 Aug 2016 16:43:39 +0000 (16:43 +0000)]
Web Inspector: clean up prefixing of Automation protocol generated files
https://bugs.webkit.org/show_bug.cgi?id=160635
<rdar://problem/27735327>

Reviewed by Timothy Hatcher.

Introduce different settings for the 'protocol group' name for C++ vs. Objective-C.

Use 'WD' as the prefix for generated Objective-C frontend dispatchers and helpers.
Continue using 'Automation' as the prefix for generated C++ backend dispatchers.

* inspector/scripts/codegen/cpp_generator.py:
(CppGenerator.protocol_name):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
(ObjCProtocolTypeConversionsImplementationGenerator.generate_output):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
Adjust the class name. Generate one category per protocol domain to keep it easy to read.

* inspector/scripts/codegen/models.py:
* inspector/scripts/codegen/objc_generator.py:
(ObjCGenerator.protocol_name):

* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
* inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
* inspector/scripts/tests/expected/enum-values.json-result:
* inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
* inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
* inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
* inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
* inspector/scripts/tests/expected/type-declaration-array-type.json-result:
* inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
* inspector/scripts/tests/expected/type-declaration-object-type.json-result:
* inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
Rebaseline test results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204255 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoIt should be possible to re-initialize an Event after it's been dispatched
cdumez@apple.com [Mon, 8 Aug 2016 16:35:30 +0000 (16:35 +0000)]
It should be possible to re-initialize an Event after it's been dispatched
https://bugs.webkit.org/show_bug.cgi?id=160651

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/events/Event-propagation-expected.txt:

Source/WebCore:

Allow re-initialization of an Event that's already been dispatched, as
per the latest DOM specification:
- https://dom.spec.whatwg.org/#dom-event-initevent

Firefox already follows the specification here.

No new tests, rebaselined existing test.

Test: fast/events/initEvent-after-dispatch.html

* dom/Event.cpp:
(WebCore::Event::initEvent):
- Replace dispatched() check with isBeingDispatched() in order to
  allow initialization of an already dispatched event but prevent
  initialization of an event that is currently being dispatched
  as per:
  https://dom.spec.whatwg.org/#dom-event-initevent (step 1)
- Reset target to null as per:
  https://dom.spec.whatwg.org/#concept-event-initialize (step 4)

LayoutTests:

Add layout test coverage.

* fast/events/initEvent-after-dispatch-expected.txt: Added.
* fast/events/initEvent-after-dispatch.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204254 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agorun-webkit-tests should trigger a spindump when WebContent process is unresponsive
commit-queue@webkit.org [Mon, 8 Aug 2016 16:18:33 +0000 (16:18 +0000)]
run-webkit-tests should trigger a spindump when WebContent process is unresponsive
https://bugs.webkit.org/show_bug.cgi?id=159827

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-08-08
Reviewed by Daniel Bates.

This change was spurred by a process hang which occurred between tests and did
not produce a meaningful crashlog.

* Scripts/webkitpy/port/driver.py:
(Driver._check_for_driver_crash_or_unresponsiveness): Notify test controller when finished through stdin.

 * Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort):
(IOSSimulatorPort.sample_process): Attempt spindump, but use sample if spindump fails.
* Scripts/webkitpy/port/mac.py:
(MacPort):
(MacPort.sample_process): Attempt spindump, but use sample if spindump fails.

* Scripts/webkitpy/port/mac_unittest.py: Changed expected values to match spindump calls, added specific spindump test.
* Scripts/webkitpy/port/driver_unittest.py: Added dummy write function.

* WebKitTestRunner/TestController.h:
(WTR::TestController::usingServerMode): Added accessor for m_usingServerMode.
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::dumpWebProcessUnresponsiveness): Wait for stdin before continuing when in server mode.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204253 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed. Fix GObject DOM bindings API break after r204236.
carlosgc@webkit.org [Mon, 8 Aug 2016 06:05:47 +0000 (06:05 +0000)]
Unreviewed. Fix GObject DOM bindings API break after r204236.

Text.replaceWholeText was removed from DOM API.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_text_replace_whole_text):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204252 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed. Fix GObject DOM bindings API break after r204113.
carlosgc@webkit.org [Mon, 8 Aug 2016 05:54:25 +0000 (05:54 +0000)]
Unreviewed. Fix GObject DOM bindings API break after r204113.

Document.defaultCharset was removed from DOM API.

* bindings/gobject/WebKitDOMDeprecated.cpp:
(webkit_dom_document_get_default_charset):
* bindings/gobject/WebKitDOMDeprecated.h:
* bindings/gobject/WebKitDOMDeprecated.symbols:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204251 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[GTK] Bad performance in accelerated compositing mode with the modesetting intel...
carlosgc@webkit.org [Mon, 8 Aug 2016 05:40:50 +0000 (05:40 +0000)]
[GTK] Bad performance in accelerated compositing mode with the modesetting intel driver and DRI3 enabled
https://bugs.webkit.org/show_bug.cgi?id=160491

Reviewed by Michael Catanzaro.

This is becoming the default in several linux distributions and it makes WebKitGTK+ unusable in accelerated
compositing mode, which is now always enabled because since we switched to use the threaded compositor. The
problem seems to be an optimization of the intel driver for windows that are offscreen, and our redirected
window is always positioned at ScreenWidth + 1, 0. Using negative coordinates to position the redirected window
offscreen fixes the problem.
See also https://bugs.freedesktop.org/show_bug.cgi?id=85064.

* WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Position the parent window at -1, -1.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204250 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDuplicated code in DrawingAreaProxyImpl and CoordinatedDrawingAreaProxy
carlosgc@webkit.org [Mon, 8 Aug 2016 05:38:27 +0000 (05:38 +0000)]
Duplicated code in DrawingAreaProxyImpl and CoordinatedDrawingAreaProxy
https://bugs.webkit.org/show_bug.cgi?id=160506

Reviewed by Michael Catanzaro.

Same logic as in r202855 but in the UI process. CoordinatedDrawingAreaProxy is just a copy paste of
DrawingAreaProxyImpl with non-accelerated code path removed. There's actually nothing (or very little) specific
to coordinated graphics in the CoordinatedDrawingAreaProxy implementation. This patch renames
CoordinatedDrawingAreaProxy as AcceleratedDrawingAreaProxy and makes DrawingAreaProxyImpl inherit from it, so
that in case of accelerated compositing the parent class is used, and DrawingAreaProxyImpl only adds the non
accelerated code path.
To simplify the common API of AcceleratedDrawingAreaProxy, I have changed CoordinatedLayerTreeHostProxy to
receive a WebPageProxy in the constructor instead of a drawing area, since the drawing area was used just to get
the page proxy.

* PlatformEfl.cmake:
* PlatformGTK.cmake:
* UIProcess/AcceleratedDrawingAreaProxy.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp.
(WebKit::AcceleratedDrawingAreaProxy::AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::~AcceleratedDrawingAreaProxy):
(WebKit::AcceleratedDrawingAreaProxy::alwaysUseCompositing):
(WebKit::AcceleratedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
(WebKit::AcceleratedDrawingAreaProxy::sizeDidChange):
(WebKit::AcceleratedDrawingAreaProxy::deviceScaleFactorDidChange):
(WebKit::AcceleratedDrawingAreaProxy::visibilityDidChange):
(WebKit::AcceleratedDrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint):
(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::exitAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::updateAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::backingStoreStateDidChange):
(WebKit::AcceleratedDrawingAreaProxy::sendUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingAreaProxy::setNativeSurfaceHandleForCompositing):
(WebKit::AcceleratedDrawingAreaProxy::destroyNativeSurfaceHandleForCompositing):
* UIProcess/AcceleratedDrawingAreaProxy.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h.
(WebKit::AcceleratedDrawingAreaProxy::isInAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingAreaProxy::coordinatedLayerTreeHostProxy):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
(WebKit::CoordinatedLayerTreeHostProxy::updateViewport):
(WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
(WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHostProxy::renderNextFrame):
(WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::syncVisibleContents):
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
(WebKit::DrawingAreaProxyImpl::paint):
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl): Deleted.
(WebKit::DrawingAreaProxyImpl::update): Deleted.
(WebKit::DrawingAreaProxyImpl::incorporateUpdate): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): Deleted.
(WebKit::DrawingAreaProxyImpl::discardBackingStore): Deleted.
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::setVisible):
(WebKit::WebView::coordinatedGraphicsScene):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::createDrawingAreaProxy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204249 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[ES6] Module namespace object should not allow unset IC
utatane.tea@gmail.com [Mon, 8 Aug 2016 02:48:56 +0000 (02:48 +0000)]
[ES6] Module namespace object should not allow unset IC
https://bugs.webkit.org/show_bug.cgi?id=160553

Reviewed by Saam Barati.

JSTests:

* modules/namespace-object-get-property.js: Added.
(import.as.ns.from.string_appeared_here.shouldThrow):
* modules/namespace-object-has-property.js: Added.
* modules/namespace-object-inline-caching.js: Added.
(import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
(shouldBe.lookup.lookup):
(shouldBe.lookup):
* modules/namespace-object-inline-caching/a.js: Added.
* modules/namespace-object-inline-caching/b.js: Added.
* modules/namespace-object-try-get.js: Added.
(import.as.ns.from.string_appeared_here.tryGetByIdText):
(tryGetByIdTextStrict):
* modules/namespace-object-typed-array-fast-path.js: Added.
* test262.yaml:

Source/JavaScriptCore:

Previously, module namespace object accidentally allow "unset IC". But this "unsetness" does not rely on
the structure. We should disable inline caching onto the namespace object. Once it is needed, we should
create the special caching for namespace object like the following: it should be similar to monomorphic IC,
but it caches the object itself instead of the structure. It checks the object itself (And in DFG, it should be
CheckCell) and loads the value from the target module environment directly[1].

And this patch also set setIsTaintedByProxy for the module namespace object to notify to the caller that
this object has impure ::getOwnPropertySlot. Then this function is now renamed to setIsTaintedByOpaqueObject.

We drop the hack in JSModuleNamespaceObject::getOwnPropertySlot since we already introduced InternalMethodType
for ProxyObject. Previously we cannot distinguish ::HasProperty and ::GetOwnProperty. So not to throw any
errors for ::HasProperty case, we used slot.setCustom to delay the observable operation.
But, this hack lacks the support for hasOwnProperty: hasOwnProperty uses [[GetOwnProperty]], so it should throw an error.
However the previous implementation does not throw an error since the delayed observable part (custom function part) is
skipped in hasOwnProperty implementation. We now remove this custom property hack and fix the corresponding failure
in test262.

[1]: https://bugs.webkit.org/show_bug.cgi?id=160590

* jit/JITOperations.cpp:
* runtime/ArrayPrototype.cpp:
(JSC::getProperty):
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
* runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::getOwnPropertySlot):
(JSC::callbackGetter): Deleted.
* runtime/JSModuleNamespaceObject.h:
* runtime/PropertySlot.cpp:
(JSC::PropertySlot::getPureResult):
* runtime/PropertySlot.h:
(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::setIsTaintedByOpaqueObject):
(JSC::PropertySlot::isTaintedByOpaqueObject):
(JSC::PropertySlot::setIsTaintedByProxy): Deleted.
(JSC::PropertySlot::isTaintedByProxy): Deleted.
* runtime/ProxyObject.cpp:
(JSC::ProxyObject::getOwnPropertySlotCommon):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204248 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoNode.baseURI should not be nullable
cdumez@apple.com [Mon, 8 Aug 2016 02:47:59 +0000 (02:47 +0000)]
Node.baseURI should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=160649

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/dom/interfaces-expected.txt:
Rebaseline now that one more check is passing.

* web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
Rebaseline now that the baseURI is "about:blank" instead of null. The check
is still failing. We are falling back to using the document's URL, as expected.
However, the document's URL should not be "about:blank" in this case, which is
why we are failing the previous check.

Source/WebCore:

Node.baseURI should not be nullable as per the latest DOM specification:
- https://dom.spec.whatwg.org/#dom-node-baseuri

It is not nullable in Firefox. It is supposed to fallback to using the
document's URL. The document's URL is "about:blank" by default so
baseURI() now returns "about:blank" in the internal URL is null,
similarly to what we do for Document.URL (c.g. urlForBindings()).

No new tests, rebaselined existing test.

* dom/Node.cpp:
(WebCore::Node::baseURI):
* dom/Node.h:
* dom/Node.idl:

LayoutTests:

Drop outdated DOM test.

* dom/xhtml/level3/core/nodegetbaseuri02-expected.txt: Removed.
* dom/xhtml/level3/core/nodegetbaseuri02.js: Removed.
* dom/xhtml/level3/core/nodegetbaseuri02.xhtml: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204247 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDrop SVGDocument as per the SVG2 specification
cdumez@apple.com [Mon, 8 Aug 2016 01:33:38 +0000 (01:33 +0000)]
Drop SVGDocument as per the SVG2 specification
https://bugs.webkit.org/show_bug.cgi?id=160361

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

Drop SVGDocument as per the SVG2 specification:
- https://www.w3.org/TR/SVG2/struct.html#InterfaceDocumentExtensions

SVGDocument has been merged into Document.

Chrome and Edge have dropped SVGDocument already, Firefox has not.

No new tests, rebaselined existing test.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::createNewDocumentWrapper): Deleted.
* bindings/js/JSXMLDocumentCustom.cpp:
(WebCore::toJSNewlyCreated):
(WebCore::toJS): Deleted.
* page/DOMWindow.idl:
* page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::rootElement):
(WebCore::SVGDocument::zoomAndPanEnabled):
(WebCore::SVGDocument::startPan):
(WebCore::SVGDocument::updatePan):
* svg/SVGDocument.h:
* svg/SVGDocument.idl:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::rootElement):

LayoutTests:

Update / rebaseline existing tests to reflect behavior change.

* platform/mac/svg/custom/dynamic-svg-document-creation-expected.txt:
* svg/custom/clone-node-expected.txt:
* svg/custom/clone-node.html:
* svg/custom/frame-getSVGDocument.html:
* svg/custom/global-constructors-expected.txt:
* svg/custom/manually-parsed-svg-allowed-in-dashboard-expected.txt:
* svg/custom/script-tests/global-constructors.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204246 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Cocoa] Reply block leaks if the remote object doesn’t call it
mitz@apple.com [Sun, 7 Aug 2016 20:50:43 +0000 (20:50 +0000)]
[Cocoa] Reply block leaks if the remote object doesn’t call it
https://bugs.webkit.org/show_bug.cgi?id=160642

Reviewed by Sam Weinig.

Source/WebKit2:

* Shared/API/Cocoa/RemoteObjectRegistry.h: Declared new member functions.
* Shared/API/Cocoa/RemoteObjectRegistry.messages.in: Added ReleaseUnusedReplyBlock message.
* Shared/API/Cocoa/RemoteObjectRegistry.mm:
(WebKit::RemoteObjectRegistry::sendUnusedReply): Send the ReleaseUnusedReplyBlock message.
(WebKit::RemoteObjectRegistry::releaseUnusedReplyBlock): Message receiver that call through
  to -_releaseReplyWithID:.

* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _invokeMethod:]): Define a ReplyBlockCallChecker object and
  capture an instance of it in the reply block we pass to the exported object. Have that
  block set a flag on the checker when it’s called. If the checker gets destroyed without
  the block having been called, which means that the block got destroyed without being
  called, call sendUnusedReply to let the other side know that the block will not be invoked.
(-[_WKRemoteObjectRegistry _releaseReplyWithID:]): Added. Removed the pending reply from the
  map, which release the block.
* Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h: Declared a new method.
* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:
(TEST): Added a test case that checks that the reply block is released even when it’s not
  called.
* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:
(-[RemoteObjectRegistryPlugIn doNotCallCompletionHandler:]): Implement new method by not
  calling the completion handler.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204245 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoREGRESSION (r201245): switching between Computed and Visual Styles panels causes...
mattbaker@apple.com [Sun, 7 Aug 2016 19:40:59 +0000 (19:40 +0000)]
REGRESSION (r201245): switching between Computed and Visual Styles panels causes internal error
https://bugs.webkit.org/show_bug.cgi?id=160604
<rdar://problem/27723416>

Reviewed by Timothy Hatcher.

* UserInterface/Views/StyleDetailsPanel.js:
(WebInspector.StyleDetailsPanel.prototype.shown):
Only perform a layout if needed. Subclasses access node style
data during layout, which may not exist yet.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204244 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWrite API test to cover crash fix in r204135
cdumez@apple.com [Sun, 7 Aug 2016 19:08:01 +0000 (19:08 +0000)]
Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::terminateProcess):
Stop calling resetStateAfterProcessExited() after calling
requestTermination() because requestTermination() now calls
didClose() which calls processDidCrash() which already calls
resetStateAfterProcessExited(). Because the processDidCrash()
delegates may start new loads, we really do not want to
reset the state again after calling the delegates.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
- Call didClose() in WebProcessProxy::requestTermination() so that
  the processDidCrash() delegates get called in API tests whenever
  a WebContent process is terminated to simulate a crash.
- Stop calling shutDown() and webConnection()->didClose() because
  didClose() already does this for us.

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

* TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:
(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204243 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUn-expose DOMSettableTokenList
cdumez@apple.com [Sun, 7 Aug 2016 17:14:54 +0000 (17:14 +0000)]
Un-expose DOMSettableTokenList
https://bugs.webkit.org/show_bug.cgi?id=160643

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Un-expose DOMSettableTokenList. We merged DOMSettableTokenList into
DOMTokenList a while back, as per the specification. At the time, we
kept DOMSettableTokenList on Window, as an alias to DOMTokenList.
However, Firefox and Chrome dropped DOMSettableTokenList completely.
We now do the same as other browsers.

No new tests, rebaselined existing test.

* page/DOMWindow.idl:

LayoutTests:

Update / rebaseline existing tests.

* fast/dom/HTMLLinkElement/sizes-setter-expected.txt:
* fast/dom/HTMLLinkElement/sizes-setter.html:
* fast/dom/HTMLOutputElement/dom-settable-token-list-expected.txt:
* fast/dom/HTMLOutputElement/script-tests/dom-settable-token-list.js:
* fast/frames/sandbox-attribute-expected.txt:
* fast/frames/sandbox-attribute.html:
* js/dom/global-constructors-attributes-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204242 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDocumentRuleSets::collectFeatures() should shrink-to-fit.
akling@apple.com [Sun, 7 Aug 2016 17:05:51 +0000 (17:05 +0000)]
DocumentRuleSets::collectFeatures() should shrink-to-fit.
<https://webkit.org/b/160646>

Reviewed by Darin Adler.

We forgot to shrink-wrap the RuleFeatureSet in DocumentRuleSets
after collecting the document-wide features.

* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::collectFeatures):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoLayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
commit-queue@webkit.org [Sun, 7 Aug 2016 07:40:41 +0000 (07:40 +0000)]
LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-07

* TestExpectations: Marking fetch-in-worker-crash.html as flaky

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204240 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoPurge all uses of PassRefPtr in WebCore/Modules
gyuyoung.kim@webkit.org [Sun, 7 Aug 2016 05:52:23 +0000 (05:52 +0000)]
Purge all uses of PassRefPtr in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=159965

Reviewed by Chris Dumez.

Final clean up in Modules directory.

No new tests, no behavior changes.

* Modules/gamepad/deprecated/GamepadList.cpp:
(WebCore::GamepadList::set):
* Modules/gamepad/deprecated/GamepadList.h:
* Modules/indexeddb/IDBGetResult.h:
(WebCore::IDBGetResult::IDBGetResult):
* Modules/indieui/UIRequestEvent.cpp:
(WebCore::UIRequestEvent::create):
(WebCore::UIRequestEvent::UIRequestEvent):
* Modules/indieui/UIRequestEvent.h:
(WebCore::UIRequestEvent::receiver):
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediasource/SampleMap.cpp:
(WebCore::SampleMap::addSample):
* Modules/mediasource/SampleMap.h:
(WebCore::SampleMap::addRange):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::textTrackAddCue):
(WebCore::SourceBuffer::textTrackRemoveCue):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediastream/CaptureDeviceManager.cpp:
(CaptureDeviceManager::bestSourcesForTypeAndConstraints):
* Modules/mediastream/CaptureDeviceManager.h:
* Modules/mediastream/MediaDevicesRequest.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/mediastream/MediaStreamTrackEvent.cpp:
(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):
(WebCore::MediaStreamTrackEvent::track):
* Modules/mediastream/MediaStreamTrackEvent.h:
* Modules/mediastream/MediaTrackConstraints.cpp:
(WebCore::MediaTrackConstraints::create):
(WebCore::MediaTrackConstraints::MediaTrackConstraints):
(WebCore::MediaTrackConstraints::optional):
* Modules/mediastream/MediaTrackConstraints.h:
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::create):
(WebCore::RTCDTMFSender::RTCDTMFSender):
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannelEvent.cpp:
(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::channel):
* Modules/mediastream/RTCDataChannelEvent.h:
* Modules/mediastream/RTCIceServer.h:
* Modules/mediastream/RTCStatsReport.h:
* Modules/mediastream/SourceInfo.cpp:
(WebCore::SourceInfo::create):
(WebCore::SourceInfo::SourceInfo):
* Modules/mediastream/SourceInfo.h:
* Modules/mediastream/UserMediaClient.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):
* Modules/mediastream/UserMediaRequest.h:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::~Database):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue):
* html/HTMLMediaElement.h:
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::textTrackAddCue):
(WebCore::HTMLTrackElement::textTrackRemoveCue):
* html/HTMLTrackElement.h:
* html/track/TextTrack.h:
* platform/graphics/SourceBufferPrivateClient.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
* platform/mediastream/MediaStreamCreationClient.h:
* platform/mediastream/mac/AVCaptureDeviceManager.h:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::didReceiveSample):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204239 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed, rolling out r204226.
cdumez@apple.com [Sun, 7 Aug 2016 04:21:37 +0000 (04:21 +0000)]
Unreviewed, rolling out r204226.

Broke some API tests

Reverted changeset:

"Write API test to cover crash fix in r204135"
https://bugs.webkit.org/show_bug.cgi?id=160587
http://trac.webkit.org/changeset/204226

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204238 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoa.replaceChild(a, a) should throw a HierarchyRequestError
cdumez@apple.com [Sun, 7 Aug 2016 03:22:57 +0000 (03:22 +0000)]
a.replaceChild(a, a) should throw a HierarchyRequestError
https://bugs.webkit.org/show_bug.cgi?id=160640

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:

Source/WebCore:

a.replaceChild(a, a) should throw a HierarchyRequestError, because 'a'
is a host-including inclusive ancestor of 'a':
- https://dom.spec.whatwg.org/#concept-node-replace

However, the call is merely ignored in WebKit.

No new tests, rebaselined existing test.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChild):

LayoutTests:

* fast/dom/Node/replaceChild-notFoundError-expected.txt: Added.
* fast/dom/Node/replaceChild-notFoundError.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204237 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDrop legacy Text.replaceWholeText() API
cdumez@apple.com [Sun, 7 Aug 2016 03:06:32 +0000 (03:06 +0000)]
Drop legacy Text.replaceWholeText() API
https://bugs.webkit.org/show_bug.cgi?id=160641

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop legacy Text.replaceWholeText() API, which is no longer in the
specification:
- https://dom.spec.whatwg.org/#interface-text

Firefox and Chrome already dropped support for it.

No new tests, rebaselined existing test.

* dom/Text.idl:

LayoutTests:

Drop outdated tests / checks.

* dom/xhtml/level3/core/textreplacewholetext01-expected.txt: Removed.
* dom/xhtml/level3/core/textreplacewholetext01.js: Removed.
* dom/xhtml/level3/core/textreplacewholetext01.xhtml: Removed.
* dom/xhtml/level3/core/textreplacewholetext02-expected.txt: Removed.
* dom/xhtml/level3/core/textreplacewholetext02.js: Removed.
* dom/xhtml/level3/core/textreplacewholetext02.xhtml: Removed.
* dom/xhtml/level3/core/textreplacewholetext03-expected.txt: Removed.
* dom/xhtml/level3/core/textreplacewholetext03.js: Removed.
* dom/xhtml/level3/core/textreplacewholetext03.xhtml: Removed.
* dom/xhtml/level3/core/textreplacewholetext04-expected.txt: Removed.
* dom/xhtml/level3/core/textreplacewholetext04.js: Removed.
* dom/xhtml/level3/core/textreplacewholetext04.xhtml: Removed.
* dom/xhtml/level3/core/textreplacewholetext05-expected.txt: Removed.
* dom/xhtml/level3/core/textreplacewholetext05.js: Removed.
* dom/xhtml/level3/core/textreplacewholetext05.xhtml: Removed.
* fast/dom/Attr/change-id-via-attr-node-value-expected.txt:
* fast/dom/Attr/change-id-via-attr-node-value.html:
* fast/dom/Text/replaceWholeText-expected.txt: Removed.
* fast/dom/Text/replaceWholeText.html: Removed.
* fast/storage/storage-detached-iframe-expected.txt:
* fast/storage/storage-detached-iframe.html:
* http/tests/security/xss-DENIED-iframe-src-alias-expected.txt:
* http/tests/security/xss-DENIED-iframe-src-alias.html:
* platform/mac/inspector/model/remote-object-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204236 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAlign Range.createContextualFragment() input validation with the specification
cdumez@apple.com [Sun, 7 Aug 2016 02:43:53 +0000 (02:43 +0000)]
Align Range.createContextualFragment() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160634

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/domparsing/createContextualFragment-expected.txt:

Source/WebCore:

Align Range.createContextualFragment() input validation with the specification:
- https://w3c.github.io/DOM-Parsing/#idl-def-range-createcontextualfragment(domstring) (Step 2)

In particular, we were throwing a NOT_SUPPORTED_ERR when element had localname
"html" but was not in the HTML namespace. We should not throw in this case.

Firefox complies with the specification here.

No new tests, rebaselined existing test.

* dom/Range.cpp:
(WebCore::Range::createContextualFragment): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204235 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Web IDL] Add support for [Unscopable] extended attribute
cdumez@apple.com [Sun, 7 Aug 2016 02:29:07 +0000 (02:29 +0000)]
[Web IDL] Add support for [Unscopable] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=160637

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/nodes/remove-unscopable-expected.txt:

Source/WebCore:

Add support for [Unscopable] extended attribute:
- http://heycam.github.io/webidl/#Unscopable

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(addUnscopableProperties):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::finishCreation):
* bindings/scripts/test/TestObj.idl:
* dom/ChildNode.idl:
* dom/ParentNode.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204234 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoREGRESSION (r203253): Node details sidebar flickers while resizing
mattbaker@apple.com [Sun, 7 Aug 2016 01:50:34 +0000 (01:50 +0000)]
REGRESSION (r203253): Node details sidebar flickers while resizing
https://bugs.webkit.org/show_bug.cgi?id=160631
<rdar://problem/27733024>

Reviewed by Timothy Hatcher.

Sidebar panel layouts can be expensive, and should be performed only
when necessary (i.e., when the panel is shown for the first time, or
model data changed while the panel was hidden).

* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype._recalculateWidth):

* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel.prototype.shown):

* UserInterface/Views/View.js:
(WebInspector.View.prototype.updateLayoutIfNeeded):
Update the layout if an initial layout was never performed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204233 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Cocoa] -[_WKRemoteObjectRegistry() _invokeMethod:] leaks a block
mitz@apple.com [Sun, 7 Aug 2016 01:41:40 +0000 (01:41 +0000)]
[Cocoa] -[_WKRemoteObjectRegistry() _invokeMethod:] leaks a block
https://bugs.webkit.org/show_bug.cgi?id=160636

Reviewed by Darin Adler.

* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _invokeMethod:]): Release the block returned from
  __NSMakeSpecialForwardingCaptureBlock.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204232 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoimported/w3c/web-platform-tests/fetch/api/basic/mode-same-origin.html and -worker...
commit-queue@webkit.org [Sat, 6 Aug 2016 23:43:35 +0000 (23:43 +0000)]
imported/w3c/web-platform-tests/fetch/api/basic/mode-same-origin.html and -worker.html are failing after r204224
https://bugs.webkit.org/show_bug.cgi?id=160639

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06

* web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt: Rebaased after redirect.py update in
https://bugs.webkit.org/show_bug.cgi?id=160593.
* web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204231 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoEWS Style Queue fails to process patches which fails validation
aakash_jain@apple.com [Sat, 6 Aug 2016 19:33:10 +0000 (19:33 +0000)]
EWS Style Queue fails to process patches which fails validation
https://bugs.webkit.org/show_bug.cgi?id=160632

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/tool/bot/stylequeuetask.py:
(StyleQueueTask.validate): Add more information about validation failure.
(StyleQueueTask.run): Pass the error details in the PatchIsNotValid exception.
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(test_non_valid_patch): Add a unit test to test the above code path.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204230 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoSimplify valueToUSVString
darin@apple.com [Sat, 6 Aug 2016 18:19:13 +0000 (18:19 +0000)]
Simplify valueToUSVString
https://bugs.webkit.org/show_bug.cgi?id=160628

Reviewed by Sam Weinig.

* bindings/js/JSDOMBinding.cpp:
(WebCore::isUnmatchedSurrogatePair): Deleted. This function was incorrectly named,
since it actually returned true if any surrogate code unit was passed.
(WebCore::valueToUSVString): Added a fast path for 8-bit characters that doesn't
bother iterating the string at all. Changed the fast path to actually check for
surrogate pairs. Use StringView::codePoints rather than writing our own loop that
does the same thing. In the slow path, use StringView::codePoints to make the logic
clear rather than writing out exactly what the specification says. This gets rid of
all the many constants the old version of the function contained.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204228 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWTF needs a variant implementation
commit-queue@webkit.org [Sat, 6 Aug 2016 16:01:20 +0000 (16:01 +0000)]
WTF needs a variant implementation
https://bugs.webkit.org/show_bug.cgi?id=160618

Patch by Sam Weinig <sam@webkit.org> on 2016-08-06
Reviewed by Darin Adler.

Source/WTF:

Add an implementation of std::experimental::variant matching the C++17 draft http://wg21.link/n4606
taken from https://bitbucket.org/anthonyw/variant/src (5bce47fa788648f79e5ea1d77b0eef2e8f0b2999) and
modified to support compiling without exceptions (where it used to throw, we lovingly CRASH()).

* WTF.xcodeproj/project.pbxproj:
Add new file.

* wtf/Compiler.h:
Add COMPILER_SUPPORTS define for C++ exceptions.

* wtf/Variant.h: Added.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WTF/Variant.cpp: Added.
Add tests for the variant implementation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204227 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWrite API test to cover crash fix in r204135
cdumez@apple.com [Sat, 6 Aug 2016 15:13:26 +0000 (15:13 +0000)]
Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

Call didClose() in WebProcessProxy::requestTermination() so that
the processDidCrash() delegates get called in API tests whenever
a WebContent process is terminated to simulate a crash.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

* TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:
(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204226 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Fetch API] Fetching with a FormData body should reject until it is implemented
commit-queue@webkit.org [Sat, 6 Aug 2016 08:51:01 +0000 (08:51 +0000)]
[Fetch API] Fetching with a FormData body should reject until it is implemented
https://bugs.webkit.org/show_bug.cgi?id=160595

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Adding new tests to cover changes.
Removing HEAD with body test as it throws as expected and is redundant with
web-platform-tests/fetch/api/request/request-init-002.html.

* web-platform-tests/fetch/api/basic/request-headers-expected.txt:
* web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
* web-platform-tests/fetch/api/basic/request-headers.js:
(checkContentType):
(requestHeaders):

Source/WebCore:

Covered by updated tests.

This patch ensures that fetch will throw if trying to upload something that is not supported.
This is the case of BufferSource (FetchBody does not yet extract it) and FormData (no upload support yet).

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::extract): Added a FIXME.
* Modules/fetch/FetchBodyOwner.h:
(WebCore::FetchBodyOwner::bodyType): Getter used by FetchResponse.
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::setBody): Throwing if given body parameter cannot be extracted by FetchBody.
This ensures that a fetch with a body that cannot be uploaded will fail.
This is the case of BufferSource which is not yet supported.
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::fetch): Rejecting fetch promise if trying to upload a FormData as it is not implemented.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204225 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Fetch API] Fetch API should strip fragment and credentials from URLs used as referrer
commit-queue@webkit.org [Sat, 6 Aug 2016 08:50:13 +0000 (08:50 +0000)]
[Fetch API] Fetch API should strip fragment and credentials from URLs used as referrer
https://bugs.webkit.org/show_bug.cgi?id=160593

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/basic/referrer-expected.txt:
* web-platform-tests/fetch/api/basic/referrer-worker-expected.txt:
* web-platform-tests/fetch/api/basic/referrer.js:
(runTest): Adding more tests.
One test is failing as the redirection from same-origin to cross-origin is stripping the referer header.
But none is added afterwards. Hence cross-origin redirected request is sent without any referer header.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt: Rebasing according redirect.py script changes.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt: Ditto.
* web-platform-tests/fetch/api/resources/redirect.py:
(main): Fixing rediret.py script.

Source/WebCore:

Covered by updated tests.

Stripping of referrer value before sending a load request.

Fixing bug in workers as referrer value was overwritten by WorkerThreadableLoader.
The current handling of referrer values as HTTP header is not great as this may trigger unnecessary preflighting.
Refactoring should allow passing it as a separate parameter and setting it after preflighting as per
https://fetch.spec.whatwg.org/#http-network-or-cache-fetch.

Also a newly added test is failing, as SubresourceLoader is removing the referer header in case of a cross-origin redirection.
But none is added back.

* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::internalRequest): Stripping referrer value.
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Do not override referrer value if one is defined.
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::generateReferrerHeader): Adding assertion to ensure referrer value does not contain
credentials and/or fragment identifiers.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204224 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoLayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
commit-queue@webkit.org [Sat, 6 Aug 2016 08:48:31 +0000 (08:48 +0000)]
LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Sam Weinig.

* http/tests/fetch/fetch-in-worker-crash.html:
* http/tests/fetch/fetch-in-worker.js:
Adding a new test based on a ReadableStream that is not closed and therefore Response.text promise cannot resolve.
Removing the blob resolve message as there is no guarantee that blob load will finish after the test is done.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204223 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoLay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
beidson@apple.com [Sat, 6 Aug 2016 08:00:20 +0000 (08:00 +0000)]
Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:
  - Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  - Has that provider message to the UIProcess notifying interest in gamepad state
  - Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use
    one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  - Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the
    "PlatformGamepad" for WebProcesses.

* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:

* UIProcess/Gamepads/UIGamepadProvider.cpp: Added.
(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/Gamepads/UIGamepadProvider.h: Added.

* UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:

* WebProcess/Gamepad/WebGamepad.cpp: Added.
* WebProcess/Gamepad/WebGamepad.h: Added.

* WebProcess/Gamepad/WebGamepadProvider.cpp: Added.
(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h: Added.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204222 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[ES6] Add ScriptElement::determineScriptType
utatane.tea@gmail.com [Sat, 6 Aug 2016 06:28:24 +0000 (06:28 +0000)]
[ES6] Add ScriptElement::determineScriptType
https://bugs.webkit.org/show_bug.cgi?id=149576

Reviewed by Ryosuke Niwa.

Change ScriptElement::isScriptTypeSupported to ScriptElement::determineScriptType.
And introduce ScriptType, which is either "classic" or "module".
And support "module" type in ScriptElement[1, 2].
But this patch does not contain any module tag support code.
This will be implemented in the subsequent patch.

[1]: https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-module-system
[2]: https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type

* dom/ScriptElement.cpp:
(WebCore::ScriptElement::determineScriptType):
(WebCore::ScriptElement::prepareScript):
(WebCore::ScriptElement::isScriptTypeSupported): Deleted.
* dom/ScriptElement.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204221 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoNULL Reference Error in ElementRuleCollector
commit-queue@webkit.org [Sat, 6 Aug 2016 05:37:28 +0000 (05:37 +0000)]
NULL Reference Error in ElementRuleCollector
https://bugs.webkit.org/show_bug.cgi?id=160362

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-08-05
Reviewed by Darin Adler.

No new tests, existing CSS tests cover this change.

Undefined behavior sanitizer found a reference bound to a NULL pointer.
The root cause of this issue was a discrepancy between whether an author style needed to be defined.  In some logic, an undefined author style was considered acceptable, but in other logic, author style was always assumed to be defined.  To fix this, a variable was added so that while author style is always defined, there is a flag indicating if this definition occurred in the constructor for use by functions which allow an undefined author style.

* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::DocumentRuleSets): Define author style by default.
(WebCore::DocumentRuleSets::resetAuthorStyle): Switch author style flag.
* css/DocumentRuleSets.h: Added author style flag, changed authorStyle accessor to reference from pointer.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ElementRuleCollector): Original location of undefined behavior.
(WebCore::ElementRuleCollector::matchHostPseudoClassRules): Changed pointer to reference.
(WebCore::ElementRuleCollector::matchSlottedPseudoElementRules): Changed pointer to reference.
* css/PageRuleCollector.cpp:
(WebCore::PageRuleCollector::matchAllPageRules): Check new flag, changed pointer to reference.

* css/StyleResolver.cpp: Changed pointer to reference.
* dom/Document.cpp: Dito.
* style/AttributeChangeInvalidation.cpp: Dito.
* style/ClassChangeInvalidation.cpp: Dito.
* style/IdChangeInvalidation.cpp: Dito.
* style/StyleSharingResolver.cpp: Dito.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204220 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDOMException should be constructible
cdumez@apple.com [Sat, 6 Aug 2016 05:34:57 +0000 (05:34 +0000)]
DOMException should be constructible
https://bugs.webkit.org/show_bug.cgi?id=160626

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WebIDL tests from W3C web-platform-tests.

* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants-expected.txt: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.html: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-expected.txt: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object-expected.txt: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.html: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.js: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions-expected.txt: Added.
* web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions.html: Added.
* web-platform-tests/WebIDL/ecmascript-binding/has-instance-expected.txt: Added.
* web-platform-tests/WebIDL/ecmascript-binding/has-instance.html: Added.
* web-platform-tests/WebIDL/ecmascript-binding/interface-object-expected.txt: Added.
* web-platform-tests/WebIDL/ecmascript-binding/interface-object.html: Added.

Source/WebCore:

DOMException should be constructible:
- http://heycam.github.io/webidl/#dfn-DOMException
- http://heycam.github.io/webidl/#es-DOMException-constructor-object

DOMException already has a constructor in Firefox and Chrome so this
aligns our behavior with other browsers.

Test: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html

* dom/DOMCoreException.cpp:
(WebCore::errorCodeFromName):
(WebCore::DOMCoreException::create):
(WebCore::DOMCoreException::DOMCoreException):
* dom/DOMCoreException.h:
* dom/DOMCoreException.idl:
* dom/ExceptionBase.cpp:
(WebCore::ExceptionBase::ExceptionBase):
* dom/ExceptionBase.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204219 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAdd LEBDecoder and tests
keith_miller@apple.com [Sat, 6 Aug 2016 03:48:10 +0000 (03:48 +0000)]
Add LEBDecoder and tests
https://bugs.webkit.org/show_bug.cgi?id=160625

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Adds a new target testWASM that is currently used to test the LEB decoder.
In the future, if we add more support for WASM we will put more tests
here.

* JavaScriptCore.xcodeproj/project.pbxproj:
* testWASM.cpp: Added.
(CommandLine::CommandLine):
(printUsageStatement):
(CommandLine::parseArguments):
(runLEBTests):
(main):

Source/WTF:

Adds some LEB decoder functions to WTF. These are used in the
WASM spec to encode numbers in a semi-compressed format.

* WTF.xcodeproj/project.pbxproj:
* wtf/LEBDecoder.h: Added.
(decodeUInt32):
(decodeInt32):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204218 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAlign Range.insertNode() input validation with the specification
cdumez@apple.com [Sat, 6 Aug 2016 03:17:09 +0000 (03:17 +0000)]
Align Range.insertNode() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160624

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/dom/ranges/Range-insertNode-expected.txt:

Source/WebCore:

Align Range.insertNode() input validation with the specification:
- https://dom.spec.whatwg.org/#dom-range-insertnode
- https://dom.spec.whatwg.org/#concept-range-insert (step 1)

In particular, if range’s start node is a ProcessingInstruction or
Comment node, is a Text node whose parent is null, or is node, then
we should throw a HierarchyRequestError.

Chrome behaves according to the specification.

No new tests, rebaselined existing test.

* dom/Range.cpp:
(WebCore::Range::insertNode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204217 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Web IDL] Add support for 'any' type in dictionaries
cdumez@apple.com [Sat, 6 Aug 2016 02:33:08 +0000 (02:33 +0000)]
[Web IDL] Add support for 'any' type in dictionaries
https://bugs.webkit.org/show_bug.cgi?id=160511

Reviewed by Sam Weinig.

Add support for 'any' type in dictionaries. It will pass the value as
a JSValue to the implementation. If the member is not present, it will
pass jsUndefined() to the implementation.

Having 'any' support in dictionaries is a convenient workaround for
types we don't support yet (e.g. union types).

No new tests, updated bindings tests.

* bindings/js/JSDOMConvert.h:
(WebCore::Converter<JSC::JSValue>::convert):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convert<TestObj::Dictionary>):
* bindings/scripts/test/TestObj.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204216 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Web IDL] Add support for USVString type
cdumez@apple.com [Sat, 6 Aug 2016 02:32:04 +0000 (02:32 +0000)]
[Web IDL] Add support for USVString type
https://bugs.webkit.org/show_bug.cgi?id=160608

Reviewed by Sam Weinig.

Source/WebCore:

Add support for USVString type in our bindings generator:
- http://heycam.github.io/webidl/#idl-USVString

Also start using USVString instead of DOMString when suitable as per
the following specifications:
- http://dom.spec.whatwg.org
- http://html.spec.whatwg.org
- http://url.spec.whatwg.org

Test: js/dom/webidl-type-mapping.html

* Modules/websockets/CloseEvent.idl:
* Modules/websockets/WebSocket.idl:
* bindings/js/JSDOMBinding.cpp:
(WebCore::isUnmatchedSurrogatePair):
(WebCore::valueToUSVString):
(WebCore::valueToUSVStringTreatingNullAsEmptyString):
(WebCore::valueToUSVStringWithUndefinedOrNullCheck):
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::open):
(WebCore::handlePostMessage):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::handleInitMessageEvent):
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::importScripts):
* bindings/scripts/CodeGenerator.pm:
(SkipIncludeHeader):
(IsStringOrEnumType):
(IsStringType):
(IsRefPtrType):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(JSValueToNative):
(NativeToJSValue):
* bindings/scripts/IDLParser.pm:
(parseNonAnyType):
* dom/Document.idl:
* dom/ErrorEvent.idl:
* dom/HashChangeEvent.idl:
* dom/MessageEvent.idl:
* dom/Node.idl:
* html/DOMFormData.idl:
* html/DOMURL.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLHyperlinkElementUtils.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLSourceElement.idl:
* html/HTMLTrackElement.idl:
* html/HTMLVideoElement.idl:
* html/URLUtils.idl:
* page/DOMWindow.idl:
* page/EventSource.idl:
* page/History.idl:
* page/Location.idl:
* storage/StorageEvent.idl:
* testing/TypeConversions.h:
(WebCore::TypeConversions::testString):
(WebCore::TypeConversions::setTestString):
(WebCore::TypeConversions::testUSVString):
(WebCore::TypeConversions::setTestUSVString):
* testing/TypeConversions.idl:
* workers/Worker.idl:
* workers/WorkerGlobalScope.idl:

LayoutTests:

Add layout test coverage for USVString.

* js/dom/webidl-type-mapping-expected.txt:
* js/dom/webidl-type-mapping.html:
This test is based on the corresponding one from Blink.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204215 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAdd back a newline that was accidentally removed from an expected.txt file.
ryanhaddad@apple.com [Sat, 6 Aug 2016 01:40:03 +0000 (01:40 +0000)]
Add back a newline that was accidentally removed from an expected.txt file.

Unreviewed test gardening.

* platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204214 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agorevert r202466 r202546 this causes regressions in media loading with temporary redirects.
commit-queue@webkit.org [Sat, 6 Aug 2016 01:13:59 +0000 (01:13 +0000)]
revert r202466 r202546 this causes regressions in media loading with temporary redirects.
https://bugs.webkit.org/show_bug.cgi?id=160613

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-08-05
Reviewed by Jon Lee.

Source/WebCore:

No new tests. Skipping two tests.

This reverts a change that attempted to fix temporary redirects with media loading.
The change introduced problems. Reverting this to require media stack to properly
handle redirects.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):
* platform/network/cocoa/WebCoreNSURLSession.h:
* platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]): Deleted.
(-[WebCoreNSURLSession updateHasSingleSecurityOrigin:]): Deleted.
(-[WebCoreNSURLSession dataTaskWithRequest:]): Deleted.
(-[WebCoreNSURLSession dataTaskWithURL:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]): Deleted.

LayoutTests:

Reverting a fix that enabled two tests. These tests now fail and are skipped.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204210 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago32-bit JSC test failure: stress/instanceof-late-constant-folding.js
keith_miller@apple.com [Sat, 6 Aug 2016 01:05:15 +0000 (01:05 +0000)]
32-bit JSC test failure: stress/instanceof-late-constant-folding.js
https://bugs.webkit.org/show_bug.cgi?id=160620

Reviewed by Filip Pizlo.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204209 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed, rolling out r204195.
ryanhaddad@apple.com [Sat, 6 Aug 2016 00:53:29 +0000 (00:53 +0000)]
Unreviewed, rolling out r204195.
https://bugs.webkit.org/show_bug.cgi?id=160623

This change causes assertion failures in LayoutTests and API
tests. (Requested by ryanhaddad on #webkit).

Reverted changeset:

"Lay WebProcess/UIProcess groundwork for an IPC
GamepadProvider."
https://bugs.webkit.org/show_bug.cgi?id=160605
http://trac.webkit.org/changeset/204195

Patch by Commit Queue <commit-queue@webkit.org> on 2016-08-05

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204208 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[JSC] Remove the first LocalCSE
commit-queue@webkit.org [Sat, 6 Aug 2016 00:49:25 +0000 (00:49 +0000)]
[JSC] Remove the first LocalCSE
https://bugs.webkit.org/show_bug.cgi?id=160615

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-05
Reviewed by Saam Barati.

LocalCSE is the most expensive phase in DFG (excluding FTL).

The combination of two LocalCSEs does not seem to pay for its cost.
Doing a single LocalCSE is always after ConstantFolding and StrengthReduction
is always a win on my machine.

* dfg/DFGCleanUpPhase.cpp:
(JSC::DFG::CleanUpPhase::run):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204207 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agovarious math operations don't properly check for an exception after calling toNumber...
sbarati@apple.com [Sat, 6 Aug 2016 00:46:50 +0000 (00:46 +0000)]
various math operations don't properly check for an exception after calling toNumber() on the lhs
https://bugs.webkit.org/show_bug.cgi?id=160154

Reviewed by Mark Lam.

JSTests:

* stress/to-number-throws-correct-exception.js: Added.
(test.let.test.runTest.):
(test.let.test.runTest.get f):
(test.let.test.runTest):
(test.let.test):
(test):
(test2.runTest.):
(test2.runTest.get f):
(test2.runTest):
(test2):

Source/JavaScriptCore:

We must check for an exception after calling toNumber() on the lhs
because this can throw an exception. If we called toNumber() on
the rhs without first checking for an exception after the toNumber()
on the lhs, this can lead us to execute effectful code or deviate
from the standard in subtle ways. I fixed this bug in various places
by always checking for an exception after calling toNumber() on the
lhs for the various bit and arithmetic operations.

This patch also found a commutativity bug inside DFGStrengthReduction.
We could end up commuting the lhs and rhs of say an "|" expression
even when the lhs/rhs may not be numbers. This is wrong because
executing toNumber() on the lhs/rhs has strict ordering guarantees
by the specification and is observable by user programs.

* dfg/DFGOperations.cpp:
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleCommutativity):
* jit/JITOperations.cpp:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/Operations.cpp:
(JSC::jsAddSlowCase):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204206 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAdd a tiny bit more image logging
simon.fraser@apple.com [Sat, 6 Aug 2016 00:32:03 +0000 (00:32 +0000)]
Add a tiny bit more image logging
https://bugs.webkit.org/show_bug.cgi?id=160621

Reviewed by Tim Horton.

Add logging related to image subsampling.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::frameImageAtIndex):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204205 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agocompilePutByValForIntTypedArray() has a slow path in the middle of its processing
msaboff@apple.com [Sat, 6 Aug 2016 00:01:45 +0000 (00:01 +0000)]
compilePutByValForIntTypedArray() has a slow path in the middle of its processing
https://bugs.webkit.org/show_bug.cgi?id=160614

Reviewed by Keith Miller.

In compilePutByValForIntTypedArray() we were calling out to the slow path
operationToInt32() and then returning back to the middle of code to finish
the processing of writing the value to the array.  When we make the slow
path call, we trash any temporary registers that have been allocated.
In general slow path calls should finish the operation in progress and
continue processing at the beginning of the next node.

This was discovered while working on the register argument changes, when
we SpeculateStrictInt32Operand on the value child node.  That child node's
value was live in register with a spill format of DataFormatJSInt32.  In that
case we allocate a new temporary register and copy just the lower 32 bits from
the child register to the new temp register.  That temp register gets trashed
when we make the operationToInt32() slow path call.

I spent some time trying to devise a test with the current code base and wasn't
successful.  This case is tested with the register argument changes in progress.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204204 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAX: Asking for group members of radio button that has no name attribute will cause...
n_wang@apple.com [Sat, 6 Aug 2016 00:01:27 +0000 (00:01 +0000)]
AX: Asking for group members of radio button that has no name attribute will cause crash
https://bugs.webkit.org/show_bug.cgi?id=160583

Reviewed by Chris Fleizach.

Source/WebCore:

The NameToGroupMap is null when there's no name attribute on the radio buttons. Added a
check so that we don't try to get a value from a null HashSet.

Test: accessibility/mac/radio-button-no-name-crash.html

* dom/RadioButtonGroups.cpp:
(WebCore::RadioButtonGroups::groupMembers):

LayoutTests:

* accessibility/mac/radio-button-no-name-crash-expected.txt: Added.
* accessibility/mac/radio-button-no-name-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204203 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDisk cache tests produce many undefined value warnings
ap@apple.com [Fri, 5 Aug 2016 23:57:52 +0000 (23:57 +0000)]
Disk cache tests produce many undefined value warnings
https://bugs.webkit.org/show_bug.cgi?id=160601

Reviewed by Daniel Bates.

* http/tests/cache/disk-cache/resources/generate-response.cgi: Cleaned up header
and parameter handling. Removed a couple unnecessary checks for $cgi->http.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204202 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWork around broken <Files> directive in some Apache versions
ap@apple.com [Fri, 5 Aug 2016 23:54:09 +0000 (23:54 +0000)]
Work around broken <Files> directive in some Apache versions
https://bugs.webkit.org/show_bug.cgi?id=160610

Reviewed by Daniel Bates.

The problem is tracked as rdar://problem/27725655

* http/tests/misc/.htaccess:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoRebaselining compositing/masks/compositing-clip-path-change-no-repaint.html for ios...
ryanhaddad@apple.com [Fri, 5 Aug 2016 23:36:11 +0000 (23:36 +0000)]
Rebaselining compositing/masks/compositing-clip-path-change-no-repaint.html for ios-simulator.

Unreviewed test gardening.

* platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204199 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoASSERTION FAILED: observer in WebCore::BitmapImage::drawPattern
bfulgham@apple.com [Fri, 5 Aug 2016 23:29:50 +0000 (23:29 +0000)]
ASSERTION FAILED: observer in WebCore::BitmapImage::drawPattern
https://bugs.webkit.org/show_bug.cgi?id=141637
<rdar://problem/27709864>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/images/image-source-assert.html

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern): Remove invalid assertion.

LayoutTests:

* fast/images/image-source-assert-expected.txt: Added.
* fast/images/image-source-assert.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204198 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agomarquee with "truespeed" animates at > 60fps, hogging CPU
simon.fraser@apple.com [Fri, 5 Aug 2016 22:34:12 +0000 (22:34 +0000)]
marquee with "truespeed" animates at > 60fps, hogging CPU
https://bugs.webkit.org/show_bug.cgi?id=160609

Reviewed by David Hyatt.

Source/WebCore:

A <marquee truespeed="" scrollDelay="0"> would fire a zero-delay timer and also
fail to animate, hogging CPU.

Fix to cap the timer at 16ms intervals. We don't believe it's necessary to
maintain web compatibility here.

Tested by existing tests.

* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::minimumDelay):
* html/HTMLMarqueeElement.h:

LayoutTests:

Convert marquee tests into ref tests, removing all the platform expectations.

* fast/html/marquee-scroll-expected.html: Copied from LayoutTests/fast/html/marquee-scroll.html.
* fast/html/marquee-scroll.html:
* fast/html/marquee-scrollamount-expected.html: Added.
* fast/html/marquee-set-truespeed.html:
* platform/efl/fast/html/marquee-scroll-expected.png: Removed.
* platform/efl/fast/html/marquee-scroll-expected.txt: Removed.
* platform/efl/fast/html/marquee-scrollamount-expected.png: Removed.
* platform/efl/fast/html/marquee-scrollamount-expected.txt: Removed.
* platform/gtk/fast/html/marquee-scroll-expected.png: Removed.
* platform/gtk/fast/html/marquee-scroll-expected.txt: Removed.
* platform/gtk/fast/html/marquee-scrollamount-expected.png: Removed.
* platform/gtk/fast/html/marquee-scrollamount-expected.txt: Removed.
* platform/ios-simulator-wk1/TestExpectations:
* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-simulator-wk2/fast/html/marquee-scrollamount-expected.txt: Removed.
* platform/ios-simulator/fast/html/marquee-scroll-expected.txt: Removed.
* platform/ios-simulator/fast/html/marquee-scrollamount-expected.txt: Removed.
* platform/mac-wk1/TestExpectations:
* platform/mac/fast/html/marquee-scroll-expected.png: Removed.
* platform/mac/fast/html/marquee-scroll-expected.txt: Removed.
* platform/mac/fast/html/marquee-scrollamount-expected.png: Removed.
* platform/mac/fast/html/marquee-scrollamount-expected.txt: Removed.
* platform/win/TestExpectations:
* platform/win/fast/html/marquee-scroll-expected.txt: Removed.
* platform/win/fast/html/marquee-scrollamount-expected.txt: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204197 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed, rolling out r204181.
ryanhaddad@apple.com [Fri, 5 Aug 2016 22:26:01 +0000 (22:26 +0000)]
Unreviewed, rolling out r204181.

This change caused an existing LayoutTest to fail on WK1

Reverted changeset:

"Don't set document.domain to an IP address fragment"
https://bugs.webkit.org/show_bug.cgi?id=126045
http://trac.webkit.org/changeset/204181

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204196 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoLay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
beidson@apple.com [Fri, 5 Aug 2016 21:54:59 +0000 (21:54 +0000)]
Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:
  - Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  - Has that provider message to the UIProcess notifying interest in gamepad state
  - Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use
    one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  - Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the
    "PlatformGamepad" for WebProcesses.

* CMakeLists.txt:
* WebKit2.xcodeproj/project.pbxproj:

* UIProcess/Gamepads/UIGamepadProvider.cpp: Added.
(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):
* UIProcess/Gamepads/UIGamepadProvider.h: Added.

* UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:

* WebProcess/Gamepad/WebGamepad.cpp: Added.
* WebProcess/Gamepad/WebGamepad.h: Added.

* WebProcess/Gamepad/WebGamepadProvider.cpp: Added.
(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h: Added.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204195 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agorun-api-tests should use a headed simulator
timothy_horton@apple.com [Fri, 5 Aug 2016 21:53:02 +0000 (21:53 +0000)]
run-api-tests should use a headed simulator
https://bugs.webkit.org/show_bug.cgi?id=160611

Reviewed by Sam Weinig.

CADisplayLink doesn't work in a headless simulator, but is
vital for the proper functioning of WebKit2 painting on iOS.
So, we should not use a headless simulator.

* Scripts/run-api-tests:
Launch a simulator app, don't just boot the simulator.

* TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:
Re-enable a test that works now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204194 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoSierra WK1: compositing/masks/compositing-clip-path-change-no-repaint.html failing
simon.fraser@apple.com [Fri, 5 Aug 2016 21:22:23 +0000 (21:22 +0000)]
Sierra WK1: compositing/masks/compositing-clip-path-change-no-repaint.html failing
rdar://problem/26789221

Make this test less sensitive to platform repaint differences.

* compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
* compositing/masks/compositing-clip-path-change-no-repaint.html:
* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204193 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed, rolling out r204128.
commit-queue@webkit.org [Fri, 5 Aug 2016 21:19:43 +0000 (21:19 +0000)]
Unreviewed, rolling out r204128.
https://bugs.webkit.org/show_bug.cgi?id=160607

Solve the issue by removing the workaround for static files
(Requested by jonlee_ on #webkit).

Reverted changeset:

"Temporary redirected m3u8 streaming stopped working."
https://bugs.webkit.org/show_bug.cgi?id=160472
http://trac.webkit.org/changeset/204128

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204192 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoRemove testRunner.handleErrorPages()
commit-queue@webkit.org [Fri, 5 Aug 2016 20:27:33 +0000 (20:27 +0000)]
Remove testRunner.handleErrorPages()
https://bugs.webkit.org/show_bug.cgi?id=160552

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-08-05
Reviewed by Daniel Bates.

handleErrorPages() was implemented by the Qt WebKit port, per
https://bugs.webkit.org/show_bug.cgi?id=31509#c0, but never implemented
on other ports.  Per https://bugs.webkit.org/show_bug.cgi?id=31555, this
feature was never implemented on Mac.

* fast/history/back-forward-reset-after-error-handling-expected.txt: Removed test expectations.
* fast/history/back-forward-reset-after-error-handling.html: Removed test.
* platform/efl/TestExpectations: Remove reference to back-forward-reset-after-error-handling.
* platform/gtk/TestExpectations: Ditto.
* platform/ios-simulator/TestExpectations: Ditto.
* platform/mac/TestExpectations: Ditto.
* platform/win/TestExpectations: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204191 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agosegmentTimeSeriesByMaximizingSchwarzCriterion returns a bogus result on empty charts
rniwa@webkit.org [Fri, 5 Aug 2016 20:22:52 +0000 (20:22 +0000)]
segmentTimeSeriesByMaximizingSchwarzCriterion returns a bogus result on empty charts
https://bugs.webkit.org/show_bug.cgi?id=160575

Rubber-stamped by Chris Dumez.

The bug was caused by an early return in segmentTimeSeriesByMaximizingSchwarzCriterion.
Removed this early return as the one in splitIntoSegmentsUntilGoodEnough was sufficient.

Also factored out a few functions in findOptimalSegmentation so that they can be better
optimized in JSC's DFG and FTL tiers, and removed unused debuggingTestingRangeNomination.

* public/shared/statistics.js:
(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Removed an early return.
(Statistics.splitIntoSegmentsUntilGoodEnough):
(.allocateCostUpperTriangularForSegmentation): Extracted from findOptimalSegmentation.
(.allocatePreviousNodeForSegmentation): Ditto.
(.findOptimalSegmentationInternal): Ditto.
(.findOptimalSegmentation):

* unit-tests/statistics-tests.js: Added a test case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204190 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoPerf dashboard sometimes tries to fetch a non-existent measurement-set JSON
rniwa@webkit.org [Fri, 5 Aug 2016 20:21:35 +0000 (20:21 +0000)]
Perf dashboard sometimes tries to fetch a non-existent measurement-set JSON
https://bugs.webkit.org/show_bug.cgi?id=160577

Rubber-stamped by Chris Dumez.

The bug was caused by findClusters computing the first cluster's endTime incorrectly. Namely, we were
multiplying the number of clusters by clusterStart instead of clusterSize with an off-by-one error.

* public/v3/models/measurement-set.js:
(MeasurementSet.prototype.findClusters): Folded computeClusterStart into where clusterEnd is computed
for clarity. Also fixed a bug that we were not computing the first cluster to fetch correctly when
the fetched time range started before clusterStart (i.e. when startTime - clusterStart is negative).
Finally, fixed the main bug by multiplying the number of clusters by clusterSize instead of
clusterStart to compute the end time of the very first cluster in this measurement set. Because what
we're computing here is the end time of the first cluster, not the start time, we also need to subtract
one from the number of clusters. e.g. if there was exactly one cluster, then firstClusterEndTime is
identically equal to lastClusterEndTime.
(MeasurementSet.prototype.fetchedTimeSeries): Removed the unused argument to TimeSeries's constructor.

* unit-tests/analysis-task-tests.js: Fixed the tests for the latest version of Mocha which complains if
we returned a promise in unit tests when "done" function is used.
* unit-tests/checkconfig.js: Ditto.
* unit-tests/measurement-set-tests.js: Added a test case for findClusters and a test to make sure
fetchBetween doesn't try to fetch a cluster before the first cluster in the set. Also fixed other test
cases which were relying on the bug this patch fixed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204189 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years ago[Cocoa] WKRemoteObjectCoder doesn’t handle NSRange
mitz@apple.com [Fri, 5 Aug 2016 20:19:51 +0000 (20:19 +0000)]
[Cocoa] WKRemoteObjectCoder doesn’t handle NSRange
https://bugs.webkit.org/show_bug.cgi?id=160589

Reviewed by Tim Horton.

Source/WebKit2:

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeInvocationArguments): Encode NSRange by wrapping in an NSValue.
(decodeInvocationArguments): Decode wrapped NSRange.

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h:
(remoteObjectInterface): Fixed a mistake in the set of allowed classes in one of the reply
  blocks, which wasn’t caught because the test wasn’t run correctly.
* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:
(TEST): Fixed the -selectionAndClickInformationForClickAtPoint:completionHandler: test, and
  added a test that sends over an NSRange.
* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:
(-[RemoteObjectRegistryPlugIn takeRange:completionHandler:]): Added. Calls the completion
  handler with the range‘s location and length.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204188 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoMeasurementCluster's addToSeries is slow
rniwa@webkit.org [Fri, 5 Aug 2016 20:19:27 +0000 (20:19 +0000)]
MeasurementCluster's addToSeries is slow
https://bugs.webkit.org/show_bug.cgi?id=160581

Rubber-stamped by Chris Dumez.

The bulk of time was spent in MeasurementAdaptor.prototype.applyTo where we computed the interval.

Since some of data points are filtered out by TimeSeriesChart component before intervals are used,
we can significantly reduce the CPU time by lazily compute them. This patch reduces the runtime of
applyTo from ~60ms to ~30ms on my machine.

* public/v3/models/measurement-adaptor.js:
(MeasurementAdaptor.prototype.applyTo): Lazily compute and cache the interval. Also cache the build
object instead of always creating a new object.
* public/v3/models/measurement-cluster.js:
(MeasurementCluster.prototype.addToSeries): Call applyTo first before checking whether the point is
an outlier or its id to avoid extracting those values twice since they show up in the profiler. Also
use "of" instead "forEach" since "of" seems to be faster here.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204187 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agovalidity assertion fails after removing a child of an <optgroup> element
bfulgham@apple.com [Fri, 5 Aug 2016 19:38:18 +0000 (19:38 +0000)]
validity assertion fails after removing a child of an <optgroup> element
https://bugs.webkit.org/show_bug.cgi?id=155720
<rdar://problem/27720746>

Reviewed by Brent Fulgham.

Source/WebCore:

All calls to HTMLSelectElement::setRecalcListItems also need to call HTMLSelectElement::updateValidity.

Test: fast/dom/HTMLSelectElement/select-remove-from-optgroup.html

* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::recalcSelectOptions): Call 'updateValidity' after 'setRecalcListItems'.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::insertedInto): Ditto.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute): Ditto.

LayoutTests:

Add new test case that triggers a debug assertion when the HTMLSelectElement state
is not updated properly.

* fast/dom/HTMLSelectElement/select-remove-from-optgroup-expected.txt: Added.
* fast/dom/HTMLSelectElement/select-remove-from-optgroup.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoUnreviewed, rolling out r204174.
ryanhaddad@apple.com [Fri, 5 Aug 2016 19:16:55 +0000 (19:16 +0000)]
Unreviewed, rolling out r204174.

The test for this change is failing on WK1

Reverted changeset:

"Popups opened from a sandboxed iframe should themselves be
sandboxed"
https://bugs.webkit.org/show_bug.cgi?id=134850
http://trac.webkit.org/changeset/204174

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204184 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoFixing tests failing after r204175.
enrica@apple.com [Fri, 5 Aug 2016 19:16:34 +0000 (19:16 +0000)]
Fixing tests failing after r204175.

Unreviewed.

* TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204183 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoAssertion failure when accessing TDZ variable in catch through eval
sbarati@apple.com [Fri, 5 Aug 2016 19:16:28 +0000 (19:16 +0000)]
Assertion failure when accessing TDZ variable in catch through eval
https://bugs.webkit.org/show_bug.cgi?id=160554

Reviewed by Mark Lam and Keith Miller.

JSTests:

* stress/catch-variables-under-tdz.js: Added.
(test):

Source/JavaScriptCore:

When we were calculating the variables under TDZ from a JSScope,
the algorithm was not taking into account that a catch scope
has variables under TDZ.

* runtime/JSScope.cpp:
(JSC::JSScope::collectVariablesUnderTDZ):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204182 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDon't set document.domain to an IP address fragment
wilander@apple.com [Fri, 5 Aug 2016 18:57:13 +0000 (18:57 +0000)]
Don't set document.domain to an IP address fragment
https://bugs.webkit.org/show_bug.cgi?id=126045
<rdar://problem/27331794>

Reviewed by Daniel Bates.

Source/WebCore:

This patch matches the following Blink one:
https://chromium.googlesource.com/chromium/blink/+/b19a57fdb323d5a80d3a1cb0a6b343558c4237b0

IP address octets should not be treated as subdomains when setting
document.domain. The specs say:
'The domain attribute's setter must run these steps: ...
7. If host is not equal to effectiveDomain, then run these substeps:
    1. If host or effectiveDomain is not a domain, then throw a
    "SecurityError" DOMException.'
https://html.spec.whatwg.org/multipage/browsers.html#relaxing-the-same-origin-restriction
Last Updated 5 August 2016

'A host is a domain, an IPv4 address, or an IPv6 address.'
https://url.spec.whatwg.org/#concept-domain
Last Updated 28 July 2016

Test: http/tests/security/set-domain-remove-subdomain-for-ip-address.html

* dom/Document.cpp:
(WebCore::Document::setDomain):
    Now checks whether the security origin is allowed to remove
    subdomains. If not, it throws a security error.
* page/OriginAccessEntry.cpp:
(WebCore::OriginAccessEntry::OriginAccessEntry):
    Constructor now expects an IP address setting.
(WebCore::OriginAccessEntry::matchesOrigin):
    Now also checks whether the host in an IP address and returns
    false if IP addresses aren't configured to be treated as domains.
* page/OriginAccessEntry.h:
    Introduced new enum for IP address setting.
    Constructor now expects an IP address setting.
(WebCore::OriginAccessEntry::ipAddressSettings):
    New getter.
(WebCore::operator==):
    Now also requires IP address settings to match.
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
    Changes to match OriginAccessEntry's new constructor.
(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
    Changes to match OriginAccessEntry's new constructor.
* page/Settings.in:
    Added a setting to allow IP address octets to be treated as
    subdomains. This way our existing tests setting document.domain
    still work.

LayoutTests:

IP address octets should not be treated as subdomains when
setting document.domain.

* http/tests/security/aboutBlank/security-context-alias.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/security/aboutBlank/security-context-grandchildren-alias.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/security/postMessage/origin-unaffected-by-document-domain.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/security/set-domain-remove-subdomain-for-ip-address-expected.txt: Added.
* http/tests/security/set-domain-remove-subdomain-for-ip-address.html: Added.
* http/tests/workers/worker-document-domain-security.html:
    Now enables the new setting treatIPAddressesAsDomains.
* http/tests/xmlhttprequest/document-domain-set.html:
    Now enables the new setting treatIPAddressesAsDomains.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoDelete out of date WASM code.
keith_miller@apple.com [Fri, 5 Aug 2016 18:53:49 +0000 (18:53 +0000)]
Delete out of date WASM code.
https://bugs.webkit.org/show_bug.cgi?id=160603

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch removes a bunch of the wasm files that we are unlikey to use
with the newer wasm spec. If we end up needing any of the deleted code
later we can restore it at that time.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* jit/JITOperations.cpp:
* jsc.cpp:
(GlobalObject::finishCreation): Deleted.
(functionLoadWebAssembly): Deleted.
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall): Deleted.
* runtime/Executable.cpp:
(JSC::WebAssemblyExecutable::prepareForExecution): Deleted.
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): Deleted.
(JSC::JSGlobalObject::visitChildren): Deleted.
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::wasmModuleStructure): Deleted.
* wasm/WASMConstants.h: Removed.
* wasm/WASMFunctionB3IRGenerator.h: Removed.
(JSC::WASMFunctionB3IRGenerator::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionB3IRGenerator::startFunction): Deleted.
(JSC::WASMFunctionB3IRGenerator::endFunction): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSetLocal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSetGlobal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildReturn): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildGetLocal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildGetGlobal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildConvertType): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildLoad): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildStore): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallInternal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallIndirect): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallImport): Deleted.
(JSC::WASMFunctionB3IRGenerator::appendExpressionList): Deleted.
(JSC::WASMFunctionB3IRGenerator::discard): Deleted.
(JSC::WASMFunctionB3IRGenerator::linkTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::jumpToTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::jumpToTargetIf): Deleted.
(JSC::WASMFunctionB3IRGenerator::startLoop): Deleted.
(JSC::WASMFunctionB3IRGenerator::endLoop): Deleted.
(JSC::WASMFunctionB3IRGenerator::startSwitch): Deleted.
(JSC::WASMFunctionB3IRGenerator::endSwitch): Deleted.
(JSC::WASMFunctionB3IRGenerator::startLabel): Deleted.
(JSC::WASMFunctionB3IRGenerator::endLabel): Deleted.
(JSC::WASMFunctionB3IRGenerator::breakTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::continueTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::breakLabelTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::continueLabelTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSwitch): Deleted.
* wasm/WASMFunctionCompiler.h: Removed.
(JSC::operationConvertJSValueToInt32): Deleted.
(JSC::operationConvertJSValueToDouble): Deleted.
(JSC::operationDiv): Deleted.
(JSC::operationMod): Deleted.
(JSC::operationUnsignedDiv): Deleted.
(JSC::operationUnsignedMod): Deleted.
(JSC::operationConvertUnsignedInt32ToDouble): Deleted.
(JSC::sizeOfMemoryType): Deleted.
(JSC::WASMFunctionCompiler::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionCompiler::WASMFunctionCompiler): Deleted.
(JSC::WASMFunctionCompiler::startFunction): Deleted.
(JSC::WASMFunctionCompiler::endFunction): Deleted.
(JSC::WASMFunctionCompiler::buildSetLocal): Deleted.
(JSC::WASMFunctionCompiler::buildSetGlobal): Deleted.
(JSC::WASMFunctionCompiler::buildReturn): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateI32): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateF32): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateF64): Deleted.
(JSC::WASMFunctionCompiler::buildGetLocal): Deleted.
(JSC::WASMFunctionCompiler::buildGetGlobal): Deleted.
(JSC::WASMFunctionCompiler::buildConvertType): Deleted.
(JSC::WASMFunctionCompiler::buildLoad): Deleted.
(JSC::WASMFunctionCompiler::buildStore): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryI32): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryF32): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryF64): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryI32): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryF32): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryF64): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalI32): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalF32): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalF64): Deleted.
(JSC::WASMFunctionCompiler::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionCompiler::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionCompiler::buildCallInternal): Deleted.
(JSC::WASMFunctionCompiler::buildCallIndirect): Deleted.
(JSC::WASMFunctionCompiler::buildCallImport): Deleted.
(JSC::WASMFunctionCompiler::appendExpressionList): Deleted.
(JSC::WASMFunctionCompiler::discard): Deleted.
(JSC::WASMFunctionCompiler::linkTarget): Deleted.
(JSC::WASMFunctionCompiler::jumpToTarget): Deleted.
(JSC::WASMFunctionCompiler::jumpToTargetIf): Deleted.
(JSC::WASMFunctionCompiler::startLoop): Deleted.
(JSC::WASMFunctionCompiler::endLoop): Deleted.
(JSC::WASMFunctionCompiler::startSwitch): Deleted.
(JSC::WASMFunctionCompiler::endSwitch): Deleted.
(JSC::WASMFunctionCompiler::startLabel): Deleted.
(JSC::WASMFunctionCompiler::endLabel): Deleted.
(JSC::WASMFunctionCompiler::breakTarget): Deleted.
(JSC::WASMFunctionCompiler::continueTarget): Deleted.
(JSC::WASMFunctionCompiler::breakLabelTarget): Deleted.
(JSC::WASMFunctionCompiler::continueLabelTarget): Deleted.
(JSC::WASMFunctionCompiler::buildSwitch): Deleted.
(JSC::WASMFunctionCompiler::localAddress): Deleted.
(JSC::WASMFunctionCompiler::temporaryAddress): Deleted.
(JSC::WASMFunctionCompiler::appendCall): Deleted.
(JSC::WASMFunctionCompiler::appendCallWithExceptionCheck): Deleted.
(JSC::WASMFunctionCompiler::emitNakedCall): Deleted.
(JSC::WASMFunctionCompiler::appendCallSetResult): Deleted.
(JSC::WASMFunctionCompiler::callOperation): Deleted.
(JSC::WASMFunctionCompiler::boxArgumentsAndAdjustStackPointer): Deleted.
(JSC::WASMFunctionCompiler::callAndUnboxResult): Deleted.
(JSC::WASMFunctionCompiler::convertValueToInt32): Deleted.
(JSC::WASMFunctionCompiler::convertValueToDouble): Deleted.
(JSC::WASMFunctionCompiler::convertDoubleToValue): Deleted.
* wasm/WASMFunctionParser.cpp: Removed.
(JSC::nameOfType): Deleted.
(JSC::WASMFunctionParser::checkSyntax): Deleted.
(JSC::WASMFunctionParser::compile): Deleted.
(JSC::WASMFunctionParser::parseFunction): Deleted.
(JSC::WASMFunctionParser::parseLocalVariables): Deleted.
(JSC::WASMFunctionParser::parseStatement): Deleted.
(JSC::WASMFunctionParser::parseReturnStatement): Deleted.
(JSC::WASMFunctionParser::parseBlockStatement): Deleted.
(JSC::WASMFunctionParser::parseIfStatement): Deleted.
(JSC::WASMFunctionParser::parseIfElseStatement): Deleted.
(JSC::WASMFunctionParser::parseWhileStatement): Deleted.
(JSC::WASMFunctionParser::parseDoStatement): Deleted.
(JSC::WASMFunctionParser::parseLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseBreakStatement): Deleted.
(JSC::WASMFunctionParser::parseBreakLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseContinueStatement): Deleted.
(JSC::WASMFunctionParser::parseContinueLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseSwitchStatement): Deleted.
(JSC::WASMFunctionParser::parseExpression): Deleted.
(JSC::WASMFunctionParser::parseExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalI32ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalF32ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalF64ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseMinOrMaxExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseMinOrMaxExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseExpressionVoid): Deleted.
(JSC::WASMFunctionParser::parseGetLocalExpression): Deleted.
(JSC::WASMFunctionParser::parseGetGlobalExpression): Deleted.
(JSC::WASMFunctionParser::parseSetLocal): Deleted.
(JSC::WASMFunctionParser::parseSetGlobal): Deleted.
(JSC::WASMFunctionParser::parseMemoryAddress): Deleted.
(JSC::WASMFunctionParser::parseLoad): Deleted.
(JSC::WASMFunctionParser::parseStore): Deleted.
(JSC::WASMFunctionParser::parseCallArguments): Deleted.
(JSC::WASMFunctionParser::parseCallInternal): Deleted.
(JSC::WASMFunctionParser::parseCallIndirect): Deleted.
(JSC::WASMFunctionParser::parseCallImport): Deleted.
(JSC::WASMFunctionParser::parseConditional): Deleted.
(JSC::WASMFunctionParser::parseComma): Deleted.
(JSC::WASMFunctionParser::parseConvertType): Deleted.
* wasm/WASMFunctionParser.h: Removed.
(JSC::WASMFunctionParser::WASMFunctionParser): Deleted.
* wasm/WASMFunctionSyntaxChecker.h: Removed.
(JSC::WASMFunctionSyntaxChecker::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionSyntaxChecker::startFunction): Deleted.
(JSC::WASMFunctionSyntaxChecker::endFunction): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSetLocal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSetGlobal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildReturn): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildGetLocal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildGetGlobal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildConvertType): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildLoad): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildStore): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallInternal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallImport): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallIndirect): Deleted.
(JSC::WASMFunctionSyntaxChecker::appendExpressionList): Deleted.
(JSC::WASMFunctionSyntaxChecker::discard): Deleted.
(JSC::WASMFunctionSyntaxChecker::linkTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::jumpToTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::jumpToTargetIf): Deleted.
(JSC::WASMFunctionSyntaxChecker::startLoop): Deleted.
(JSC::WASMFunctionSyntaxChecker::endLoop): Deleted.
(JSC::WASMFunctionSyntaxChecker::startSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::endSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::startLabel): Deleted.
(JSC::WASMFunctionSyntaxChecker::endLabel): Deleted.
(JSC::WASMFunctionSyntaxChecker::breakTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::continueTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::breakLabelTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::continueLabelTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::stackHeight): Deleted.
(JSC::WASMFunctionSyntaxChecker::updateTempStackHeight): Deleted.
(JSC::WASMFunctionSyntaxChecker::updateTempStackHeightForCall): Deleted.
* wasm/WASMModuleParser.cpp: Removed.
(JSC::WASMModuleParser::WASMModuleParser): Deleted.
(JSC::WASMModuleParser::parse): Deleted.
(JSC::WASMModuleParser::parseModule): Deleted.
(JSC::WASMModuleParser::parseConstantPoolSection): Deleted.
(JSC::WASMModuleParser::parseSignatureSection): Deleted.
(JSC::WASMModuleParser::parseFunctionImportSection): Deleted.
(JSC::WASMModuleParser::parseGlobalSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDeclarationSection): Deleted.
(JSC::WASMModuleParser::parseFunctionPointerTableSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDefinitionSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDefinition): Deleted.
(JSC::WASMModuleParser::parseExportSection): Deleted.
(JSC::WASMModuleParser::getImportedValue): Deleted.
(JSC::parseWebAssembly): Deleted.
* wasm/WASMModuleParser.h: Removed.
* wasm/WASMReader.cpp: Removed.
(JSC::WASMReader::readUInt32): Deleted.
(JSC::WASMReader::readFloat): Deleted.
(JSC::WASMReader::readDouble): Deleted.
(JSC::WASMReader::readCompactInt32): Deleted.
(JSC::WASMReader::readCompactUInt32): Deleted.
(JSC::WASMReader::readString): Deleted.
(JSC::WASMReader::readType): Deleted.
(JSC::WASMReader::readExpressionType): Deleted.
(JSC::WASMReader::readExportFormat): Deleted.
(JSC::WASMReader::readByte): Deleted.
(JSC::WASMReader::readOpStatement): Deleted.
(JSC::WASMReader::readOpExpressionI32): Deleted.
(JSC::WASMReader::readOpExpressionF32): Deleted.
(JSC::WASMReader::readOpExpressionF64): Deleted.
(JSC::WASMReader::readOpExpressionVoid): Deleted.
(JSC::WASMReader::readVariableTypes): Deleted.
(JSC::WASMReader::readOp): Deleted.
(JSC::WASMReader::readSwitchCase): Deleted.
* wasm/WASMReader.h: Removed.
(JSC::WASMReader::WASMReader): Deleted.
(JSC::WASMReader::offset): Deleted.
(JSC::WASMReader::setOffset): Deleted.

Source/WTF:

Add Feature define for WebAssembly on mac.

* wtf/FeatureDefines.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoWindow's named properties should be exposed on a WindowProperties object in its prototype
cdumez@apple.com [Fri, 5 Aug 2016 18:36:21 +0000 (18:36 +0000)]
Window's named properties should be exposed on a WindowProperties object in its prototype
https://bugs.webkit.org/show_bug.cgi?id=160354

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window's named properties should be exposed on a WindowProperties object
in its prototype:
- http://heycam.github.io/webidl/#named-properties-object

Firefox and Chrome both comply with the specification. However, WebKit
had no "WindowProperties" object in the Window prototype chain and the
named properties are exposed on the Window object itself.

No new tests, rebaselined existing tests.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Deleted.
(WebCore::JSDOMWindow::put): Deleted.
(WebCore::JSDOMWindow::putByIndex): Deleted.
(WebCore::JSDOMWindow::getEnumerableLength): Deleted.
* bindings/js/JSDOMWindowProperties.cpp: Added.
(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):
* bindings/js/JSDOMWindowProperties.h: Added.
(WebCore::JSDOMWindowProperties::create):
(WebCore::JSDOMWindowProperties::createStructure):
(WebCore::JSDOMWindowProperties::JSDOMWindowProperties):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow):

LayoutTests:

* fast/dom/Window/es52-globals-expected.txt:
Update / Rebaseline test now that named properties are no longer reported as "own"
properties on the Window object. I have verified that the test gives the
same result in Firefox and Chrome.

* fast/loader/window-clearing-expected.txt:
Rebaseline test that prints one more line because there is one more
object in Window's prototype chain.

* http/tests/security/window-named-proto-expected.txt:
* http/tests/security/window-named-valueOf-expected.txt:
Rebaseline 2 security tests that give slightly different output. The new
output is identical to the one in Firefox and Chrome. The tests are not
failing since they are not alert'ing content from the other frame.
The reason those tests were logging a security error is because we would
previously prevent named property access if the frame name conflicts with
a property name in the Window prototype, and we now no longer
differentiate this case.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204179 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3 years agoCreate platform/gamepad directory, and make GamepadProvider pure virtual (with a...
beidson@apple.com [Fri, 5 Aug 2016 18:27:49 +0000 (18:27 +0000)]
Create platform/gamepad directory, and make GamepadProvider pure virtual (with a default empty implementation).
https://bugs.webkit.org/show_bug.cgi?id=160599

Reviewed by Alex Christensen.

No new tests (No behavior change).

Except for the GamepadProvider/EmptyGamepadProvider split, this is just moving files around.

* CMakeLists.txt:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebCore.xcodeproj/project.pbxproj:
* platform/Linux.cmake:

* platform/gamepad.h: Removed.

* platform/gamepad/EmptyGamepadProvider.cpp:
(WebCore::EmptyGamepadProvider::startMonitoringGamepads):
(WebCore::EmptyGamepadProvider::stopMonitoringGamepads):
(WebCore::EmptyGamepadProvider::platformGamepads):
* platform/gamepad/EmptyGamepadProvider.h:

* platform/gamepad/GamepadProvider.cpp: Renamed from Source/WebCore/platform/GamepadProvider.cpp.
(WebCore::GamepadProvider::singleton):
(WebCore::GamepadProvider::setSharedProvider):
* platform/gamepad/GamepadProvider.h: Renamed from Source/WebCore/platform/GamepadProvider.h.
(WebCore::GamepadProvider::~GamepadProvider):

* platform/gamepad/GamepadProviderClient.h: Renamed from Source/WebCore/platform/GamepadProviderClient.h.
(WebCore::GamepadProviderClient::~GamepadProviderClient):

* platform/gamepad/PlatformGamepad.h: Renamed from Source/WebCore/platform/PlatformGamepad.h.
(WebCore::PlatformGamepad::~PlatformGamepad):
(WebCore::PlatformGamepad::id):
(WebCore::PlatformGamepad::index):
(WebCore::PlatformGamepad::lastUpdateTime):
(WebCore::PlatformGamepad::connectTime):
(WebCore::PlatformGamepad::PlatformGamepad):

* platform/gamepad/deprecated/Gamepads.h: Renamed from Source/WebCore/platform/Gamepads.h.

* platform/gamepad/efl/GamepadsEfl.cpp: Renamed from Source/WebCore/platform/efl/GamepadsEfl.cpp.
(WebCore::GamepadDeviceEfl::resetFdHandler):
(WebCore::GamepadDeviceEfl::deviceFile):
(WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::~GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::readCallback):
(WebCore::GamepadsEfl::onGamePadChange):
(WebCore::GamepadsEfl::GamepadsEfl):
(WebCore::GamepadsEfl::~GamepadsEfl):
(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadsEfl::unregisterDevice):
(WebCore::GamepadsEfl::updateGamepadList):
(WebCore::sampleGamepads):

* platform/gamepad/glib/GamepadsGlib.cpp: Renamed from Source/WebCore/platform/glib/GamepadsGlib.cpp.
(WebCore::GamepadDeviceGlib::GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::~GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::readCallback):
(WebCore::GamepadsGlib::GamepadsGlib):
(WebCore::GamepadsGlib::~GamepadsGlib):
(WebCore::GamepadsGlib::registerDevice):
(WebCore::GamepadsGlib::unregisterDevice):
(WebCore::GamepadsGlib::updateGamepadList):
(WebCore::GamepadsGlib::onUEventCallback):
(WebCore::GamepadsGlib::isGamepadDevice):
(WebCore::sampleGamepads):

* platform/gamepad/linux/GamepadDeviceLinux.cpp: Renamed from Source/WebCore/platform/linux/GamepadDeviceLinux.cpp.
(WebCore::GamepadDeviceLinux::GamepadDeviceLinux):
(WebCore::GamepadDeviceLinux::~GamepadDeviceLinux):
(WebCore::GamepadDeviceLinux::updateForEvent):
(WebCore::GamepadDeviceLinux::normalizeAxisValue):
(WebCore::GamepadDeviceLinux::normalizeButtonValue):
* platform/gamepad/linux/GamepadDeviceLinux.h: Renamed from Source/WebCore/platform/linux/GamepadDeviceLinux.h.
(WebCore::GamepadDeviceLinux::connected):
(WebCore::GamepadDeviceLinux::id):
(WebCore::GamepadDeviceLinux::timestamp):
(WebCore::GamepadDeviceLinux::axesCount):
(WebCore::GamepadDeviceLinux::axesData):
(WebCore::GamepadDeviceLinux::buttonsCount):
(WebCore::GamepadDeviceLinux::buttonsData):

* platform/gamepad/mac/HIDGamepad.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepad.cpp.
(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::getCurrentValueForElement):
(WebCore::HIDGamepad::initElements):
(WebCore::HIDGamepad::initElementsFromArray):
(WebCore::HIDGamepad::maybeAddButton):
(WebCore::HIDGamepad::maybeAddAxis):
(WebCore::HIDGamepad::valueChanged):
* platform/gamepad/mac/HIDGamepad.h: Renamed from Source/WebCore/platform/mac/HIDGamepad.h.
(WebCore::HIDGamepadElement::HIDGamepadElement):
(WebCore::HIDGamepadElement::~HIDGamepadElement):
(WebCore::HIDGamepadElement::isButton):
(WebCore::HIDGamepadElement::isAxis):
(WebCore::HIDGamepadButton::HIDGamepadButton):
(WebCore::HIDGamepadAxis::HIDGamepadAxis):
(WebCore::HIDGamepad::hidDevice):

* platform/gamepad/mac/HIDGamepadProvider.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepadProvider.cpp.
(WebCore::deviceMatchingDictionary):
(WebCore::deviceAddedCallback):
(WebCore::deviceRemovedCallback):
(WebCore::deviceValuesChangedCallback):
(WebCore::HIDGamepadProvider::singleton):
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::valuesChanged):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::removeGamepadForDevice):
* platform/gamepad/mac/HIDGamepadProvider.h: Renamed from Source/WebCore/platform/mac/HIDGamepadProvider.h.
(WebCore::HIDGamepadProvider::platformGamepads):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204178 268f45cc-cd09-0410-ab3c-d52691b4dbfc