sbarati@apple.com [Thu, 1 Sep 2016 08:22:21 +0000 (08:22 +0000)]
JITMathIC was misusing maxJumpReplacementSize
https://bugs.webkit.org/show_bug.cgi?id=161356
<rdar://problem/
28065560>
Reviewed by Benjamin Poulain.
JITMathIC was assuming that maxJumpReplacementSize is the size
you'd get if you emitted a patchableJump() using the macro assembler.
This is not true, however. It happens to be true on arm64, x86 and x86-64,
however, it is not true on armv7. This patch introduces an alternative to
maxJumpReplacementSize called patchableJumpSize, and switches JITMathIC
to use that number instead.
* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::patchableJumpSize):
(JSC::ARM64Assembler::maxJumpReplacementSize): Deleted.
* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::patchableJumpSize):
(JSC::ARMv7Assembler::maxJumpReplacementSize): Deleted.
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::patchableJumpSize):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::patchableJumpSize):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::patchableJumpSize):
* assembler/X86Assembler.h:
(JSC::X86Assembler::patchableJumpSize):
(JSC::X86Assembler::maxJumpReplacementSize): Deleted.
* jit/JITMathIC.h:
(JSC::JITMathIC::generateInline):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205283
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mmaxfield@apple.com [Thu, 1 Sep 2016 07:37:19 +0000 (07:37 +0000)]
Clean up TextRun-related code
https://bugs.webkit.org/show_bug.cgi?id=161473
Reviewed by Simon Fraser.
Source/WebCore:
Some assorted cleanup, including:
- Renaming "AllowTrailingExpansion | ForbidLeadingExpansion" to "DefaultExpansion"
- Migrating from pointers to references
- Migrating from ints to unsigneds
- Using proper character names from CharacterNames.h
- Simplifying CoreTextSPI.h
No new tests because there is no behavior change.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::TextLayout::isNeeded):
(WebCore::TextLayout::constructTextRun):
* platform/spi/cocoa/CoreTextSPI.h:
* platform/text/TextFlags.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::getRelativeMarkerRect):
* rendering/RenderMenuList.cpp:
(RenderMenuList::updateOptionsWidth):
* rendering/RenderText.cpp:
(WebCore::RenderText::widthFromCache):
(WebCore::RenderText::trimmedPrefWidths):
(WebCore::hyphenWidth):
(WebCore::maxWordFragmentWidth):
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::width):
* rendering/RenderText.h:
* rendering/RenderThemeIOS.mm:
* rendering/line/BreakingContext.h:
(WebCore::textWidth):
(WebCore::tryHyphenating):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::offsetForPositionInFragment):
(WebCore::SVGInlineTextBox::selectionRectForTextFragment):
(WebCore::SVGInlineTextBox::localSelectionRect):
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):
(WebCore::SVGInlineTextBox::acquirePaintingResource):
(WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):
(WebCore::SVGInlineTextBox::constructTextRun):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::paintText):
* rendering/svg/SVGInlineTextBox.h:
Source/WebKit/mac:
Remove unused #includes.
* WebCoreSupport/WebDragClient.mm:
* WebView/WebView.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205282
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Thu, 1 Sep 2016 07:31:42 +0000 (07:31 +0000)]
Unreviewed. Fix webkitpy unit tests after r205280.
* Scripts/webkitpy/style/checker_unittest.py:
(GlobalVariablesTest.test_path_rules_specifier):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205281
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Thu, 1 Sep 2016 06:45:40 +0000 (06:45 +0000)]
[GTK] Move GObject DOM bindings to WebKit2 layer and stop auto generating them
https://bugs.webkit.org/show_bug.cgi?id=161438
Reviewed by Michael Catanzaro.
.:
* Source/PlatformGTK.cmake:
* Source/cmake/OptionsGTK.cmake:
Source/WebCore:
Remove the scripts to generate GObject DOM bindings and the tests. Also remove all GObject ifdefs from the idl files.
* PlatformGTK.cmake:
* bindings/gobject: Removed.
* bindings/scripts/CodeGeneratorGObject.pm: Removed.
* bindings/scripts/test/GObject: Removed.
* css/CSSStyleSheet.idl:
* css/RGBColor.idl:
* dom/DOMCoreException.idl:
* dom/DOMImplementation.idl:
* dom/Document.idl:
* dom/DocumentType.idl:
* dom/Element.idl:
* dom/Event.idl:
* dom/EventTarget.idl:
* dom/KeyboardEvent.idl:
* dom/MessageEvent.idl:
* dom/MessagePort.idl:
* dom/MouseEvent.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/Range.idl:
* dom/Slotable.idl:
* dom/WheelEvent.idl:
* fileapi/FileException.idl:
* html/HTMLAppletElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLSelectElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLVideoElement.idl:
* html/ImageData.idl:
* html/URLUtils.idl:
* html/track/TextTrack.idl:
* page/DOMSelection.idl:
* page/DOMWindow.idl:
* svg/SVGDocument.idl:
* svg/SVGElement.idl:
* svg/SVGException.idl:
* workers/DedicatedWorkerGlobalScope.idl:
* workers/Worker.idl:
* workers/WorkerGlobalScope.idl:
* xml/XPathException.idl:
Source/WebKit2:
Move all GObject bindings code to WebProcess/InjectedBundle/API/gtk/DOM.
* PlatformGTK.cmake:
* WebProcess/InjectedBundle/API/gtk/DOM:
Tools:
Remove scripts related to the GObject DOM bindings auto-generation.
* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(RunGtkAPITests.getText2):
(TestFactory.__init__):
(RunWebKit1Tests): Deleted.
(RunWebKit1Tests.start): Deleted.
(RunWebKit1LeakTests): Deleted.
(RunWebKit1LeakTests.start): Deleted.
(RunAndUploadPerfTests): Deleted.
(RunAndUploadPerfTests.start): Deleted.
(BuildAndRemoteJSCTestsFactory.__init__): Deleted.
* BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
(BuildStepsTest.test_unnecessary_expected_results):
(RunAndUploadPerfTestsTest): Deleted.
(RunAndUploadPerfTestsTest.assertResults): Deleted.
(RunAndUploadPerfTestsTest.test_success): Deleted.
(RunAndUploadPerfTestsTest.test_tests_failed): Deleted.
(RunAndUploadPerfTestsTest.test_build_bad_build): Deleted.
(RunAndUploadPerfTestsTest.test_build_bad_source_json): Deleted.
(RunAndUploadPerfTestsTest.test_build_bad_marge): Deleted.
(RunAndUploadPerfTestsTest.test_build_bad_failed_uploading): Deleted.
(RunAndUploadPerfTestsTest.test_build_bad_preparation): Deleted.
(RunAndUploadPerfTestsTest.test_buildbot_timeout): Deleted.
(RunBenchmarkTest): Deleted.
(RunBenchmarkTest.assertResults): Deleted.
(RunBenchmarkTest.test_success): Deleted.
* Scripts/run-bindings-tests:
(main):
* Scripts/webkitpy/style/checker.py:
* gtk/check-for-webkitdom-api-breaks: Removed.
* gtk/generate-gtkdoc:
* gtk/webkitdom.py: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205280
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
gyuyoung.kim@webkit.org [Thu, 1 Sep 2016 05:47:16 +0000 (05:47 +0000)]
[EFL] Small clean up in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=161428
Reviewed by Yusuke Suzuki.
This patch resizes MiniBrowser, add *char* constants for scheme,
does line breaking, and remove unnecessary spaces.
* MiniBrowser/efl/main.c:
(on_mouse_wheel):
(history_list_hide):
(script_execute_callback):
(on_key_down):
(on_url_changed):
(on_error):
(on_color_picker_request):
(url_from_user_input):
(url_load_from_user_input):
(on_back_button_clicked):
(on_search_case_option_changed):
(on_search_word_start_option_changed):
(on_list_item_select):
(navigation_button_longpress_process):
(on_navigation_policy_decision):
(window_create):
(parse_cookies_policy):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205279
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 1 Sep 2016 03:48:34 +0000 (03:48 +0000)]
[JSC] Add initiator parameter to module pipeline
https://bugs.webkit.org/show_bug.cgi?id=161470
Reviewed by Saam Barati.
Source/JavaScriptCore:
The fetching semantics of the <script type="module"> tag has per module-tag context.
For example, "nonce", "crossorigin" etc. attributes are shared in the fetching requests
issued from the module-tag. To transfer this information, we add a new parameter "initiator"
to the module loader pipeline. We are planning to transfer information by this parameter.
At the same time, we also perform some clean up.
- Use arrow function in ModuleLoaderPrototype.js.
- Rename "ResolveDependencies" to "Satisfy" to align to the loader spec.
* builtins/ModuleLoaderPrototype.js:
(newRegistryEntry):
(commitInstantiated):
(requestFetch):
(requestTranslate):
(requestInstantiate):
(requestSatisfy):
(requestInstantiateAll):
(requestLink):
(moduleEvaluation):
(provide):
(loadAndEvaluateModule):
(requestResolveDependencies.): Deleted.
(requestResolveDependencies): Deleted.
(requestReady): Deleted.
(link): Deleted.
(loadModule): Deleted.
(linkAndEvaluateModule): Deleted.
* bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
* bytecode/BytecodeIntrinsicRegistry.h:
* jsc.cpp:
(GlobalObject::moduleLoaderResolve):
(GlobalObject::moduleLoaderFetch):
* runtime/Completion.cpp:
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
(JSC::linkAndEvaluateModule):
* runtime/Completion.h:
* runtime/JSGlobalObject.h:
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::JSModuleLoader::translate):
(JSC::JSModuleLoader::instantiate):
(JSC::JSModuleLoader::evaluate):
* runtime/JSModuleLoader.h:
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeResolve):
(JSC::moduleLoaderPrototypeFetch):
(JSC::moduleLoaderPrototypeTranslate):
(JSC::moduleLoaderPrototypeInstantiate):
(JSC::moduleLoaderPrototypeEvaluate):
Source/WebCore:
No user-observable behavior change.
We rename JSModuleLoader to ScriptModuleLoader.
The name "JSModuleLoader" is misleading since it seems like this is a JS object.
"ModuleLoader" is not good since there is CSS modules.
* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderResolve):
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::loadModule):
(WebCore::JSMainThreadExecState::linkAndEvaluateModule):
* bindings/js/JSModuleLoader.cpp:
(WebCore::JSModuleLoader::JSModuleLoader): Deleted.
(WebCore::JSModuleLoader::resolve): Deleted.
(WebCore::JSModuleLoader::fetch): Deleted.
(WebCore::JSModuleLoader::evaluate): Deleted.
* bindings/js/JSModuleLoader.h:
(WebCore::JSModuleLoader::document): Deleted.
* bindings/js/ScriptModuleLoader.cpp: Renamed from Source/WebCore/bindings/js/JSModuleLoader.cpp.
(WebCore::ScriptModuleLoader::ScriptModuleLoader):
(WebCore::ScriptModuleLoader::resolve):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::ScriptModuleLoader::evaluate):
* bindings/js/ScriptModuleLoader.h: Renamed from Source/WebCore/bindings/js/JSModuleLoader.h.
(WebCore::ScriptModuleLoader::document):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::moduleLoader):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205278
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Thu, 1 Sep 2016 03:34:36 +0000 (03:34 +0000)]
ASSERTION FAILED: !flow->layer() && !flow->isInlineElementContinuation() in WebCore::RenderBlock::addContinuationWithOutline
https://bugs.webkit.org/show_bug.cgi?id=151022
<rdar://problem/
27710993>
Reviewed by Simon Fraser.
Source/WebCore:
Certain CSS properties like opacity, mask etc (graphical group members) require the layer to be a non-normal flow,
self painting layer so that we can manage painting properly. However in addition to those CSS properties, some of the will-change
values (again, graphical group members) also require the layer to be non-normal flow, self painting.
This patch ensures that when deciding whether a layer should be a normal flow layer, we take the will-change values into account as well.
Tests: compositing/layer-creation/assert-on-inline-element-with-will-change.html
compositing/layer-creation/will-change-on-normal-flow-content.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/style/WillChangeData.cpp:
(WebCore::propertyCreatesGraphicalGroup):
(WebCore::WillChangeData::addFeature):
* rendering/style/WillChangeData.h:
(WebCore::WillChangeData::canCreateGraphicalGroup):
(WebCore::WillChangeData::canTriggerCompositingOnInline): Deleted.
LayoutTests:
* compositing/layer-creation/assert-on-inline-element-with-will-change-expected.txt: Added.
* compositing/layer-creation/assert-on-inline-element-with-will-change.html: Added.
* compositing/layer-creation/will-change-on-normal-flow-content-expected.txt: Added.
* compositing/layer-creation/will-change-on-normal-flow-content.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205277
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 1 Sep 2016 02:11:43 +0000 (02:11 +0000)]
[JSC] linking and evaluating the modules are done in a sync manner
https://bugs.webkit.org/show_bug.cgi?id=161467
Reviewed by Saam Barati.
While the fetching and the other stages are done in an asynchronous manner,
linking and evaluating are done in a sync manner.
Just return the result value and do not wrap them with the internal promise.
* builtins/ModuleLoaderPrototype.js:
(linkAndEvaluateModule):
* runtime/Completion.cpp:
(JSC::linkAndEvaluateModule):
* runtime/Completion.h:
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::linkAndEvaluateModule):
* runtime/JSModuleLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205276
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krollin@apple.com [Thu, 1 Sep 2016 01:33:40 +0000 (01:33 +0000)]
WebKit should set a subsystem for os_log so it's easier to filter for WebKit log messages
https://bugs.webkit.org/show_bug.cgi?id=160969
<rdar://problem/
26068734>
Reviewed by Simon Fraser.
Source/WebCore:
- Specify a channel when using RELEASE_LOG macros
- Add a new channel so that we have something to pass to the
RELEASE_LOG macros (Layers).
- Enable subsystem- and channel-related data and functions when using
RELEASE_LOG macros.
- Use the DECLARE_LOG_CHANNEL, DEFINE_LOG_CHANNEL, and
LOG_CHANNEL_ADDRESS macros that are now defined in WTF.
No new tests. There are no tests for logging.
* loader/FrameLoader.cpp:
* platform/LogInitialization.h:
* platform/LogMacros.h:
* platform/Logging.cpp:
* platform/Logging.h:
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::IOSurface):
* platform/mac/LoggingMac.mm:
* platform/unix/LoggingUnix.cpp:
* platform/win/LoggingWin.cpp:
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::initializeLogChannelsIfNecessary):
Source/WebKit/mac:
Enable subsystem- and channel-related data and functions when using
RELEASE_LOG macros. Use the DECLARE_LOG_CHANNEL, DEFINE_LOG_CHANNEL,
and LOG_CHANNEL_ADDRESS macros that are now defined in WTF.
* Misc/WebKitLogging.h:
* Misc/WebKitLogging.m:
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
Source/WebKit/win:
Enable subsystem- and channel-related data and functions when using
RELEASE_LOG macros. Use the DECLARE_LOG_CHANNEL, DEFINE_LOG_CHANNEL,
and LOG_CHANNEL_ADDRESS macros that are now defined in WTF.
* WebKitLogging.cpp:
* WebKitLogging.h:
* WebView.cpp:
(WebView::initWithFrame):
Source/WebKit2:
- Specify a channel when using RELEASE_LOG macros.
- Add some new channels so that we have something to pass to the
RELEASE_LOG macros (ProcessSuspension, IPC, Layers).
- Enable subsystem- and channel-related data and functions when using
RELEASE_LOG macros.
- Use the DECLARE_LOG_CHANNEL, DEFINE_LOG_CHANNEL, and
LOG_CHANNEL_ADDRESS macros that are now defined in WTF.
* NetworkProcess/Downloads/Download.cpp:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::cancelPrepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
* NetworkProcess/NetworkResourceLoader.cpp:
* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply):
* Platform/LogInitialization.h:
* Platform/Logging.cpp:
(WebKit::initializeLogChannelsIfNecessary):
* Platform/Logging.h:
* Platform/foundation/LoggingFoundation.mm:
* Platform/unix/LoggingUnix.cpp:
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::releaseNetworkActivityToken):
(WebKit::NavigationState::didChangeIsLoading):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(WebKit::ProcessAssertion::ProcessAssertion):
* WebProcess/Network/WebLoaderStrategy.cpp:
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::layerVolatilityTimerFired):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::processWillSuspendImminently):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::processDidResume):
Source/WTF:
Add support for attaching a subsystem and category when logging via
the RELEASE_LOG macros. This support is provided by adding subsystem
and category information to WTFLogChannel. An os_log_t object is then
created to enacpsulate that information. When using RELEASE_LOG to log
through that channel, the associated log object is used when calling
os_log.
To help support the inclusion of the subsystem and category
information in WTFLogChannel, the DECLARE_LOG_CHANNEL,
DEFINE_LOG_CHANNEL, and LOG_CHANNEL_ADDRESS macros that were defined
in various modules are consolidated and moved to Assertions.h.
DEFINE_LOG_CHANNEL is now defined to initialize the subsystem and
category.
* wtf/Assertions.cpp:
* wtf/Assertions.h:
* wtf/RefCountedLeakCounter.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205275
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 1 Sep 2016 01:23:56 +0000 (01:23 +0000)]
Enable the YouTube Flash plug-in replacement behavior on all Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=161453
<rdar://problem/
28050847>
Patch by Ricky Mondello <rmondello@apple.com> on 2016-08-31
Reviewed by Eric Carlson.
Now that we have some tests for the URL transformation logic (r205212) and the ability to enable the YouTube
Flash plug-in replacement behavior independently from the QuickTime plug-in replacement behavior (r205214 and
r205271), enable the YouTube Flash plug-in replacement behavior for Cocoa ports. We can and will continue to
improve it.
* page/Settings.cpp: Enable the feature for PLATFORM(COCOA), rather than just PLATFORM(IOS).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205274
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Thu, 1 Sep 2016 00:23:47 +0000 (00:23 +0000)]
Implement IPv6 parsing in URLParser
https://bugs.webkit.org/show_bug.cgi?id=161390
Reviewed by Darin Adler.
Source/WebCore:
Covered by new API tests.
* platform/URLParser.cpp:
(WebCore::zeroSequenceLength):
(WebCore::findLongestZeroSequence):
(WebCore::nibbleToHex):
(WebCore::serializeIPv6Piece):
(WebCore::serializeIPv6):
(WebCore::parseIPv6Host):
(WebCore::URLParser::hostEndReached):
Source/WTF:
* wtf/ASCIICType.h:
(WTF::lowerNibbleToLowercaseASCIIHexDigit):
(WTF::upperNibbleToLowercaseASCIIHexDigit):
Tools:
* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::checkURLDifferences):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205273
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 23:59:00 +0000 (23:59 +0000)]
Break pluginReplacementEnabled into youTubeFlashPluginReplacementEnabled and quickTimePluginReplacementEnabled
https://bugs.webkit.org/show_bug.cgi?id=161424
<rdar://problem/
28050847>
Patch by Ricky Mondello <rmondello@apple.com> on 2016-08-31
Reviewed by Dean Jackson.
Source/WebCore:
Replace the single pluginReplacementEnabled setting with individual settings for the YouTube Flash plug-in
behavior and the QuickTime plug-in behavior. Unless otherwise noted, this change copies the existing plumbing
for pluginReplacementEnabled and renames it twice. The default values for these settings remain the same.
* Modules/plugins/PluginReplacement.h:
(WebCore::ReplacementPlugin::ReplacementPlugin): Augment the constructor.
(WebCore::ReplacementPlugin::isEnabledBySettings): Added.
* Modules/plugins/QuickTimePluginReplacement.h: Declare a static member function.
* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::registerPluginReplacement): Properly create a ReplacementPlugin instance.
(WebCore::QuickTimePluginReplacement::isEnabledBySettings): Added.
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::registerPluginReplacement): Properly create a ReplacementPlugin instance.
(WebCore::YouTubePluginReplacement::isEnabledBySettings): Added.
* Modules/plugins/YouTubePluginReplacement.h: Declare a static member function.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::requestObject): Ask the ReplacementPlugin whether it's enabled, rather than assume
all plug-in replacement is guarded by a single run-time setting.
* page/Settings.cpp: Declare values for defaults for both settings.
* page/Settings.in: Declare two settings.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Handle both settings.
(WebCore::InternalSettings::Backup::restoreTo): Ditto.
(WebCore::InternalSettings::setQuickTimePluginReplacementEnabled): Added.
(WebCore::InternalSettings::setYouTubeFlashPluginReplacementEnabled): Added.
(WebCore::InternalSettings::setPluginReplacementEnabled): Deleted.
* testing/InternalSettings.h: Duplicate and rename.
* testing/InternalSettings.idl: Ditto.
LayoutTests:
* plugins/quicktime-plugin-replacement.html: Updated for the internal setting rename.
* security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement.html: Ditto.
* security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Ditto.
* security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html: Ditto.
* security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Ditto.
* security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type.html: Ditto.
* security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html: Ditto.
* security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Ditto.
* security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205271
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Wed, 31 Aug 2016 23:58:21 +0000 (23:58 +0000)]
Gardening: skipping a flaky test from the JSC test suite.
https://bugs.webkit.org/show_bug.cgi?id=161437
Not reviewed.
* js/script-tests/regress-141098.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205270
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yoav@yoav.ws [Wed, 31 Aug 2016 22:41:44 +0000 (22:41 +0000)]
Add event support for link preload.
https://bugs.webkit.org/show_bug.cgi?id=158466
Reviewed by Alex Christensen.
Source/WebCore:
Add onload/onerror support for link rel preload to align it with the spec
and enable various resource loading use-cases.
This patch also fixes XHR matching issues by replacing LinkPreload with RawResource.
Tests: http/tests/misc/script_onload_delays_window_onload.html
http/tests/preload/delaying_onload_link_preload_after_discovery.html
http/tests/preload/delaying_onload_link_preload_after_discovery_image.html
http/tests/preload/not_delaying_window_onload_before_discovery.html
http/tests/preload/onerror_event.html
http/tests/preload/onload_event.html
* CMakeLists.txt: Add LinkPreloadResourceClients.{h,cpp}
* WebCore.xcodeproj/project.pbxproj: Add LinkPreloadResourceClients.{h,cpp}.
* html/HTMlLinkElement.cpp:
(WebCore::linkErrorEventSender): Add an eventSender for the error event.
(WebCore::HTMLLinkElement::HTMLLinkElement): s/m_loadedSheet/m_loadedResource/
(WebCore::HTMLLinkElement::~HTMLLinkElement): Cancel the error event when the element gets destructed.
(WebCore::HTMLLinkElement::linkLoaded): dispatch the event in an async manner.
(WebCore::HTMLLinkElement::linkLoadingErrored): dispatch the event in an async manner.
(WebCore::HTMLLinkElement::dispatchPendingEvent): Call dispatchEvent directly.
(WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources): s/m_loadedSheet/m_loadedResource/
* html/HTMLLinkElement.h: s/m_loadedSheet/m_loadedResource/
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::HTMLResourcePreloader::preload): Call preload as ImplicitPreload, to distinguish it from declarative preload.
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::LinkLoader): Get rid of unnecessary event timers and add a weakPtrFactory.
(WebCore::LinkLoader::triggerEvents): Add a triggerEvents function that can be called from notifyFinished as well as the
LinkPreloadResourceClients.
(WebCore::LinkLoader::notifyFinished): Call the triggerEvents function.
(WebCore::LinkLoader::resourceTypeFromAsAttribute): Replace LinkPreload with RawResource to avoid XHR resource matching issues.
(WebCore::createLinkPreloadResourceClient): Create a resource client for link preload.
(WebCore::LinkLoader::preloadIfNeeded): Trigger an error when `as` is unknown. Make sure that preload resources don't delay window.onload
before discovery. Get the resource back from calling preload and create a client for that resource.
(WebCore::LinkLoader::linkLoadTimerFired): Deleted.
(WebCore::LinkLoader::linkLoadingErrorTimerFired): Deleted.
(WebCore::preloadIfNeeded): Deleted.
* loader/LinkLoader.h:
(WebCore::LinkLoader::createWeakPtr):
* loader/LinkPreloadResourceClients.cpp: Added.
(WebCore::LinkPreloadResourceClient::LinkPreloadResourceClient): Create a LinkPreloadResourceClient and assign with with a weakPtr of
LinkLoader.
(WebCore::LinkPreloadResourceClient::triggerEvents): Call LinkLoader's triggerEvents.
* loader/LinkPreloadResourceClients.h: Added.
(WebCore::LinkPreloadResourceClient::~LinkPreloadResourceClient):
(WebCore::LinkPreloadResourceClient::addResource): Add as resource's client.
(WebCore::LinkPreloadResourceClient::clearResource): Remove as resource's client and clear ref to resource.
(WebCore::LinkPreloadResourceClient::ownedResource): Return ref to resource.
* loader/ResourceLoadInfo.cpp:
(WebCore::toResourceType): Removed LinkPreload.
* loader/SubresourceLoader.cpp:
(WebCore::logResourceLoaded): Removed LinkPreload.
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::defaultPriorityForResourceType): Removed LinkPreload.
* loader/cache/CachedResource.h: Removed LinkPreload.
(WebCore::CachedResource::ignoreForRequestCount): Don't delay window.onload for requests that opted out of that.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::checkInsecureContent): Removed LinkPreload.
(WebCore::CachedResourceLoader::requestResource): Make sure that discovered preload resources do block window.onload.
(WebCore::CachedResourceLoader::preload): Make sure that explicitly preloaded subresources can be fetched even if there are parser
blocking resources still in flight. Return the preloaded resource.
(WebCore::CachedResourceLoader::requestPreload): Make sure that preloaded fonts get requested. Return preloaded resource.
(WebCore::createResource): Removed LinkPreload.
(WebCore::contentTypeFromResourceType): Removed LinkPreload.
(WebCore::CachedResourceLoader::canRequest): Removed LinkPreload.
* loader/cache/CachedResourceLoader.h:
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::ignoreForRequestCount): Get the flag saying if a resource should block window.onload.
(WebCore::ResourceRequestBase::setIgnoreForRequestCount): Set the flag saying if a resource should block window.onload.
Source/WebKit2:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::maximumBufferingTime): Removed LinkPreload.
LayoutTests:
Add tests that make sure that event handling with regarding to link preload
is working as it should.
* http/tests/misc/script_onload_delays_window_onload-expected.txt: Added.
* http/tests/misc/script_onload_delays_window_onload.html: Added.
* http/tests/preload/delaying_onload_link_preload_after_discovery-expected.txt: Added.
* http/tests/preload/delaying_onload_link_preload_after_discovery.html: Added.
* http/tests/preload/delaying_onload_link_preload_after_discovery_image-expected.txt: Added.
* http/tests/preload/delaying_onload_link_preload_after_discovery_image.html: Added.
* http/tests/preload/dynamic_remove_preload_href-expected.txt:
* http/tests/preload/dynamic_remove_preload_href.html:
* http/tests/preload/not_delaying_window_onload_before_discovery-expected.txt: Added.
* http/tests/preload/not_delaying_window_onload_before_discovery.html: Added.
* http/tests/preload/onerror_event-expected.txt: Added.
* http/tests/preload/onerror_event.html: Added.
* http/tests/preload/onload_event-expected.txt: Added.
* http/tests/preload/onload_event.html: Added.
* http/tests/preload/resources/single_download_preload.html:
* http/tests/resources/dummy.css: Added.
* http/tests/resources/dummy.js: Added.
* http/tests/resources/dummy.xml: Added.
* http/tests/resources/slow-image.php: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205269
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
joepeck@webkit.org [Wed, 31 Aug 2016 22:16:23 +0000 (22:16 +0000)]
Web Inspector: XHR with text but responseType = "blob" shows blank content
https://bugs.webkit.org/show_bug.cgi?id=161422
<rdar://problem/
28066869>
Reviewed by Brian Burg.
Source/WebCore:
Test: inspector/network/xhr-json-blob-has-content.html
When an XMLHttpRequest finished loading it was always setting the Inspector's
content for that load at the end. However, if the XHR was loading binary data
then it was passing an empty string to the inspector and overwriting the
data the inspector already had for the resource. Avoid this overwriting.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didFinishLoading):
When loading binary content we have no decoded text to send to the inspector.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
Switch to an Optional string, and if it is not available don't
call through to the NetworkAgent expecting decoded text.
* inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::didFinishXHRLoading):
* inspector/InspectorNetworkAgent.h:
Improve variable name.
LayoutTests:
* inspector/network/resources/data.json: Added.
* inspector/network/xhr-json-blob-has-content-expected.txt: Added.
* inspector/network/xhr-json-blob-has-content.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205268
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Wed, 31 Aug 2016 21:03:34 +0000 (21:03 +0000)]
stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=161436
Reviewed by Filip Pizlo.
JSTests:
The test checks Math.random() correctly produces 53bit random values.
The test can fail by design, but this should be fairly rare.
However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
and reproduce the situation easily.
* stress/random-53bit.js:
(test):
Source/JavaScriptCore:
* jsc.cpp:
(GlobalObject::finishCreation):
(functionGetRandomSeed):
(functionSetRandomSeed):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::weakRandom):
(JSC::JSGlobalObject::weakRandomInteger): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205267
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Wed, 31 Aug 2016 20:19:39 +0000 (20:19 +0000)]
Add runtime flag for using URLParser
https://bugs.webkit.org/show_bug.cgi?id=161363
Reviewed by Sam Weinig.
Source/WebCore:
No new tests. No change in default behavior.
* PlatformMac.cmake:
* platform/URL.cpp:
(WebCore::URL::URL):
(WebCore::URL::init):
(WebCore::URL::setProtocol):
(WebCore::URL::setHost):
(WebCore::URL::removePort):
(WebCore::URL::setPort):
(WebCore::URL::setHostAndPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):
(WebCore::URL::setFragmentIdentifier):
(WebCore::URL::removeFragmentIdentifier):
(WebCore::URL::setQuery):
(WebCore::URL::setPath):
(WebCore::URL::parse):
* platform/URLParser.cpp:
(WebCore::URLParser::parse):
(WebCore::URLParser::setEnabled):
(WebCore::URLParser::enabled):
* platform/URLParser.h:
* platform/cf/URLCF.cpp:
(WebCore::URL::URL):
* platform/cocoa/URLParserCocoa.mm: Added.
(WebCore::URLParser::URLParserEnabled):
* platform/mac/URLMac.mm:
(WebCore::URL::URL):
Source/WebKit2:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* Shared/Cocoa/WebKit2InitializeCocoa.mm: Added.
(WebKit::platformInitializeWebKit2):
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2):
* Shared/WebKit2Initialize.h:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* Shared/efl/WebKit2InitializeEFL.cpp: Added.
(WebKit::platformInitializeWebKit2):
* Shared/gtk/WebKit2InitializeGTK.cpp: Added.
(WebKit::platformInitializeWebKit2):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205266
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 20:18:44 +0000 (20:18 +0000)]
[Fetch API] Fetch API should be able to load data URL in Same Origin mode
https://bugs.webkit.org/show_bug.cgi?id=161434
Patch by Youenn Fablet <youenn@apple.com> on 2016-08-31
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
* web-platform-tests/fetch/api/basic/scheme-data-expected.txt:
* web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:
* web-platform-tests/fetch/api/basic/scheme-data.js:
(checkFetchResponse):
* web-platform-tests/fetch/api/redirect/redirect-to-dataurl-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-to-dataurl-worker-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-to-dataurl-worker.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-to-dataurl.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-to-dataurl.js: Added.
(redirectDataURL):
Source/WebCore:
Tests: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-to-dataurl-worker.html
imported/w3c/web-platform-tests/fetch/api/redirect/redirect-to-dataurl.html
Covered also by added sub-test.
Moving SameDataURLOrigin option from ThreadableLoaderOptions to ResourceLoaderOptions.
This allows doing some of the checks in CachedResourceLoader/CachedResource.
This also allows setting this options in CachedResourceLoader clients, ImageLoader in that case.
* Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start): Setting sameOriginDataURL as ResourceLoader option.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Setting sameOriginDataURL as specificied in
https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element.
* loader/ResourceLoaderOptions.h: Adding sameOriginDataURL as ResourceLoader option.
* loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Removing sameOriginDataURL option.
* loader/ThreadableLoader.h:
* loader/WorkerThreadableLoader.cpp: Setting sameOriginDataURL as ResourceLoader option.
(WebCore::LoaderTaskOptions::LoaderTaskOptions):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load): If resource URL is a data url, we previously marked the resource as same origin.
We only do that now if the sameOriginDataURL flag is set as per fetch specification.
See https://fetch.spec.whatwg.org/#main-fetch.
* loader/cache/CachedResourceLoader.cpp:
(WebCore::isSameOriginDataURL): Helper function.
(WebCore::CachedResourceLoader::canRequest): Allowing same origin loads of data URLs if flag is set and no redirection happens.
See https://fetch.spec.whatwg.org/#http-redirect-fetch for why we check redirection.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205265
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 31 Aug 2016 19:54:12 +0000 (19:54 +0000)]
Use Connection::sendWithReply for the SecItem shim messages
https://bugs.webkit.org/show_bug.cgi?id=161419
Reviewed by Tim Horton.
* DerivedSources.make:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeConnection):
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcess):
* Shared/mac/SecItemShim.cpp:
(WebKit::workQueue):
(WebKit::sendSecItemRequest):
(WebKit::webSecItemCopyMatching):
(WebKit::webSecItemAdd):
(WebKit::webSecItemUpdate):
(WebKit::webSecItemDelete):
(WebKit::initializeSecItemShim):
(WebKit::responseMap): Deleted.
(WebKit::SecItemShim::singleton): Deleted.
(WebKit::SecItemShim::SecItemShim): Deleted.
(WebKit::generateSecItemRequestID): Deleted.
(WebKit::SecItemShim::secItemResponse): Deleted.
(WebKit::SecItemShim::initialize): Deleted.
(WebKit::SecItemShim::initializeConnection): Deleted.
* Shared/mac/SecItemShim.h:
* Shared/mac/SecItemShim.messages.in: Removed.
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::didReceiveMessage):
(WebKit::SecItemShimProxy::secItemRequest):
* UIProcess/mac/SecItemShimProxy.h:
* UIProcess/mac/SecItemShimProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205264
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Wed, 31 Aug 2016 19:53:44 +0000 (19:53 +0000)]
HTML constructor must throw when newTarget is itself
https://bugs.webkit.org/show_bug.cgi?id=161430
Reviewed by Antti Koivisto.
Source/WebCore:
Per https://github.com/w3c/webcomponents/issues/541, we must throw a TypeError when the HTMLElement constructor
is called with new.target set to itself (i.e. new HTMLElement after registering it with a custom element).
Note that we can't check this at the time of customElements.define because it could be a Proxy object.
Also see: https://html.spec.whatwg.org/#html-element-constructors
Tests: fast/custom-elements/CustomElementRegistry.html
fast/custom-elements/HTMLElement-constructor.html
* bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement): Throw a TypeError when NewTarget is HTMLElement constructor itself.
LayoutTests:
Added test cases for defining a custom element with the HTMLElement constructor,
and making sure the HTMLElement constructor throws an exception when newTarget is itself.
* fast/custom-elements/CustomElementRegistry-expected.txt:
* fast/custom-elements/CustomElementRegistry.html:
* fast/custom-elements/HTMLElement-constructor-expected.txt:
* fast/custom-elements/HTMLElement-constructor.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205263
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Wed, 31 Aug 2016 19:39:06 +0000 (19:39 +0000)]
Rebaseline binding tests after r205257.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205262
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Wed, 31 Aug 2016 19:31:11 +0000 (19:31 +0000)]
Add the check for reentrancy to CustomElementRegistry
https://bugs.webkit.org/show_bug.cgi?id=161423
Reviewed by Antti Koivisto.
Source/WebCore:
Added the "element definition is running" flag to JSCustomElementRegistry:
https://html.spec.whatwg.org/multipage/scripting.html#element-definition-is-running
And added an exception for when this flag is set during JSCustomElementRegistry::define:
https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementregistry-define
Tests: fast/custom-elements/CustomElementRegistry.html
* bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::JSCustomElementRegistry::define): Throw NotSupportedError when m_elementDefinitionIsRunning is true.
* dom/CustomElementRegistry.h:
(WebCore::CustomElementRegistry::elementDefinitionIsRunning): Added.
LayoutTests:
Add test cases for reentrancy during customElements.define.
* fast/custom-elements/CustomElementRegistry-expected.txt:
* fast/custom-elements/CustomElementRegistry.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205261
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bshafiei@apple.com [Wed, 31 Aug 2016 19:15:32 +0000 (19:15 +0000)]
Versioning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205260
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Wed, 31 Aug 2016 19:03:53 +0000 (19:03 +0000)]
Object.getPrototypeOf() should return null cross-origin
https://bugs.webkit.org/show_bug.cgi?id=161393
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
Object.getPrototypeOf() should return null cross-origin:
- https://html.spec.whatwg.org/#windowproxy-getprototypeof
- https://html.spec.whatwg.org/#location-getprototypeof
Firefox and Chrome return null. However, WebKit was returning undefined.
* runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructorGetPrototypeOfFunctor::operator()):
LayoutTests:
Add layout test coverage.
* http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
* http/tests/security/cross-frame-access-object-getPrototypeOf.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205258
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Wed, 31 Aug 2016 18:36:46 +0000 (18:36 +0000)]
Avoid using strong reference in JSDOMPromise’s DeferredWrapper
https://bugs.webkit.org/show_bug.cgi?id=161426
<rdar://problem/
28091123>
Reviewed by Geoffrey Garen.
Replace JSC::Strong in DeferredWrapper by JSC::Weak, and make the global object own JSPromiseDeferred.
DeferredWrapper adds itself to JSDOMGlobalObject's newly added HashSet when it's created and clears itself
from the HashSet inside its destructor as well as when the promise is resolved or rejected.
This is so that JSDOMGlobalObject's visitChildren can visit every live DeferredWrapper.
Because this operation is rather expense, this patch turns DeferredWrapper into a RefCounted object to avoid
HashMap churns. Most of code changes in this patch is due to this type change, and the fact lambda cannot
capture Ref<DeferredWrapper> since its copy constructor doesn't exist.
We also create a write barrier from the global object to JSPromiseDeferred so that they won't be collected
during an eden collection when it happens before JSDOMGlobalObject's visitChildren is invoked.
Note that it's possible for the entire DOM wrapper world of the promise to go away before the promise is
resolved or rejected by a ref-counted C++ object. In this case, m_deferred and m_globalObject become dead.
Various member resolve* and reject functions of DeferredWrapper have been modified to check this condition.
Because JSDOMGlobalObject can be finalized before DeferredWrapper is finalized. DeferredWrapper's destructor,
which calls DeferredWrapper::clear, should only remove itself from m_globalObject when m_globalObject is alive.
Finally, this patch makes DeferredWrapper inherit from ActiveDOMCallback so that it won't try to execute scripts
when the active DOM objects have been suspended; e.g. after a page navigation.
No new tests since there should be no author/user visible behavioral change.
* Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::canMakePaymentsWithActiveCard):
* Modules/applepay/ApplePaySession.h:
* Modules/fetch/DOMWindowFetch.cpp:
(WebCore::DOMWindowFetch::fetch):
* Modules/fetch/DOMWindowFetch.h:
* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob):
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeArrayBufferView):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::formData):
(WebCore::FetchBody::cleanConsumePromise):
(WebCore::FetchBody): Use RefPtr<DeferredWrapper> instead of Optional<DeferredWrapper> now that DeferredWrapper
is ref counted. Perhaps we could use Optional<Ref<DeferredWrapper>> here but that seemed rather verbose.
* Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
* Modules/fetch/FetchBodyConsumer.h:
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::arrayBuffer):
(WebCore::FetchBodyOwner::blob):
(WebCore::FetchBodyOwner::formData):
(WebCore::FetchBodyOwner::json):
(WebCore::FetchBodyOwner::text):
* Modules/fetch/FetchBodyOwner.h:
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::consume):
(WebCore::FetchResponse::finishConsumingStream):
* Modules/fetch/FetchResponse.h:
* Modules/fetch/WorkerGlobalScopeFetch.cpp:
(WebCore::WorkerGlobalScopeFetch::fetch):
* Modules/fetch/WorkerGlobalScopeFetch.h:
* Modules/mediastream/UserMediaPermissionCheck.h:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): Added.
(WebCore::JSDOMGlobalObject::visitChildren): Added visits to each JSPromiseDeferred owned by this global object.
* bindings/js/JSDOMGlobalObject.h:
(WebCore::JSDOMGlobalObject::deferredWrappers): Added. This map is only used by JSDOMGlobalObject's visitChildren.
* bindings/js/JSDOMPromise.cpp:
(WebCore::DeferredWrapper::DeferredWrapper):
(WebCore::DeferredWrapper::~DeferredWrapper): Calls clear. When the global object has already been finalized,
m_globalObject is dead. In that case, there is no need to remove itself from the global object. When m_deferred
has been cleared, either clear() has already been called (1) or the callback is dead (2). Since (2) happens only
when the global object itself is dead (as its visitChildren would have visited m_deferred otherwise), again, there
is no need to remove itself from global object.
(WebCore::DeferredWrapper::clear): Added. Clears m_deferred and removes itself from JSDOMGlobalObject.
(WebCore::DeferredWrapper::contextDestroyed): ScriptExecutionContext has been destroyed. We must call clear().
(WebCore::DeferredWrapper::callFunction): Check canInvokeCallback in ActiveDOMCallback.
(WebCore::DeferredWrapper::reject): Exit early when isSuspended() is true. See below.
(WebCore::rejectPromiseWithExceptionIfAny):
(WebCore::fulfillPromiseWithJSON):
(WebCore::fulfillPromiseWithArrayBuffer):
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::create): Added.
(WebCore::DeferredWrapper::isSuspended): Added. Returns true iff the DOM wrapper world has gone away or active DOM
objects have been suspended.
(WebCore::DeferredWrapper::globalObject): Made this inline.
(WebCore::DeferredWrapper::visitAggregate): Added. Called by JSDOMGlobalObject::visitChildren.
(WebCore::DOMPromise::resolve):
(WebCore::DOMPromise::reject):
(WebCore::DeferredWrapper::resolveWithValue): Exit early when isSuspended() is true.
(WebCore::DeferredWrapper::resolveWithNewlyCreated): Ditto.
(WebCore::DeferredWrapper::rejectWithValue): Ditto.
(WebCore::DeferredWrapper::resolve): Ditto.
(WebCore::DeferredWrapper::reject): Ditto.
* bindings/js/JSFontFaceCustom.cpp:
(WebCore::JSFontFace::loaded):
* bindings/js/JSFontFaceSetCustom.cpp:
(WebCore::JSFontFaceSet::ready):
* bindings/js/JSMediaDevicesCustom.cpp:
(WebCore::JSMediaDevices::getUserMedia):
* bindings/js/JSReadableStreamSourceCustom.cpp:
(WebCore::JSReadableStreamSource::start):
* bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::JSWebKitSubtleCrypto::encrypt):
(WebCore::JSWebKitSubtleCrypto::decrypt):
(WebCore::JSWebKitSubtleCrypto::sign):
(WebCore::JSWebKitSubtleCrypto::verify):
(WebCore::JSWebKitSubtleCrypto::digest):
(WebCore::JSWebKitSubtleCrypto::generateKey):
(WebCore::JSWebKitSubtleCrypto::importKey):
(WebCore::JSWebKitSubtleCrypto::exportKey):
(WebCore::JSWebKitSubtleCrypto::wrapKey):
(WebCore::JSWebKitSubtleCrypto::unwrapKey):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateReturnParameters):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205257
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Wed, 31 Aug 2016 17:44:22 +0000 (17:44 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205256
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Wed, 31 Aug 2016 17:00:18 +0000 (17:00 +0000)]
[JSC] AbstractValue can contain padding which is not zero-filled
https://bugs.webkit.org/show_bug.cgi?id=161427
Reviewed by Saam Barati.
We checked that AbstractValue is zero-filled when initializing it to ensure
that zero-filled memory can be used as the initialized AbstractValue.
However, since the size of SpeculatedType becomes 64bit, AbstractValue can have
padding now. And this padding is not ensured that it is initialized with zeros.
So debug assertion fails when building with GCC.
This patch changes the strategy. Instead of checking the initialized
AbstractValue is zero-filled, we ensure that zero-filled AbstractValue can be
considered to be equal to the initialized AbstractValue.
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::ensureCanInitializeWithZeros):
* dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::AbstractValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205254
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 16:44:49 +0000 (16:44 +0000)]
[Fetch API] Request construction failure should not set "bodyUsed"
https://bugs.webkit.org/show_bug.cgi?id=161432
Patch by Youenn Fablet <youenn@apple.com> on 2016-08-31
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
* web-platform-tests/fetch/api/request/request-disturbed-expected.txt:
* web-platform-tests/fetch/api/request/request-disturbed.html:
Source/WebCore:
Covered by added sub-test coming from chromium fetch test suite.
* Modules/fetch/FetchRequest.cpp:
(WebCore::methodCanHaveBody):
(WebCore::FetchRequest::setBody): Check whether request can have a body before disturbing the passed request.
(WebCore::validateBodyAndMethod): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205253
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Wed, 31 Aug 2016 16:44:27 +0000 (16:44 +0000)]
Marking http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=161391
Unreviewed test gardening.
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205252
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 16:36:57 +0000 (16:36 +0000)]
[Fetch API] Response bodyUsed should check for its body disturbed state
https://bugs.webkit.org/show_bug.cgi?id=161429
Patch by Youenn Fablet <youenn@apple.com> on 2016-08-31
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/fetch/bodyUsed-worker.html
Implementing bodyUsed as a JS Builtin.
This allows using directly @isReadableStreamDisturbed if response has a body.
Renaming isDisturbed to isDisturbedOrLocked to better match fetch spec terminology.
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::isDisturbedOrLocked): Renaming isDisturbed to isDisturbedOrLocked.
(WebCore::FetchBodyOwner::arrayBuffer): Ditto.
(WebCore::FetchBodyOwner::blob): Ditto.
(WebCore::FetchBodyOwner::formData): Ditto.
(WebCore::FetchBodyOwner::json): Ditto.
(WebCore::FetchBodyOwner::text): Ditto.
(WebCore::FetchBodyOwner::isDisturbed): Ditto.
* Modules/fetch/FetchBodyOwner.h:
(WebCore::FetchBodyOwner::isDisturbed): Ditto.
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeWith): Ditto.
(WebCore::FetchRequest::clone): Ditto.
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::cloneForJS): Ditto.
(WebCore::FetchResponse::createReadableStreamSource): Only asserting for isDisturbed.
* Modules/fetch/FetchResponse.idl: Marking bodyUsed as JS builtin.
* Modules/fetch/FetchResponse.js: Adding bodyUsed.
(bodyUsed):
(clone):
LayoutTests:
* http/tests/fetch/bodyUsed-expected.txt: Added.
* http/tests/fetch/bodyUsed-worker-expected.txt: Added.
* http/tests/fetch/bodyUsed-worker.html: Added.
* http/tests/fetch/bodyUsed.js: Added.
* http/tests/fetch/window/body-mixin-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205251
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 16:36:35 +0000 (16:36 +0000)]
[Fetch API] Blob type should be correctly set in case of empty body
https://bugs.webkit.org/show_bug.cgi?id=161431
Patch by Youenn Fablet <youenn@apple.com> on 2016-08-31
Reviewed by Alex Christensen.
Source/WebCore:
Tests: http/tests/fetch/fetch-as-blob-worker.html
http/tests/fetch/fetch-as-blob.html
* Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::takeAsBlob): Set blob type with contentType even if blob has no data.
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::blob): Ditto for empty bodies.
LayoutTests:
* http/tests/fetch/fetch-as-blob-expected.txt: Added.
* http/tests/fetch/fetch-as-blob-worker-expected.txt: Added.
* http/tests/fetch/fetch-as-blob-worker.html: Added.
* http/tests/fetch/fetch-as-blob.html: Added.
* http/tests/fetch/fetch-as-blob.js: Added.
(promise_test):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205250
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
akling@apple.com [Wed, 31 Aug 2016 16:32:44 +0000 (16:32 +0000)]
DOM event handling should pass Event around by reference.
<https://webkit.org/b/161398>
Reviewed by Chris Dumez.
Source/WebCore:
Start with making Node::defaultEventHandler() take an Event& instead of an Event*,
and then spread out from there, propagating the referenceness.
* dom/Element.cpp:
(WebCore::Element::isKeyboardFocusable):
* dom/Element.h:
* dom/EventDispatcher.cpp:
(WebCore::callDefaultEventHandlersInTheBubblingOrder):
* dom/Node.cpp:
(WebCore::Node::dispatchDOMActivateEvent):
(WebCore::Node::defaultEventHandler):
* dom/Node.h:
* editing/Editor.cpp:
(WebCore::Editor::handleKeyboardEvent):
(WebCore::Editor::handleInputMethodKeydown):
(WebCore::Editor::handleTextEvent):
* editing/Editor.h:
* html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::handleKeydownEvent):
(WebCore::BaseCheckableInputType::handleKeypressEvent):
* html/BaseCheckableInputType.h:
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent):
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent):
* html/BaseChooserOnlyDateAndTimeInputType.h:
* html/BaseClickableWithKeyInputType.cpp:
(WebCore::BaseClickableWithKeyInputType::handleKeydownEvent):
(WebCore::BaseClickableWithKeyInputType::handleKeypressEvent):
(WebCore::BaseClickableWithKeyInputType::handleKeyupEvent):
* html/BaseClickableWithKeyInputType.h:
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::isKeyboardFocusable):
* html/BaseDateAndTimeInputType.h:
* html/CheckboxInputType.cpp:
(WebCore::CheckboxInputType::handleKeyupEvent):
* html/CheckboxInputType.h:
* html/ColorInputType.cpp:
(WebCore::ColorInputType::handleDOMActivateEvent):
* html/ColorInputType.h:
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
* html/FileInputType.h:
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::isKeyboardFocusable):
(WebCore::HTMLAnchorElement::defaultEventHandler):
(WebCore::HTMLAnchorElement::handleClick):
(WebCore::HTMLAnchorElement::eventType):
(WebCore::isEnterKeyKeydownEvent):
* html/HTMLAnchorElement.h:
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::isKeyboardFocusable):
* html/HTMLAreaElement.h:
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
* html/HTMLButtonElement.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isKeyboardFocusable):
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submitImplicitly):
(WebCore::submitElementFromEvent):
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::prepareForSubmission):
* html/HTMLFormElement.h:
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::isKeyboardFocusable):
* html/HTMLFrameOwnerElement.h:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::defaultEventHandler):
* html/HTMLFrameSetElement.h:
* html/HTMLIFrameElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isKeyboardFocusable):
(WebCore::HTMLInputElement::isTextFormControlKeyboardFocusable):
(WebCore::HTMLInputElement::willDispatchEvent):
(WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLInputElement.h:
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::defaultEventHandler):
* html/HTMLLabelElement.h:
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::defaultEventHandler):
* html/HTMLLinkElement.h:
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
(WebCore::HTMLPlugInElement::isKeyboardFocusable):
* html/HTMLPlugInElement.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::defaultEventHandler):
* html/HTMLPlugInImageElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::isKeyboardFocusable):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
* html/HTMLSelectElement.h:
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::defaultEventHandler):
* html/HTMLSummaryElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::isKeyboardFocusable):
(WebCore::HTMLTextAreaElement::defaultEventHandler):
(WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::forwardEvent):
* html/HTMLTextFormControlElement.h:
* html/ImageInputType.cpp:
(WebCore::ImageInputType::handleDOMActivateEvent):
* html/ImageInputType.h:
* html/InputType.cpp:
(WebCore::InputType::handleClickEvent):
(WebCore::InputType::handleMouseDownEvent):
(WebCore::InputType::handleDOMActivateEvent):
(WebCore::InputType::handleKeydownEvent):
(WebCore::InputType::handleKeypressEvent):
(WebCore::InputType::handleKeyupEvent):
(WebCore::InputType::handleBeforeTextInsertedEvent):
(WebCore::InputType::handleTouchEvent):
(WebCore::InputType::forwardEvent):
(WebCore::InputType::shouldSubmitImplicitly):
(WebCore::InputType::dispatchSimulatedClickIfActive):
(WebCore::InputType::isKeyboardFocusable):
* html/InputType.h:
* html/MediaDocument.cpp:
(WebCore::MediaDocument::defaultEventHandler):
* html/MediaDocument.h:
* html/NumberInputType.cpp:
(WebCore::NumberInputType::handleKeydownEvent):
* html/NumberInputType.h:
* html/RadioInputType.cpp:
(WebCore::RadioInputType::handleClickEvent):
(WebCore::RadioInputType::handleKeydownEvent):
(WebCore::RadioInputType::handleKeyupEvent):
(WebCore::RadioInputType::isKeyboardFocusable):
* html/RadioInputType.h:
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
(WebCore::RangeInputType::handleKeydownEvent):
* html/RangeInputType.h:
* html/ResetInputType.cpp:
(WebCore::ResetInputType::handleDOMActivateEvent):
* html/ResetInputType.h:
* html/SearchInputType.cpp:
(WebCore::SearchInputType::handleKeydownEvent):
* html/SearchInputType.h:
* html/SubmitInputType.cpp:
(WebCore::SubmitInputType::handleDOMActivateEvent):
* html/SubmitInputType.h:
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::isKeyboardFocusable):
(WebCore::TextFieldInputType::handleKeydownEvent):
(WebCore::TextFieldInputType::handleKeydownEventForSpinButton):
(WebCore::TextFieldInputType::forwardEvent):
(WebCore::TextFieldInputType::shouldSubmitImplicitly):
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
* html/TextFieldInputType.h:
* html/shadow/AutoFillButtonElement.cpp:
(WebCore::AutoFillButtonElement::defaultEventHandler):
* html/shadow/AutoFillButtonElement.h:
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlMuteButtonElement::defaultEventHandler):
(WebCore::MediaControlSeekButtonElement::defaultEventHandler):
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::defaultEventHandler):
(WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
(WebCore::MediaControlPanelMuteButtonElement::defaultEventHandler):
(WebCore::MediaControlPlayButtonElement::defaultEventHandler):
(WebCore::MediaControlOverlayPlayButtonElement::defaultEventHandler):
(WebCore::MediaControlRewindButtonElement::defaultEventHandler):
(WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler):
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::defaultEventHandler):
(WebCore::MediaControls::containsRelatedTarget):
* html/shadow/MediaControls.h:
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::defaultEventHandler):
(WebCore::MediaControlsApple::handleClickEvent):
(WebCore::MediaControlsAppleEventListener::handleEvent):
* html/shadow/MediaControlsApple.h:
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::SliderThumbElement::handleTouchStart):
(WebCore::SliderThumbElement::handleTouchMove):
(WebCore::SliderThumbElement::handleTouchEndAndCancel):
(WebCore::SliderThumbElement::handleTouchEvent):
* html/shadow/SliderThumbElement.h:
* html/shadow/SpinButtonElement.cpp:
(WebCore::SpinButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::forwardEvent):
* html/shadow/SpinButtonElement.h:
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerTextElement::defaultEventHandler):
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
* html/shadow/TextControlInnerElements.h:
* html/shadow/mac/ImageControlsButtonElementMac.cpp:
(WebCore::ImageControlsButtonElementMac::defaultEventHandler):
* html/shadow/mac/ImageControlsButtonElementMac.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::defaultEventHandler):
(WebCore::MathMLElement::isKeyboardFocusable):
* mathml/MathMLElement.h:
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::defaultEventHandler):
* mathml/MathMLSelectElement.h:
* page/EventHandler.cpp:
(WebCore::didScrollInScrollableArea):
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::defaultWheelEventHandler):
(WebCore::EventHandler::keyEvent):
(WebCore::handleKeyboardSelectionMovement):
(WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultTextInputEventHandler):
(WebCore::EventHandler::defaultSpaceEventHandler):
(WebCore::EventHandler::defaultBackspaceEventHandler):
(WebCore::EventHandler::defaultArrowEventHandler):
(WebCore::EventHandler::defaultTabEventHandler):
* page/EventHandler.h:
* page/FocusController.cpp:
(WebCore::isFocusableElementOrScopeOwner):
(WebCore::isNonFocusableScopeOwner):
(WebCore::isFocusableScopeOwner):
(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::FocusController::findFocusCandidateInContainer):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::userResize):
* rendering/RenderFrameSet.h:
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
(WebCore::SVGAElement::isKeyboardFocusable):
* svg/SVGAElement.h:
Source/WebKit2:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205249
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 15:36:32 +0000 (15:36 +0000)]
[Streams API] Align getReader() with spec
https://bugs.webkit.org/show_bug.cgi?id=160508
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-08-31
Reviewed by Xabier Rodriguez-Calvar.
LayoutTests/imported/w3c:
Changed 2 expectations, 1 that passes thanks to patch, the other that
now fails as getReader() has 1 parameter (0 expected, bug to be filed).
* web-platform-tests/streams/readable-streams/general.https-expected.txt:
* web-platform-tests/streams/readable-streams/templated.https-expected.txt:
Source/WebCore:
Aligned getReader() with spec following replacement of ReadableStreamReader by
ReadableStreamDefaultReader.
Test: streams/readable-stream-getReader.html
* Modules/streams/ReadableStream.js:
(getReader):
LayoutTests:
* streams/readable-stream-getReader-expected.txt: Added.
* streams/readable-stream-getReader.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205248
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Wed, 31 Aug 2016 14:38:21 +0000 (14:38 +0000)]
WK2 Gamepad provider on iOS.
https://bugs.webkit.org/show_bug.cgi?id=161412
Reviewed by Tim Horton.
Source/JavaScriptCore:
* Configurations/FeatureDefines.xcconfig:
Source/WebCore:
No new tests (Native framework backends not directly testable)
* Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:
* WebView/WebView.mm:
(WebKitInitializeGamepadProviderIfNecessary):
Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/Gamepad/UIGamepadProvider.cpp:
* UIProcess/Gamepad/ios/UIGamepadProviderIOS.mm: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderMac.mm.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):
* UIProcess/Gamepad/mac/UIGamepadProviderMac.mm:
* WebKit2.xcodeproj/project.pbxproj:
Tools:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205247
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Wed, 31 Aug 2016 09:12:25 +0000 (09:12 +0000)]
REGRESSION (r201701): Unable to copy from CodeMirror editor version used in Jenkins install website
https://bugs.webkit.org/show_bug.cgi?id=161386
<rdar://problem/
27590077>
Reviewed by Dan Bernstein.
Source/WebCore:
This CodeMirror version uses a hidden <textarea> to implement copy/paste. The textarea has width:1px; border-width:1px.
Jenkins page has also has a stylesheet that contains * { box-sizing:border-box } and as a result the textarea content
width gets computed as 0. With r201701 we use content size instead of box size for clipping and the textarea content is
(correctly) considered invisible.
Add a quirk that allows this to continue working.
Test: editing/text-iterator/hidden-textarea-selection-quirk.html
* editing/TextIterator.cpp:
(WebCore::fullyClipsContents):
LayoutTests:
* editing/text-iterator/hidden-textarea-selection-quirk-expected.txt: Added.
* editing/text-iterator/hidden-textarea-selection-quirk.html: Added.
* platform/ios-simulator/editing/text-iterator/hidden-textarea-selection-quirk-expected.txt: Added.
textarea.select() doesn't select the text content on iOS.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205246
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Wed, 31 Aug 2016 08:30:58 +0000 (08:30 +0000)]
Unreviewed. Bump GTK+ versions numbers.
* Source/cmake/OptionsGTK.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205245
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 08:26:48 +0000 (08:26 +0000)]
Remove unused member variable in WebCore::File
https://bugs.webkit.org/show_bug.cgi?id=161420
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-31
Reviewed by Alex Christensen.
* fileapi/File.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205244
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Wed, 31 Aug 2016 06:45:34 +0000 (06:45 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205224
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 06:21:05 +0000 (06:21 +0000)]
Web Inspector: Remove largest common indentation spacing in debugger popover
https://bugs.webkit.org/show_bug.cgi?id=161417
Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-30
Reviewed by Joseph Pecoraro.
* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content.function > .body):
(.popover .debugger-popover-content.function > .body .CodeMirror):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Use CodeMirror and FormatterWorker to display a non-editable popover.
* UserInterface/Workers/Formatter/FormatterWorker.js:
(FormatterWorker.prototype.formatJavaScript):
Reworked logic to always attempt to format by wrapping content in "(...)". This is
necessary for unnamed functions, since they are not valid programs by themselves.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205223
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Wed, 31 Aug 2016 05:18:54 +0000 (05:18 +0000)]
Add "get" to CustomElementsRegistry
https://bugs.webkit.org/show_bug.cgi?id=161421
Reviewed by Yusuke Suzuki.
Source/WebCore:
Add the support for "get" method on CustomElementsRegistry, which returns the constructor
of the custom element with the given name:
https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementregistry-get
Tests: fast/custom-elements/CustomElementRegistry.html
* dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::get): Added.
* dom/CustomElementRegistry.h:
* dom/CustomElementRegistry.idl:
LayoutTests:
Added test cases for "get" method on CustomElementsRegistry.
* fast/custom-elements/CustomElementRegistry-expected.txt:
* fast/custom-elements/CustomElementRegistry.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205220
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Wed, 31 Aug 2016 05:03:10 +0000 (05:03 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205219
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Wed, 31 Aug 2016 02:37:12 +0000 (02:37 +0000)]
Make PendingScript as ref-counted
https://bugs.webkit.org/show_bug.cgi?id=161350
Reviewed by Ryosuke Niwa.
Currently, while PendingScript is copyable, PendingScript is also CachedResourceClient.
So when copying this, the client registration is done in PendingScript's operator= etc.
However, this copying functionality is not effectively used.
In this patch, we change this PendingScript to ref-counted class and make it noncopyable.
This change makes things simple (dropping this copying functionality), and drops unnecessary
addClient / removeClient calls. And we also simplify PendingScript class. Since we can offer
all the members at the construction time, we do not need any setters like setCachedScript,
setElement etc. This prevents us from accidentally generating the half-baked pending script.
Furthermore, by changing PendingScript noncopyable & ref-counted, we easily make it
observable. In this patch, we add PendingScriptClient to receive the notification from
PendingScript. Previously, we directly used CachedScript in PendingScript to receive the
notification. When introducing ScriptModuleGraph and making this PendingScript the container
of the both CachedScript and ScriptModuleGraph, hiding the raw CachedScript operations is
useful.
No behavior changes.
* WebCore.xcodeproj/project.pbxproj:
* dom/PendingScript.cpp:
(WebCore::PendingScript::create): These factory functions take all the information needed
to construct the PendingScript. So the setters of PendingScript are dropped. This is better
since we now do not expose any half-baked pending script accidentally.
(WebCore::PendingScript::PendingScript):
(WebCore::PendingScript::~PendingScript):
(WebCore::PendingScript::notifyClientFinished):
(WebCore::PendingScript::notifyFinished):
(WebCore::PendingScript::isLoaded): When introducing ScriptModuleGraph, this will query to
either CachedScript or ScriptModuleGraph. PendingScript will become the container for the
both types.
(WebCore::PendingScript::setClient):
(WebCore::PendingScript::clearClient): PendingScript is now observable by PendingScriptClient.
This avoids touching CachedScript in PendingScript directly. That is good when we introduce
ScriptModuleGraph and make PendingScript the container of the both CachedScript and ScriptModuleGraph.
(WebCore::PendingScript::releaseElementAndClear): Deleted. Previously, PendingScript is not ref-counted.
So when we would like to say "this pending script is empty", we used the pending script with
`m_element = nullptr`. This releaseElementAndClear cleared this m_element and made the pending
script empty. Now, we use RefPtr<PendingScript> and empty one is just represented by the nullptr.
This function is no longer necessary. Dropped.
(WebCore::PendingScript::setCachedScript): Deleted. The fields are set in the constructor.
So this setter is no longer necessary. Dropped.
* dom/PendingScript.h:
* dom/PendingScriptClient.h: Copied from Source/WebCore/html/parser/HTMLScriptRunnerHost.h.
(WebCore::PendingScriptClient::~PendingScriptClient):
* dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::queueScriptForExecution):
(WebCore::ScriptRunner::notifyScriptReady):
(WebCore::ScriptRunner::timerFired): We use `std::exchange` to retrieve the RefPtr<PendingScript>
and make the original vector element nullptr. Without this, all the PendingScript is held until
the iteration finishes. We keep the original semantics here that the pending script can be
released per iteration.
* dom/ScriptRunner.h:
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::watchForLoad):
(WebCore::HTMLDocumentParser::stopWatchingForLoad): Use PendingScript instead of touching
CachedScript directly.
(WebCore::HTMLDocumentParser::notifyFinished):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::~HTMLScriptRunner):
(WebCore::HTMLScriptRunner::sourceFromPendingScript):
(WebCore::HTMLScriptRunner::isPendingScriptReady):
(WebCore::HTMLScriptRunner::executeParsingBlockingScript):
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent): As the previous comment describes,
we used releaseElementAndClear to make the current pending script empty. Instead of doing so, we now
explicitly clear executeParsingBlockingScript (by assigning nullptr to m_parserBlockingScript).
(WebCore::HTMLScriptRunner::watchForLoad):
(WebCore::HTMLScriptRunner::stopWatchingForLoad): Previously, we used CachedScript::addClient directly
in the m_host.watchForLoad. This means that we did not have a quick way to query whether the pending
script is watched. In the old implementation, we have the `m_watchingForLoad : bool` flag in PendingScript
to hold the watching status for the given pending script. This `pendingScript.setWatchingForLoad(true)`
just made this flag `true`. But now, we do not use CachedScript::addClient directly. Instead, we have
the PendingScriptClient and PendingScript::{setClient,clearClient}. We can know whether this pending
script is watched by checking `m_client != nullptr`. This makes `m_watchingForLoad` unnecessary.
So this patch drops `m_watchingForLoad` and `pendingScript.setWatchingForLoad(true)` call.
(WebCore::HTMLScriptRunner::hasParserBlockingScript):
(WebCore::HTMLScriptRunner::executeParsingBlockingScripts): We clear the m_parserBlockingScript here
instead of the middle of the executePendingScriptAndDispatchEvent.
(WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
(WebCore::requestPendingScript):
(WebCore::HTMLScriptRunner::requestParsingBlockingScript): Setting m_parsingBlockingScript is now done
in this caller side.
(WebCore::HTMLScriptRunner::requestDeferredScript):
(WebCore::HTMLScriptRunner::runScript):
(WebCore::HTMLScriptRunner::requestPendingScript): Instead of configuring the passed PendingScript&,
we return the pending script and the caller sets it to m_parserBlockingScript or holds it. And we now
change this function to static location one and drop the member function. Previously, we always make
PendingScript& valid by always calling `setElement(...)`. I think this is the bug since we accidentally
exposed the half-baked pending script. But this bug is not shown since `!cachedScript` path is dead code!
This requestPendingScript is called from two places, requestDeferredScript and requestParsingBlockingScript.
And these functions are called if the script has `willBeParserExecuted` flag. In the case of the script
tag having "src" attribute, this flag is only set if `cachedScript` is correctly instantiated. So when
these functions are called, we can ensure that `cachedScript` is correctly instantiated for the given script.
In the case of the script tag not having "src" attribute, these functions are won't be called. This is
because if such a script tag has `willBeParserExecuted` flag, it also has `m_readyToBeParserExecuted`
and it does not have `m_willExecuteWhenDocumentFinishedParsing` flag, and in that case the both
functions are never called. So we drop that path and insert the assertion to ensure the above conditions.
* html/parser/HTMLScriptRunner.h:
* html/parser/HTMLScriptRunnerHost.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205218
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Wed, 31 Aug 2016 02:01:07 +0000 (02:01 +0000)]
Marking inspector/debugger/breakpoint-action-with-exception.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=161387
Unreviewed test gardening.
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205217
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 01:48:22 +0000 (01:48 +0000)]
[JSC] Some arith nodes are too pessimistic with the types supported on the fast path
https://bugs.webkit.org/show_bug.cgi?id=161410
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-30
Reviewed by Geoffrey Garen.
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
DoubleRep is able to convert numbers, undefined, booleans and null.
I was too pessimistic when I gated the double implementations
on number-or-boolean speculation. We can just let DoubleRep convert
the other cases as long as it is not a Cell.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205216
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Wed, 31 Aug 2016 01:34:29 +0000 (01:34 +0000)]
Unreviewed, build fix for GCC ports
std::forward is declared in <utility> header.
* bmalloc/ScopeExit.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205215
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 01:28:35 +0000 (01:28 +0000)]
"pluginReplacementEnabled" should be a Setting, not a RuntimeEnabledFeature
https://bugs.webkit.org/show_bug.cgi?id=161416
<rdar://problem/
28050847>
Patch by Ricky Mondello <rmondello@apple.com> on 2016-08-30
Reviewed by Simon Fraser.
Mostly mechanical. Tested by running LayoutTests/plugins/quicktime-plugin-replacement.html and manually toggling
defaultPluginReplacementEnabled and observing a behavior change.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::reset): Purged of the pluginReplacementEnabled setting.
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setPluginReplacementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::pluginReplacementEnabled): Deleted.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::requestObject): Use the setting.
* page/Settings.cpp: Supply different values for iOS and other platforms, matching the RuntimeEnabledFeature values,
enabled for iOS and disabled otherwise.
* page/Settings.in: Declare the setting.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Use the setting.
(WebCore::InternalSettings::Backup::restoreTo): Ditto.
(WebCore::InternalSettings::setPluginReplacementEnabled): Ditto.
* testing/InternalSettings.h: Can now throw an exception, like other Settings-backed members.
* testing/InternalSettings.idl: Declare this as possibly throwing an exception.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205214
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 31 Aug 2016 00:37:59 +0000 (00:37 +0000)]
Try to fix the 32-bit build.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/WebProcessProxy.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205213
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 00:34:39 +0000 (00:34 +0000)]
YouTubePluginReplacementTest's URL transformation logic should have tests
https://bugs.webkit.org/show_bug.cgi?id=161406
<rdar://problem/
28050847>
Patch by Ricky Mondello <rmondello@apple.com> on 2016-08-30
Reviewed by Eric Carlson.
Source/WebCore:
Refactor most of YouTubePluginReplacement::youTubeURL into a static method that can be used by TestWebKitAPI.
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::youTubeURL): Now implemented in terms of youTubeURLFromAbsoluteURL.
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL): Absorbs most of youTubeURL.
* Modules/plugins/YouTubePluginReplacement.h: Declare a public method, for the benefit of testing.
* WebCore.xcodeproj/project.pbxproj: Make some heads private for TestWebKitAPI's benefit.
Tools:
Add some very basic tests. Future patches should expand on these to find and fix bugs.
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add YouTubePluginReplacement.cpp.
* TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp: Added.
(TestWebKitAPI::test): Added.
(TestWebKitAPI::TEST_F): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205212
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 31 Aug 2016 00:27:27 +0000 (00:27 +0000)]
Web Inspector: Add resource timing model with timing information
https://bugs.webkit.org/show_bug.cgi?id=161314
Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-08-30
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
Add a resource timing data model and populate it with info from the
response from the backend.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
Forward timing data from response to Resource.js.
* UserInterface/Main.html: Add new ResourceTimingData.js.
* UserInterface/Test.html: Add new ResourceTimingData.js.
* UserInterface/Models/Resource.js:
(WebInspector.Resource): Instantiate ResourceTimingData object.
(WebInspector.Resource.prototype.get timing):
(WebInspector.Resource.prototype.get firstTimestamp):
(WebInspector.Resource.prototype.get lastTimestamp):
(WebInspector.Resource.prototype.get duration):
(WebInspector.Resource.prototype.get latency):
(WebInspector.Resource.prototype.get receiveDuration):
Update getters to use new timing model.
(WebInspector.Resource.prototype.updateForResponse):
Update timing object with info from response.
(WebInspector.Resource.prototype.markAsFinished):
Log response end time.
* UserInterface/Models/ResourceTimelineRecord.js:
(WebInspector.ResourceTimelineRecord.prototype.get startTime):
(WebInspector.ResourceTimelineRecord.prototype.get activeStartTime):
(WebInspector.ResourceTimelineRecord.prototype.get endTime):
Update getters to use new timing model.
* UserInterface/Models/ResourceTimingData.js: Added.
(WebInspector.ResourceTimingData):
(WebInspector.ResourceTimingData.fromPayload):
(WebInspector.ResourceTimingData.prototype.get startTime):
(WebInspector.ResourceTimingData.prototype.get domainLookupStart):
(WebInspector.ResourceTimingData.prototype.get domainLookupEnd):
(WebInspector.ResourceTimingData.prototype.get connectStart):
(WebInspector.ResourceTimingData.prototype.get connectEnd):
(WebInspector.ResourceTimingData.prototype.get secureConnectionStart):
(WebInspector.ResourceTimingData.prototype.get requestStart):
(WebInspector.ResourceTimingData.prototype.get responseStart):
(WebInspector.ResourceTimingData.prototype.get responseEnd):
(WebInspector.ResourceTimingData.prototype.markResponseEndTime):
Add new ResourceTimingData model and fall back on old timestamps
for when data is unavailable.
LayoutTests:
Add tests for the Resource Timing Data model.
* http/tests/inspector/network/resource-timing-expected.txt: Added.
* http/tests/inspector/network/resource-timing.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205211
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Wed, 31 Aug 2016 00:15:50 +0000 (00:15 +0000)]
bmalloc: speed up the lock slow path
https://bugs.webkit.org/show_bug.cgi?id=161058
Unreviewed roll-in - with regression fixed.
Revert to using yield() instead of swtch() because very low priority
background tasks can cause priority inversion and deadlock. In the
network process, that happened with com.apple.WebKit.Cache.Storage.serialBackground.
Still a big speedup on MallocBench.
* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/ScopeExit.h: Added.
(bmalloc::ScopeExit::ScopeExit):
(bmalloc::ScopeExit::~ScopeExit):
(bmalloc::makeScopeExit):
* bmalloc/StaticMutex.cpp:
(bmalloc::StaticMutex::lockSlowCase):
* bmalloc/StaticMutex.h:
(bmalloc::StaticMutex::init):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205210
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Wed, 31 Aug 2016 00:11:33 +0000 (00:11 +0000)]
Switch more messages over to Connection::sendWithReply
https://bugs.webkit.org/show_bug.cgi?id=161415
Reviewed by Tim Horton.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):
(WebKit::WebProcessProxy::canTerminateChildProcess):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::generateCallbackID): Deleted.
(WebKit::WebProcessProxy::didDeleteWebsiteData): Deleted.
(WebKit::WebProcessProxy::didDeleteWebsiteDataForOrigins): Deleted.
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::deleteWebsiteData):
(WebKit::WebProcess::deleteWebsiteDataForOrigins):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205209
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 30 Aug 2016 23:01:13 +0000 (23:01 +0000)]
Unreviewed, fix build after r205205.
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorSetPrototypeOf):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205208
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Tue, 30 Aug 2016 22:59:12 +0000 (22:59 +0000)]
Add Connection::sendWithReply
https://bugs.webkit.org/show_bug.cgi?id=161399
Reviewed by Tim Horton.
Connection::sendWithReply makes it easy to send a message and process its reply asynchronously on a given WorkQueue or RunLoop.
The reply handler is guaranteed to be called. If the reply is successfully received, it will consist of an std::tuple with the arguments,
otherwise it will be called with Nullopt.
* Platform/IPC/Connection.cpp:
(IPC::Connection::invalidate):
Go through all reply handlers and dispatch them with a null Decoder.
(IPC::Connection::sendMessageWithReply):
Add the reply handler to the m_replyHandlers hash map, and send the message.
(IPC::Connection::processIncomingSyncReply):
Check if the incoming reply has an entry in m_replyHandlers. If it does, dispatch its handler using the given dispatcher.
(IPC::Connection::connectionDidClose):
Go through all reply handlers and dispatch them with a null Decoder.
* Platform/IPC/Connection.h:
(IPC::Connection::sendWithReply):
Encode the message (we use the sync message ID infrastructure for this), then call sendMessageWithReply with a reply handler that
decodes the reply and calls the real reply handler.
* Platform/IPC/HandleMessage.h:
Forward declare Connection.
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.h:
Forward declare WebsiteData.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):
Remove m_pendingFetchWebsiteDataCallbacks.
(WebKit::WebProcessProxy::fetchWebsiteData):
Use Connection::sendWithReply.
(WebKit::WebProcessProxy::didFetchWebsiteData): Deleted.
* UIProcess/WebProcessProxy.h:
Remove members.
* UIProcess/WebProcessProxy.messages.in:
Remove DidFetchWebsiteData.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::fetchWebsiteData):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
Update the FetchWebsiteData message to have a reply parameter.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205207
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 22:54:41 +0000 (22:54 +0000)]
Move some code from MathMLElement to MathMLPresentationElement
https://bugs.webkit.org/show_bug.cgi?id=161377
Patch by Frederic Wang <fwang@igalia.com> on 2016-08-30
Reviewed by Darin Adler.
The following code is only used in presentation MathML classes. We then move it from
MathMLElement to MathMLPresentationElement:
- testing whether a child is a phrasing/flow element.
- parsing of length attributes.
- parsing of boolean attributes.
- parsing of mathvariant attributes.
No new tests, already covered by existing tests.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::isPhrasingContent): Deleted.
(WebCore::MathMLElement::isFlowContent): Deleted.
(WebCore::MathMLElement::parseNumberAndUnit): Deleted.
(WebCore::MathMLElement::parseNamedSpace): Deleted.
(WebCore::MathMLElement::parseMathMLLength): Deleted.
(WebCore::MathMLElement::cachedMathMLLength): Deleted.
(WebCore::MathMLElement::cachedBooleanAttribute): Deleted.
(WebCore::MathMLElement::parseMathVariantAttribute): Deleted.
(WebCore::MathMLElement::specifiedDisplayStyle): Deleted.
(WebCore::MathMLElement::specifiedMathVariant): Deleted.
* mathml/MathMLElement.h:
(WebCore::MathMLElement::specifiedDisplayStyle):
(WebCore::MathMLElement::specifiedMathVariant):
(WebCore::MathMLElement::acceptsDisplayStyleAttribute): Deleted.
(WebCore::MathMLElement::acceptsMathVariantAttribute): Deleted.
(WebCore::MathMLElement::toOptionalBool): Deleted.
* mathml/MathMLPresentationElement.cpp:
(WebCore::MathMLPresentationElement::isPhrasingContent):
(WebCore::MathMLPresentationElement::isFlowContent):
(WebCore::MathMLPresentationElement::cachedBooleanAttribute):
(WebCore::MathMLPresentationElement::parseNumberAndUnit):
(WebCore::MathMLPresentationElement::parseNamedSpace):
(WebCore::MathMLPresentationElement::parseMathMLLength):
(WebCore::MathMLPresentationElement::cachedMathMLLength):
(WebCore::MathMLPresentationElement::specifiedDisplayStyle):
(WebCore::MathMLPresentationElement::parseMathVariantAttribute):
(WebCore::MathMLPresentationElement::specifiedMathVariant):
* mathml/MathMLPresentationElement.h:
(WebCore::MathMLPresentationElement::toOptionalBool):
(WebCore::MathMLPresentationElement::acceptsMathVariantAttribute):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205206
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 30 Aug 2016 22:49:45 +0000 (22:49 +0000)]
Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object
https://bugs.webkit.org/show_bug.cgi?id=161396
Reviewed by Ryosuke Niwa.
Source/JavaScriptCore:
Object.setPrototypeOf() should throw when used on a cross-origin Window / Location object:
- https://html.spec.whatwg.org/#windowproxy-setprototypeof
- https://html.spec.whatwg.org/#location-setprototypeof
- https://tc39.github.io/ecma262/#sec-object.setprototypeof (step 5)
Firefox and Chrome already throw. However, WebKit merely ignores the call and logs an error message.
Note that technically, we should also throw in the same origin case.
However, not all browsers agree on this yet so I haven't not changed
the behavior for the same origin case.
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorSetPrototypeOf):
LayoutTests:
Update / rebaseline existing test to reflect behavior change.
* http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt:
* http/tests/security/cross-frame-access-object-setPrototypeOf.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205205
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 22:43:12 +0000 (22:43 +0000)]
[JSC] Clean up the remaining compare nodes in FTLCapabilities
https://bugs.webkit.org/show_bug.cgi?id=161400
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-30
Reviewed by Geoffrey Garen.
It looks like we implemented all the cases without realizing it.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compare):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205204
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Tue, 30 Aug 2016 22:42:53 +0000 (22:42 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205203
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 22:29:42 +0000 (22:29 +0000)]
Introduce a MathMLUnknownElement class
https://bugs.webkit.org/show_bug.cgi?id=161298
Patch by Frederic Wang <fwang@igalia.com> on 2016-08-30
Reviewed by Darin Adler.
Source/WebCore:
For consistency with SVG and HTML, we make MathML elements use a
fallback MathMLUnknownElement class. Like SVG, we ensure that unknown
MathML elements do not create any renderer.
Test: mathml/mathml-unknown.xhtml
* mathml/MathMLUnknownElement.h: Added. This is a simple class for
unknown MathML elements, preventing the creation of renderers.
* mathml/mathtags.in: Map fallbackInterfaceName to MathMLUnknownElement.
LayoutTests:
We add a test to check that non-standard or content MathML elements
are handled by MathMLUnknownElement and so do not create renderers.
* mathml/mathml-unknown-expected.txt: Added.
* mathml/mathml-unknown.xhtml: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205202
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Tue, 30 Aug 2016 22:28:20 +0000 (22:28 +0000)]
Fix runtime error caused by missing export after https://bugs.webkit.org/show_bug.cgi?id=160846
Rubberstamped by Dan Bernstein.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205201
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 30 Aug 2016 22:24:39 +0000 (22:24 +0000)]
[[Delete]] should throw for cross-origin Window / Location objects
https://bugs.webkit.org/show_bug.cgi?id=161397
Reviewed by Ryosuke Niwa.
Source/WebCore:
[[Delete]] should throw for cross-origin Window / Location objects:
- https://github.com/whatwg/html/pull/1728
Firefox and Chrome already throw. Previously, WebKit was merely
ignoring the call and logging an error message.
No new tests, updated existing test.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::deleteProperty):
(WebCore::JSDOMWindow::deletePropertyByIndex):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::deleteProperty):
(WebCore::JSLocation::deletePropertyByIndex):
LayoutTests:
Update / rebaseline existing test to reflect behavior change.
* http/tests/security/cross-frame-access-delete-expected.txt:
* http/tests/security/cross-frame-access-delete.html:
* http/tests/security/resources/cross-frame-iframe-for-delete-test.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205200
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
beidson@apple.com [Tue, 30 Aug 2016 22:23:20 +0000 (22:23 +0000)]
GameController.framework backend for gamepad API.
https://bugs.webkit.org/show_bug.cgi?id=161086
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Native framework backends not directly testable)
* WebCore.xcodeproj/project.pbxproj:
* platform/gamepad/cocoa/GameControllerGamepad.h: Copied from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
* platform/gamepad/cocoa/GameControllerGamepad.mm: Added.
(WebCore::GameControllerGamepad::GameControllerGamepad):
(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
(WebCore::GameControllerGamepad::setupAsGamepad):
* platform/gamepad/cocoa/GameControllerGamepadProvider.h: Added.
* platform/gamepad/cocoa/GameControllerGamepadProvider.mm: Added.
(WebCore::GameControllerGamepadProvider::singleton):
(WebCore::GameControllerGamepadProvider::GameControllerGamepadProvider):
(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::controllerDidDisconnect):
(WebCore::GameControllerGamepadProvider::startMonitoringGamepads):
(WebCore::GameControllerGamepadProvider::stopMonitoringGamepads):
(WebCore::GameControllerGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::GameControllerGamepadProvider::gamepadHadInput):
(WebCore::GameControllerGamepadProvider::makeInvisibileGamepadsVisible):
(WebCore::GameControllerGamepadProvider::inputNotificationTimerFired):
Source/WebKit2:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _forceGameControllerFramework]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/Gamepad/UIGamepadProvider.h:
* UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm: Renamed from Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp.
(WebKit::UIGamepadProvider::setUsesGameControllerFramework):
(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
* WebKit2.xcodeproj/project.pbxproj:
Source/WTF:
* wtf/RunLoop.h:
(WTF::RunLoop::TimerBase::startOneShot):
Tools:
* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate awakeFromNib]):
* MiniBrowser/mac/SettingsController.h:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController usesGameControllerFramework]):
(-[SettingsController toggleUsesGameControllerFramework:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205199
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mark.lam@apple.com [Tue, 30 Aug 2016 20:54:54 +0000 (20:54 +0000)]
Introduce the ThrowScope and force every throw site to instantiate a ThrowScope.
https://bugs.webkit.org/show_bug.cgi?id=161171
Reviewed by Filip Pizlo and Geoffrey Garen.
Source/JavaScriptCore:
This is the first step towards having a mechanism (using the ThrowScope) to
verify that we're properly checking for exceptions in all the needed places.
See comments at the top of ThrowScope.cpp for details on how the ThrowScope works.
This patch only introduces the ThrowScope, and changes all throw sites to throw
using a ThrowScope instance. VM::throwException() functions are now private, and
cannot be accessed directly. All throws must now go through a ThrowScope.
Verification is disabled for the moment until we can fix all the verification
failures that will show up.
I also did a smoke test of the ThrowScope mechanisms by running verification on
the JSTests/stress/op-add-exceptions.js test with a local build with verification
turned on.
Performance is neutral on aggregate with this patch.
Misc other changes:
- deleted the unused CALL_THROW() macro from LLIntSlowPaths.cpp.
- moved createListFromArrayLike() from JSObject.h to JSObjectInlines.h.
* API/APICallbackFunction.h:
(JSC::APICallbackFunction::call):
(JSC::APICallbackFunction::construct):
* API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
(JSC::JSCallbackObject<Parent>::defaultValue):
(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::putByIndex):
(JSC::JSCallbackObject<Parent>::deleteProperty):
(JSC::JSCallbackObject<Parent>::construct):
(JSC::JSCallbackObject<Parent>::customHasInstance):
(JSC::JSCallbackObject<Parent>::call):
(JSC::JSCallbackObject<Parent>::getStaticValue):
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):
(JSC::JSCallbackObject<Parent>::callbackGetter):
* API/JSTypedArray.cpp:
(createTypedArray):
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGOperations.cpp:
(JSC::DFG::newTypedArrayWithSize):
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):
* inspector/JSInjectedScriptHostPrototype.cpp:
(Inspector::jsInjectedScriptHostPrototypeAttributeEvaluate):
(Inspector::jsInjectedScriptHostPrototypeFunctionInternalConstructorName):
(Inspector::jsInjectedScriptHostPrototypeFunctionIsHTMLAllCollection):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapSize):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakMapEntries):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetSize):
(Inspector::jsInjectedScriptHostPrototypeFunctionWeakSetEntries):
(Inspector::jsInjectedScriptHostPrototypeFunctionIteratorEntries):
(Inspector::jsInjectedScriptHostPrototypeFunctionEvaluateWithScopeExtension):
(Inspector::jsInjectedScriptHostPrototypeFunctionSubtype):
(Inspector::jsInjectedScriptHostPrototypeFunctionFunctionDetails):
(Inspector::jsInjectedScriptHostPrototypeFunctionGetInternalProperties):
* inspector/JSJavaScriptCallFrame.cpp:
(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):
* inspector/JSJavaScriptCallFramePrototype.cpp:
(Inspector::jsJavaScriptCallFramePrototypeFunctionEvaluateWithScopeExtension):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeDescriptions):
(Inspector::jsJavaScriptCallFrameAttributeCaller):
(Inspector::jsJavaScriptCallFrameAttributeSourceID):
(Inspector::jsJavaScriptCallFrameAttributeLine):
(Inspector::jsJavaScriptCallFrameAttributeColumn):
(Inspector::jsJavaScriptCallFrameAttributeFunctionName):
(Inspector::jsJavaScriptCallFrameAttributeScopeChain):
(Inspector::jsJavaScriptCallFrameAttributeThisObject):
(Inspector::jsJavaScriptCallFrameAttributeType):
(Inspector::jsJavaScriptCallFrameIsTailDeleted):
* interpreter/CachedCall.h:
(JSC::CachedCall::CachedCall):
* interpreter/Interpreter.cpp:
(JSC::eval):
(JSC::sizeOfVarargs):
(JSC::sizeFrameForForwardArguments):
(JSC::sizeFrameForVarargs):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
* jit/JITOperations.cpp:
* jsc.cpp:
(WTF::CustomGetter::customGetter):
(WTF::RuntimeArray::lengthGetter):
(functionCreateElement):
(functionRun):
(functionRunString):
(functionLoad):
(functionLoadString):
(functionReadFile):
(functionCheckSyntax):
(functionTransferArrayBuffer):
(functionLoadModule):
(functionCheckModuleSyntax):
(functionSamplingProfilerStackTraces):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::getByVal):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
(JSC::LLInt::llint_throw_stack_overflow_error):
* runtime/ArrayConstructor.cpp:
(JSC::constructArrayWithSizeQuirk):
* runtime/ArrayConstructor.h:
(JSC::isArray):
* runtime/ArrayPrototype.cpp:
(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncSplice):
(JSC::concatAppendOne):
(JSC::arrayProtoPrivateFuncConcatMemcpy):
* runtime/BooleanPrototype.cpp:
(JSC::booleanProtoFuncToString):
(JSC::booleanProtoFuncValueOf):
* runtime/CommonSlowPaths.cpp:
* runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::opIn):
* runtime/CommonSlowPathsExceptions.cpp:
(JSC::CommonSlowPaths::interpreterThrowInCaller):
* runtime/ConstructData.cpp:
(JSC::construct):
* runtime/DatePrototype.cpp:
(JSC::formateDateInstance):
(JSC::dateProtoFuncToISOString):
(JSC::dateProtoFuncToLocaleString):
(JSC::dateProtoFuncToLocaleDateString):
(JSC::dateProtoFuncToLocaleTimeString):
(JSC::dateProtoFuncToPrimitiveSymbol):
(JSC::dateProtoFuncGetTime):
(JSC::dateProtoFuncGetFullYear):
(JSC::dateProtoFuncGetUTCFullYear):
(JSC::dateProtoFuncGetMonth):
(JSC::dateProtoFuncGetUTCMonth):
(JSC::dateProtoFuncGetDate):
(JSC::dateProtoFuncGetUTCDate):
(JSC::dateProtoFuncGetDay):
(JSC::dateProtoFuncGetUTCDay):
(JSC::dateProtoFuncGetHours):
(JSC::dateProtoFuncGetUTCHours):
(JSC::dateProtoFuncGetMinutes):
(JSC::dateProtoFuncGetUTCMinutes):
(JSC::dateProtoFuncGetSeconds):
(JSC::dateProtoFuncGetUTCSeconds):
(JSC::dateProtoFuncGetMilliSeconds):
(JSC::dateProtoFuncGetUTCMilliseconds):
(JSC::dateProtoFuncGetTimezoneOffset):
(JSC::dateProtoFuncSetTime):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::dateProtoFuncSetYear):
(JSC::dateProtoFuncGetYear):
(JSC::dateProtoFuncToJSON):
* runtime/Error.cpp:
(JSC::throwConstructorCannotBeCalledAsFunctionTypeError):
(JSC::throwTypeError):
(JSC::throwSyntaxError):
* runtime/Error.h:
(JSC::throwRangeError):
(JSC::throwVMError):
(JSC::throwVMTypeError):
(JSC::throwVMRangeError):
(JSC::StrictModeTypeErrorFunction::constructThrowTypeError):
(JSC::StrictModeTypeErrorFunction::callThrowTypeError):
* runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
* runtime/ExceptionFuzz.cpp:
(JSC::doExceptionFuzzing):
* runtime/ExceptionHelpers.cpp:
(JSC::throwOutOfMemoryError):
(JSC::throwStackOverflowError):
(JSC::throwTerminatedExecutionException):
* runtime/ExceptionHelpers.h:
* runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::EvalExecutable::create):
* runtime/FunctionConstructor.cpp:
(JSC::constructFunction):
(JSC::constructFunctionSkippingEvalEnabledCheck):
* runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):
(JSC::functionProtoFuncBind):
* runtime/GetterSetter.cpp:
(JSC::callSetter):
* runtime/IntlCollator.cpp:
(JSC::IntlCollator::compareStrings):
* runtime/IntlCollatorPrototype.cpp:
(JSC::IntlCollatorPrototypeGetterCompare):
(JSC::IntlCollatorPrototypeFuncResolvedOptions):
* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::format):
* runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
* runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::formatNumber):
* runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
* runtime/IntlObject.cpp:
(JSC::intlStringOption):
(JSC::intlNumberOption):
(JSC::canonicalizeLocaleList):
(JSC::lookupSupportedLocales):
* runtime/IteratorOperations.cpp:
(JSC::iteratorNext):
(JSC::iteratorClose):
(JSC::createIteratorResultObject):
(JSC::iteratorForIterable):
* runtime/JSArray.cpp:
(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::put):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::push):
(JSC::JSArray::unshiftCountWithArrayStorage):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
* runtime/JSArrayBufferConstructor.cpp:
(JSC::constructArrayBuffer):
(JSC::callArrayBuffer):
* runtime/JSArrayBufferPrototype.cpp:
(JSC::arrayBufferProtoFuncSlice):
* runtime/JSCInlines.h:
* runtime/JSCJSValue.cpp:
(JSC::JSValue::toObjectSlowCase):
(JSC::JSValue::synthesizePrototype):
(JSC::JSValue::putToPrimitive):
(JSC::JSValue::putToPrimitiveByIndex):
(JSC::JSValue::toStringSlowCase):
* runtime/JSCJSValueInlines.h:
(JSC::toPreferredPrimitiveType):
(JSC::JSValue::requireObjectCoercible):
* runtime/JSDataView.cpp:
(JSC::JSDataView::create):
* runtime/JSDataViewPrototype.cpp:
(JSC::getData):
(JSC::setData):
(JSC::dataViewProtoGetterBuffer):
(JSC::dataViewProtoGetterByteLength):
(JSC::dataViewProtoGetterByteOffset):
* runtime/JSFunction.cpp:
(JSC::callHostFunctionAsConstructor):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):
* runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView::setIndex):
* runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewFromIterator):
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayView):
(JSC::callGenericTypedArrayView):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::JSGenericTypedArrayView<Adaptor>::validateRange):
(JSC::JSGenericTypedArrayView<Adaptor>::throwNeuteredTypedArrayTypeError):
* runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoGetterFuncBuffer):
(JSC::genericTypedArrayViewProtoGetterFuncLength):
(JSC::genericTypedArrayViewProtoGetterFuncByteLength):
(JSC::genericTypedArrayViewProtoGetterFuncByteOffset):
(JSC::genericTypedArrayViewProtoFuncReverse):
(JSC::genericTypedArrayViewPrivateFuncSort):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::encode):
(JSC::decode):
(JSC::globalFuncEval):
(JSC::globalFuncThrowTypeError):
(JSC::globalFuncThrowTypeErrorArgumentsCalleeAndCaller):
(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):
* runtime/JSModuleEnvironment.cpp:
(JSC::JSModuleEnvironment::put):
* runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::getOwnPropertySlot):
(JSC::JSModuleNamespaceObject::put):
(JSC::JSModuleNamespaceObject::putByIndex):
(JSC::JSModuleNamespaceObject::defineOwnProperty):
(JSC::moduleNamespaceObjectSymbolIterator):
* runtime/JSModuleRecord.cpp:
(JSC::JSModuleRecord::getModuleNamespace):
(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::instantiateDeclarations):
* runtime/JSONObject.cpp:
(JSC::Stringifier::appendStringifiedValue):
(JSC::Walker::walk):
(JSC::JSONProtoFuncParse):
(JSC::JSONProtoFuncStringify):
* runtime/JSObject.cpp:
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::callToPrimitiveFunction):
(JSC::JSObject::ordinaryToPrimitive):
(JSC::JSObject::hasInstance):
(JSC::JSObject::defaultHasInstance):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::validateAndApplyPropertyDescriptor):
(JSC::JSObject::getMethod):
* runtime/JSObject.h:
(JSC::createListFromArrayLike): Deleted.
* runtime/JSObjectInlines.h:
(JSC::createListFromArrayLike):
(JSC::JSObject::putInline):
* runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise):
(JSC::callPromise):
* runtime/JSPropertyNameIterator.cpp:
(JSC::propertyNameIteratorFuncNext):
* runtime/JSString.cpp:
(JSC::JSRopeString::outOfMemory):
* runtime/JSStringBuilder.h:
(JSC::JSStringBuilder::build):
(JSC::jsMakeNontrivialString):
* runtime/JSStringJoiner.cpp:
(JSC::JSStringJoiner::joinedLength):
(JSC::JSStringJoiner::join):
* runtime/JSStringJoiner.h:
(JSC::JSStringJoiner::JSStringJoiner):
* runtime/JSSymbolTableObject.h:
(JSC::symbolTablePut):
* runtime/JSTypedArrayViewConstructor.cpp:
(JSC::constructTypedArrayView):
* runtime/JSTypedArrayViewPrototype.cpp:
(JSC::typedArrayViewPrivateFuncLength):
(JSC::typedArrayViewPrivateFuncSort):
(JSC::typedArrayViewProtoFuncSet):
(JSC::typedArrayViewProtoFuncCopyWithin):
(JSC::typedArrayViewProtoFuncIncludes):
(JSC::typedArrayViewProtoFuncLastIndexOf):
(JSC::typedArrayViewProtoFuncIndexOf):
(JSC::typedArrayViewProtoFuncJoin):
(JSC::typedArrayViewProtoGetterFuncBuffer):
(JSC::typedArrayViewProtoGetterFuncLength):
(JSC::typedArrayViewProtoGetterFuncByteLength):
(JSC::typedArrayViewProtoGetterFuncByteOffset):
(JSC::typedArrayViewProtoFuncReverse):
(JSC::typedArrayViewPrivateFuncSubarrayCreate):
(JSC::typedArrayViewProtoFuncSlice):
* runtime/MapConstructor.cpp:
(JSC::callMap):
(JSC::constructMap):
* runtime/MapDataInlines.h:
(JSC::JSIterator>::ensureSpaceForAppend):
* runtime/MapIteratorPrototype.cpp:
(JSC::MapIteratorPrototypeFuncNext):
* runtime/MapPrototype.cpp:
(JSC::getMap):
(JSC::mapProtoFuncValues):
(JSC::mapProtoFuncEntries):
(JSC::mapProtoFuncKeys):
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeParseModule):
* runtime/NullSetterFunction.cpp:
(JSC::callReturnUndefined):
* runtime/NumberPrototype.cpp:
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
(JSC::numberProtoFuncToLocaleString):
(JSC::numberProtoFuncValueOf):
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorSetPrototypeOf):
(JSC::toPropertyDescriptor):
(JSC::objectConstructorDefineProperty):
(JSC::objectConstructorDefineProperties):
(JSC::objectConstructorCreate):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
(JSC::objectProtoFuncToString):
* runtime/Operations.h:
(JSC::jsString):
(JSC::jsStringFromRegisterArray):
(JSC::jsStringFromArguments):
* runtime/ProxyConstructor.cpp:
(JSC::makeRevocableProxy):
(JSC::proxyRevocableConstructorThrowError):
(JSC::constructProxyObject):
(JSC::callProxy):
* runtime/ProxyObject.cpp:
(JSC::ProxyObject::finishCreation):
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):
* runtime/ReflectObject.cpp:
(JSC::reflectObjectConstruct):
(JSC::reflectObjectDefineProperty):
(JSC::reflectObjectEnumerate):
(JSC::reflectObjectGet):
(JSC::reflectObjectGetOwnPropertyDescriptor):
(JSC::reflectObjectGetPrototypeOf):
(JSC::reflectObjectIsExtensible):
(JSC::reflectObjectOwnKeys):
(JSC::reflectObjectPreventExtensions):
(JSC::reflectObjectSet):
(JSC::reflectObjectSetPrototypeOf):
* runtime/RegExpConstructor.cpp:
(JSC::toFlags):
(JSC::regExpCreate):
* runtime/RegExpObject.cpp:
(JSC::collectMatches):
* runtime/RegExpObject.h:
(JSC::RegExpObject::setLastIndex):
* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncMatchFast):
(JSC::regExpProtoFuncCompile):
(JSC::regExpProtoFuncToString):
(JSC::regExpProtoGetterGlobal):
(JSC::regExpProtoGetterIgnoreCase):
(JSC::regExpProtoGetterMultiline):
(JSC::regExpProtoGetterSticky):
(JSC::regExpProtoGetterUnicode):
(JSC::regExpProtoGetterFlags):
(JSC::regExpProtoGetterSource):
(JSC::regExpProtoFuncSplitFast):
* runtime/Reject.h:
(JSC::reject):
* runtime/SetConstructor.cpp:
(JSC::callSet):
(JSC::constructSet):
* runtime/SetIteratorPrototype.cpp:
(JSC::SetIteratorPrototypeFuncNext):
* runtime/SetPrototype.cpp:
(JSC::getSet):
(JSC::setProtoFuncValues):
(JSC::setProtoFuncEntries):
* runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayEntry::put):
* runtime/StringConstructor.cpp:
(JSC::stringFromCodePoint):
* runtime/StringObject.cpp:
(JSC::StringObject::put):
(JSC::StringObject::putByIndex):
* runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::repeatCharacter):
(JSC::replace):
(JSC::stringProtoFuncToString):
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncCharCodeAt):
(JSC::stringProtoFuncCodePointAt):
(JSC::stringProtoFuncConcat):
(JSC::stringProtoFuncIndexOf):
(JSC::stringProtoFuncLastIndexOf):
(JSC::stringProtoFuncSlice):
(JSC::stringProtoFuncSubstr):
(JSC::stringProtoFuncSubstring):
(JSC::stringProtoFuncToLowerCase):
(JSC::stringProtoFuncToUpperCase):
(JSC::stringProtoFuncLocaleCompare):
(JSC::toLocaleCase):
(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):
(JSC::stringProtoFuncLink):
(JSC::trimString):
(JSC::stringProtoFuncStartsWith):
(JSC::stringProtoFuncEndsWith):
(JSC::stringProtoFuncIncludes):
(JSC::stringProtoFuncIterator):
(JSC::normalize):
(JSC::stringProtoFuncNormalize):
* runtime/StringRecursionChecker.cpp:
(JSC::StringRecursionChecker::throwStackOverflowError):
* runtime/Symbol.cpp:
(JSC::Symbol::toNumber):
* runtime/SymbolConstructor.cpp:
(JSC::symbolConstructorKeyFor):
* runtime/SymbolPrototype.cpp:
(JSC::symbolProtoFuncToString):
(JSC::symbolProtoFuncValueOf):
* runtime/ThrowScope.cpp: Added.
(JSC::ThrowScope::ThrowScope):
(JSC::ThrowScope::~ThrowScope):
(JSC::ThrowScope::throwException):
(JSC::ThrowScope::printIfNeedCheck):
(JSC::ThrowScope::simulateThrow):
(JSC::ThrowScope::verifyExceptionCheckNeedIsSatisfied):
* runtime/ThrowScope.h: Added.
(JSC::ThrowScope::vm):
(JSC::ThrowScope::exception):
(JSC::ThrowScope::release):
(JSC::ThrowScope::ThrowScope):
(JSC::ThrowScope::throwException):
(JSC::throwException):
* runtime/ThrowScopeLocation.h: Added.
(JSC::ThrowScopeLocation::ThrowScopeLocation):
* runtime/VM.h:
* runtime/VMEntryScope.h:
(JSC::VMEntryScope::vm):
* runtime/WeakMapConstructor.cpp:
(JSC::callWeakMap):
(JSC::constructWeakMap):
* runtime/WeakMapPrototype.cpp:
(JSC::getWeakMapData):
(JSC::protoFuncWeakMapSet):
* runtime/WeakSetConstructor.cpp:
(JSC::callWeakSet):
(JSC::constructWeakSet):
* runtime/WeakSetPrototype.cpp:
(JSC::getWeakMapData):
(JSC::protoFuncWeakSetAdd):
Source/WebCore:
No new tests because this is only an internal API change. If it builds, it should be good.
* bindings/js/JSApplePaySessionCustom.cpp:
(WebCore::JSApplePaySession::completeShippingMethodSelection):
(WebCore::JSApplePaySession::completeShippingContactSelection):
(WebCore::JSApplePaySession::completePaymentMethodSelection):
* bindings/js/JSBlobCustom.cpp:
(WebCore::constructJSBlob):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier):
(WebCore::createAesCbcParams):
(WebCore::createAesKeyGenParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::createRsaKeyGenParams):
(WebCore::createRsaOaepParams):
(WebCore::createRsaSsaParams):
* bindings/js/JSCryptoCustom.cpp:
(WebCore::JSCrypto::getRandomValues):
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::getJSArrayFromJSON):
(WebCore::getStringFromJSON):
(WebCore::getBooleanFromJSON):
(WebCore::getBigIntegerVectorFromJSON):
(WebCore::JSCryptoKeySerializationJWK::JSCryptoKeySerializationJWK):
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::tryJWKKeyOpsValue):
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages):
(WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence):
(WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents):
(WebCore::JSCryptoKeySerializationJWK::keyData):
(WebCore::addJWKAlgorithmToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):
* bindings/js/JSCryptoOperationData.cpp:
(WebCore::cryptoOperationDataFromJSValue):
* bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::upgradeElement):
* bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::getCustomElementCallback):
(WebCore::JSCustomElementRegistry::define):
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):
(WebCore::enforceRange):
(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::canAccessDocument):
(WebCore::throwTypeError):
(WebCore::throwNotSupportedError):
(WebCore::throwInvalidStateError):
(WebCore::throwSecurityError):
(WebCore::throwArgumentMustBeEnumError):
(WebCore::throwArgumentMustBeFunctionError):
(WebCore::throwArgumentTypeError):
(WebCore::throwArrayElementTypeError):
(WebCore::throwAttributeTypeError):
(WebCore::throwConstructorScriptExecutionContextUnavailableError):
(WebCore::throwSequenceTypeError):
(WebCore::throwNonFiniteTypeError):
(WebCore::throwGetterTypeError):
(WebCore::throwSetterTypeError):
(WebCore::throwThisTypeError):
(WebCore::callThrowTypeError):
* bindings/js/JSDOMBinding.h:
(WebCore::toJSSequence):
(WebCore::toRefPtrNativeArray):
(WebCore::toNativeArray):
* bindings/js/JSDOMConstructor.h:
(WebCore::JSDOMConstructorNotConstructable::callThrowTypeError):
(WebCore::JSBuiltinConstructor<JSClass>::callConstructor):
* bindings/js/JSDOMConvert.h:
(WebCore::convertWrapperType):
* bindings/js/JSDOMIterator.h:
(WebCore::iteratorCreate):
(WebCore::iteratorForEach):
(WebCore::JSDOMIteratorPrototype<JSWrapper>::next):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::showModalDialog):
(WebCore::handlePostMessage):
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
* bindings/js/JSDataCueCustom.cpp:
(WebCore::constructJSDataCue):
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::createTouchList):
(WebCore::JSDocument::getCSSCanvasContext):
* bindings/js/JSFileCustom.cpp:
(WebCore::constructJSFile):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::JSHTMLAllCollection::item):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
(WebCore::JSHTMLCanvasElement::probablySupportsContext):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::open):
* bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::JSHTMLFormControlsCollection::namedItem):
* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::selectionStart):
(WebCore::JSHTMLInputElement::setSelectionStart):
(WebCore::JSHTMLInputElement::selectionEnd):
(WebCore::JSHTMLInputElement::setSelectionEnd):
(WebCore::JSHTMLInputElement::selectionDirection):
(WebCore::JSHTMLInputElement::setSelectionDirection):
(WebCore::JSHTMLInputElement::setSelectionRange):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* bindings/js/JSIDBDatabaseCustom.cpp:
(WebCore::JSIDBDatabase::createObjectStore):
* bindings/js/JSImageConstructor.cpp:
(WebCore::JSImageConstructor::construct):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
* bindings/js/JSMediaDevicesCustom.cpp:
(WebCore::JSMediaDevices::getUserMedia):
* bindings/js/JSMediaStreamTrackCustom.cpp:
(WebCore::JSMediaStreamTrack::getSettings):
(WebCore::JSMediaStreamTrack::getCapabilities):
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::fillMessagePortArray):
* bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage):
* bindings/js/JSMockContentFilterSettingsCustom.cpp:
(WebCore::JSMockContentFilterSettings::setDecisionPoint):
(WebCore::toDecision):
* bindings/js/JSModuleLoader.cpp:
(WebCore::JSModuleLoader::evaluate):
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::constructJSMutationObserver):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):
* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::acceptNode):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
* bindings/js/JSReadableStreamPrivateConstructors.cpp:
(WebCore::constructJSReadableStreamDefaultController):
(WebCore::constructJSReadableStreamDefaultReader):
* bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::setValue):
(WebCore::JSSVGLength::convertToSpecifiedUnits):
* bindings/js/JSWebGL2RenderingContextCustom.cpp:
(WebCore::JSWebGL2RenderingContext::getIndexedParameter):
* bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
(WebCore::getObjectParameter):
(WebCore::JSWebGLRenderingContextBase::getAttachedShaders):
(WebCore::JSWebGLRenderingContextBase::getExtension):
(WebCore::JSWebGLRenderingContextBase::getFramebufferAttachmentParameter):
(WebCore::JSWebGLRenderingContextBase::getParameter):
(WebCore::JSWebGLRenderingContextBase::getProgramParameter):
(WebCore::JSWebGLRenderingContextBase::getShaderParameter):
(WebCore::JSWebGLRenderingContextBase::getUniform):
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):
* bindings/js/JSWebKitSubtleCryptoCustom.cpp:
(WebCore::cryptoKeyFormatFromJSValue):
(WebCore::cryptoKeyUsagesFromJSValue):
(WebCore::JSWebKitSubtleCrypto::encrypt):
(WebCore::JSWebKitSubtleCrypto::decrypt):
(WebCore::JSWebKitSubtleCrypto::sign):
(WebCore::JSWebKitSubtleCrypto::verify):
(WebCore::JSWebKitSubtleCrypto::digest):
(WebCore::JSWebKitSubtleCrypto::generateKey):
(WebCore::importKey):
(WebCore::JSWebKitSubtleCrypto::importKey):
(WebCore::exportKey):
(WebCore::JSWebKitSubtleCrypto::exportKey):
(WebCore::JSWebKitSubtleCrypto::wrapKey):
(WebCore::JSWebKitSubtleCrypto::unwrapKey):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::constructJSWorker):
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):
* bindings/js/ReadableStreamDefaultController.cpp:
(WebCore::ReadableStreamDefaultController::invoke):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneBase::throwStackOverflow):
(WebCore::CloneDeserializer::throwValidationError):
(WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateEnumerationImplementationContent):
(GenerateDictionaryImplementationContent):
(GenerateOverloadedFunctionOrConstructor):
(GenerateImplementation):
(GenerateFunctionCastedThis):
(GenerateArgumentsCountCheck):
(GenerateParametersCheck):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::jsInterfaceNameConstructor):
(WebCore::setJSInterfaceNameConstructor):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::setJSTestActiveDOMObjectConstructor):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
(WebCore::setJSTestClassWithJSBuiltinConstructorConstructor):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::setJSTestCustomConstructorWithNoInterfaceObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
(WebCore::setJSTestCustomNamedGetterConstructor):
(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::construct):
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
(WebCore::jsTestEventConstructorAttr3):
(WebCore::jsTestEventConstructorConstructor):
(WebCore::setJSTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
(WebCore::setJSTestEventTargetConstructor):
(WebCore::jsTestEventTargetPrototypeFunctionItem):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
(WebCore::jsTestExceptionConstructor):
(WebCore::setJSTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
(WebCore::setJSTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectRegularAttribute):
(WebCore::jsTestGlobalObjectPublicAndPrivateAttribute):
(WebCore::jsTestGlobalObjectPublicAndPrivateConditionalAttribute):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::jsTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectRegularAttribute):
(WebCore::setJSTestGlobalObjectPublicAndPrivateAttribute):
(WebCore::setJSTestGlobalObjectPublicAndPrivateConditionalAttribute):
(WebCore::setJSTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperation):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttr):
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfaceConstructor):
(WebCore::setJSTestInterfaceConstructor):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
(WebCore::jsTestInterfaceConstructorFunctionImplementsMethod4):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
(WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4):
* bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::jsTestIterableConstructor):
(WebCore::setJSTestIterableConstructor):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::jsTestJSBuiltinConstructorConstructor):
(WebCore::setJSTestJSBuiltinConstructorConstructor):
(WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunction):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::setJSTestMediaQueryListListenerConstructor):
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::jsTestNamedConstructorConstructor):
(WebCore::setJSTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodeConstructor::construct):
(WebCore::jsTestNodeName):
(WebCore::jsTestNodeConstructor):
(WebCore::setJSTestNodeConstructor):
(WebCore::setJSTestNodeName):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
(WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
(WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::jsTestNondeterministicConstructor):
(WebCore::setJSTestNondeterministicConstructor):
(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::jsTestNondeterministicPrototypeFunctionNondeterministicZeroArgFunction):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convert<TestObj::EnumType>):
(WebCore::convert<TestObj::Optional>):
(WebCore::convert<AlternateEnumName>):
(WebCore::convert<TestObj::EnumA>):
(WebCore::convert<TestObj::EnumB>):
(WebCore::convert<TestObj::EnumC>):
(WebCore::convert<TestObj::Kind>):
(WebCore::convert<TestObj::Size>):
(WebCore::convert<TestObj::Confidence>):
(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::JSTestObjConstructor::construct):
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
(WebCore::jsTestObjConstructorStaticStringAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjClampedShortAttr):
(WebCore::jsTestObjEnforceRangeShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjUsvstringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjUnforgeableAttr):
(WebCore::jsTestObjStringAttrTreatingNullAsEmptyString):
(WebCore::jsTestObjUsvstringAttrTreatingNullAsEmptyString):
(WebCore::jsTestObjImplementationEnumAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedUSVStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedUSVURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjEnabledAtRuntimeAttribute):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithGetterExceptionWithMessage):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjAttrWithSetterExceptionWithMessage):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjOnfoo):
(WebCore::jsTestObjOnwebkitfoo):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringSettableAttribute):
(WebCore::jsTestObjNullableUSVStringSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjStringifierAttribute):
(WebCore::jsTestObjConstructor):
(WebCore::setJSTestObjConstructor):
(WebCore::setJSTestObjConstructorStaticStringAttr):
(WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjClampedShortAttr):
(WebCore::setJSTestObjEnforceRangeShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjUsvstringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjTestNullableObjAttr):
(WebCore::setJSTestObjLenientTestObjAttr):
(WebCore::setJSTestObjStringAttrTreatingNullAsEmptyString):
(WebCore::setJSTestObjUsvstringAttrTreatingNullAsEmptyString):
(WebCore::setJSTestObjImplementationEnumAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedUSVStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedUSVURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjEnabledAtRuntimeAttribute):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithGetterExceptionWithMessage):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjAttrWithSetterExceptionWithMessage):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjCustomAttr):
(WebCore::setJSTestObjOnfoo):
(WebCore::setJSTestObjOnwebkitfoo):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjReplaceableAttribute):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringSettableAttribute):
(WebCore::setJSTestObjNullableUSVStringSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):
(WebCore::setJSTestObjPutForwardsAttribute):
(WebCore::setJSTestObjPutForwardsNullableAttribute):
(WebCore::setJSTestObjStringifierAttribute):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestObjPrototypeFunctionVoidMethod):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethod):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethod):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethod):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjInstanceFunctionUnforgeableMethod):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyString):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameter):
(WebCore::jsTestObjPrototypeFunctionNullableStringMethod):
(WebCore::jsTestObjConstructorFunctionNullableStringStaticMethod):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethod):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyString):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionMethodWithException):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionWithMessage):
(WebCore::jsTestObjPrototypeFunctionCustomMethod):
(WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
(WebCore::jsTestObjPrototypeFunctionWithDocumentArgument):
(WebCore::jsTestObjPrototypeFunctionWithCallerDocumentArgument):
(WebCore::jsTestObjPrototypeFunctionWithCallerWindowArgument):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNull):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsNull):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsEmptyString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaN):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaN):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLong):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZero):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLong):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZero):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmpty):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBoolean):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalse):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAny):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapper):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNull):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolver):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
(WebCore::jsTestObjConstructorFunctionClassMethod):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjConstructorFunctionClassMethod2):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRange):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
(WebCore::jsTestObjPrototypeFunctionGetElementById):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert3):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionOrange):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionPromise):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionPromise):
(WebCore::jsTestObjPrototypeFunctionMethodWithNeedsCustomElementReactionStack):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRoot):
(WebCore::jsTestObjPrototypeFunctionToString):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):
(WebCore::JSTestOverloadedConstructorsConstructor::construct):
(WebCore::jsTestOverloadedConstructorsConstructor):
(WebCore::setJSTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):
(WebCore::JSTestOverloadedConstructorsWithSequenceConstructor::construct):
(WebCore::jsTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::setJSTestOverloadedConstructorsWithSequenceConstructor):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsConstructor):
(WebCore::setJSTestOverrideBuiltinsConstructor):
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
(WebCore::setJSTestSerializedScriptValueInterfaceConstructor):
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsConstructor):
(WebCore::setJSTestTypedefsConstructor):
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
(WebCore::jsattributeConstructor):
(WebCore::setJSattributeConstructor):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
(WebCore::setJSreadonlyConstructor):
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::toJSPrimitive):
* bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
(ObjcInstance::invokeMethod):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcField::valueFromInstance):
(JSC::Bindings::ObjcField::setValueToInstance):
(JSC::Bindings::ObjcArray::setValueAt):
(JSC::Bindings::ObjcArray::valueAt):
(JSC::Bindings::callObjCFallbackObject):
* bridge/objc/objc_utility.h:
* bridge/objc/objc_utility.mm:
(JSC::Bindings::throwError):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
(JSC::RuntimeArray::put):
(JSC::RuntimeArray::putByIndex):
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
(JSC::callRuntimeMethod):
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::fallbackObjectGetter):
(JSC::Bindings::RuntimeObject::fieldGetter):
(JSC::Bindings::RuntimeObject::methodGetter):
(JSC::Bindings::RuntimeObject::getOwnPropertySlot):
(JSC::Bindings::RuntimeObject::put):
(JSC::Bindings::RuntimeObject::defaultValue):
(JSC::Bindings::RuntimeObject::getOwnPropertyNames):
(JSC::Bindings::RuntimeObject::throwInvalidAccessError):
* bridge/runtime_object.h:
Source/WebKit/mac:
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::invokeMethod):
Source/WebKit2:
* WebProcess/Plugins/Netscape/JSNPMethod.cpp:
(WebKit::callMethod):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::getOwnPropertySlot):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
(WebKit::JSNPObject::throwInvalidAccessError):
* WebProcess/Plugins/Netscape/JSNPObject.h:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
Source/WTF:
* wtf/Platform.h:
- Introduced the ENABLE(THROW_SCOPE_VERIFICATION) flag.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205198
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 30 Aug 2016 19:54:37 +0000 (19:54 +0000)]
Use of uninitialised memory in TransformationMatrx::blend4()
https://bugs.webkit.org/show_bug.cgi?id=134621
<rdar://problem/
27337539>
Reviewed by Dean Jackson.
Change is based on the Blink change (patch by <alancutter@chromium.org>):
<https://src.chromium.org/viewvc/blink?revision=177453&view=revision>
Source/WebCore:
TransformationMatrix::blend() was attempting to blend between non-invertable
matricies. This resulted in garbage stack variables being used.
This patch ensures that blend() will fall back to a 50% step interpolation
when one of the sides are not invertable.
Tested by new TransformationMatrix test in TestWebKitAPI.
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::blend2): Properly handle failure in the
decompose method calls.
(WebCore::TransformationMatrix::blend4): Ditto.
Tools:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/TransformationMatrix.cpp: Added.
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205197
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Tue, 30 Aug 2016 19:42:17 +0000 (19:42 +0000)]
Marking js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=161156
Unreviewed test gardening.
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205196
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Tue, 30 Aug 2016 19:37:15 +0000 (19:37 +0000)]
Marking svg/animations/reinserting-svg-into-document.html as flaky on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=161395
Unreviewed test gardening.
* platform/ios-simulator/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205195
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Tue, 30 Aug 2016 19:33:22 +0000 (19:33 +0000)]
URLParser should handle relative URLs that start with //
https://bugs.webkit.org/show_bug.cgi?id=161364
Reviewed by Darin Adler.
Source/WebCore:
Covered by an API test.
* platform/URLParser.cpp:
(WebCore::URLParser::parse):
Tools:
* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::checkRelativeURL):
(TestWebKitAPI::TEST_F):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205194
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
wenson_hsieh@apple.com [Tue, 30 Aug 2016 18:59:52 +0000 (18:59 +0000)]
Fix a typo introduced in r205184.
https://bugs.webkit.org/show_bug.cgi?id=161380
Reviewed by Tim Horton.
Fixes a typo in an accessibility string: "Exit fullscreen" => "Exit Fullscreen"
* platform/LocalizedStrings.cpp:
(WebCore::exitFullScreenButtonAccessibilityTitle):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205193
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Tue, 30 Aug 2016 18:59:24 +0000 (18:59 +0000)]
Fix WebInspectorUI in internal Windows build
https://bugs.webkit.org/show_bug.cgi?id=161221
rdar://problem/
28019023
Reviewed by Brent Fulgham and Joseph Pecoraro.
Source/JavaScriptCore:
* JavaScriptCore.vcxproj/JavaScriptCore.proj:
Source/WebInspectorUI:
* WebInspectorUI.vcxproj/WebInspectorUI.make:
* WebInspectorUI.vcxproj/WebInspectorUI.proj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205192
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Tue, 30 Aug 2016 18:24:48 +0000 (18:24 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205191
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 18:22:15 +0000 (18:22 +0000)]
[Fetch API] Blob not found URL should result in a network error
https://bugs.webkit.org/show_bug.cgi?id=161381
Patch by Youenn Fablet <youenn@apple.com> on 2016-08-30
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
* web-platform-tests/fetch/api/basic/scheme-blob-expected.txt:
* web-platform-tests/fetch/api/basic/scheme-blob-worker-expected.txt:
* web-platform-tests/fetch/api/basic/scheme-blob-worker.html:
* web-platform-tests/fetch/api/basic/scheme-blob.html:
* web-platform-tests/fetch/api/basic/scheme-blob.js:
(invalidRequestMethods.forEach):
Source/WebCore:
Covered by rebased and updated tests.
Raising a network error if no blob can be found from the URL.
It is no longer notified by a 404 response.
Updated FileReaderLoader to generate the correct exception.
Made some clean-up in the code, in particular adding an enum class for BlobResourceHandle errors.
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::didFail):
(WebCore::FileReaderLoader::toErrorCode):
(WebCore::FileReaderLoader::httpStatusCodeToErrorCode):
* fileapi/FileReaderLoader.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::loadResourceSynchronously):
(WebCore::BlobResourceHandle::doStart):
(WebCore::BlobResourceHandle::didGetSize):
(WebCore::BlobResourceHandle::readSync):
(WebCore::BlobResourceHandle::readFileSync):
(WebCore::BlobResourceHandle::readAsync):
(WebCore::BlobResourceHandle::didOpen):
(WebCore::BlobResourceHandle::didRead):
(WebCore::BlobResourceHandle::failed):
(WebCore::BlobResourceHandle::notifyResponse):
(WebCore::BlobResourceHandle::notifyResponseOnError):
(WebCore::BlobResourceHandle::notifyFail):
* platform/network/BlobResourceHandle.h:
LayoutTests:
* fast/files/apply-blob-url-to-xhr-expected.txt:
* fast/files/workers/worker-apply-blob-url-to-xhr-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205190
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Tue, 30 Aug 2016 18:11:40 +0000 (18:11 +0000)]
Marking imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=161359
Unreviewed test gardening.
* platform/ios-simulator-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205189
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 18:09:07 +0000 (18:09 +0000)]
[Fetch API] Body mix-in text() should decode data as UTF-8
https://bugs.webkit.org/show_bug.cgi?id=161372
Patch by Youenn Fablet <youenn@apple.com> on 2016-08-30
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
* web-platform-tests/fetch/api/basic/text-utf8-expected.txt: Added.
* web-platform-tests/fetch/api/basic/text-utf8.html: Added.
* web-platform-tests/fetch/api/resources/status.py: Added.
(main):
Source/WebCore:
Test: imported/w3c/web-platform-tests/fetch/api/basic/text-utf8.html
UsingTextResourceDecoder to decode data as UTF-8.
Making sure to prepend BOM if there is none, as specified in https://encoding.spec.whatwg.org/#utf-8-decode.
* Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::shouldPrependBOM):
(WebCore::textFromUTF8):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::takeAsText):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205188
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Tue, 30 Aug 2016 18:05:00 +0000 (18:05 +0000)]
Marking editing/pasteboard/5478250.html as flaky on mac-wk2 debug.
https://bugs.webkit.org/show_bug.cgi?id=161366
Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205187
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Tue, 30 Aug 2016 17:57:43 +0000 (17:57 +0000)]
ASSERTION FAILED: opportunitiesInRun <= expansionOpportunityCount in WebCore::computeExpansionForJustifiedText
https://bugs.webkit.org/show_bug.cgi?id=139393
<rdar://problem/
27704243>
Reviewed by Myles C. Maxfield.
Source/WebCore:
This patch ensures that we always remove a valid 'after expansion' opportunity (even when the last entry
in the opportunities list is 0).
Test: fast/text/assert-on-expansion-opportunity.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
LayoutTests:
* fast/text/assert-on-expansion-opportunity-expected.txt: Added.
* fast/text/assert-on-expansion-opportunity.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205186
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Tue, 30 Aug 2016 17:55:32 +0000 (17:55 +0000)]
Marking inspector/unit-tests/yieldable-task.html as a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=161361
Unreviewed test gardening.
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205185
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
wenson_hsieh@apple.com [Tue, 30 Aug 2016 17:26:13 +0000 (17:26 +0000)]
Exit fullscreen button in fullscreen media playback needs an accessibility string
https://bugs.webkit.org/show_bug.cgi?id=161380
Reviewed by Beth Dakin.
Adds an accessibility string for the exit fullscreen button.
* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::exitFullScreenButtonAccessibilityTitle):
* platform/LocalizedStrings.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205184
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Tue, 30 Aug 2016 16:35:48 +0000 (16:35 +0000)]
Stop using m_client to indicate whether an IPC::Connection is valid
https://bugs.webkit.org/show_bug.cgi?id=161362
Reviewed by Andreas Kling.
Instead, add an std::atomic<bool> so we can reliably check the state from other threads.
* Platform/IPC/Connection.cpp:
(IPC::Connection::Connection):
(IPC::Connection::invalidate):
(IPC::Connection::connectionDidClose):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::dispatchMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::client):
(IPC::Connection::isValid):
(IPC::Connection::waitForAndDispatchImmediately):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::startUpdating):
(WebKit::WebGeolocationManagerProxy::stopUpdating):
(WebKit::WebGeolocationManagerProxy::setEnableHighAccuracy):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205183
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Tue, 30 Aug 2016 16:34:01 +0000 (16:34 +0000)]
REGRESSION(r194846): [GTK] UI process crash visiting sites protected with HTTP auth when using GTK+ < 3.14
https://bugs.webkit.org/show_bug.cgi?id=161385
Reviewed by Antonio Gomes.
Since r194846, we are chaining up webkitWebViewBaseMotionNotifyEvent, but before GTK+ 3.14
GtkWidget::motion_notify_event was nullptr, so it can't be used unconditionally.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseMotionNotifyEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205182
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Tue, 30 Aug 2016 15:06:19 +0000 (15:06 +0000)]
Remove StylePendingImage
https://bugs.webkit.org/show_bug.cgi?id=161245
Reviewed by Andreas Kling.
Instances of this confusing type are used as placeholders during style resolution.
We can get rid of it and make "pending" a state of StyleImage. This simplies the code and
will allow further improvements.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::isPending):
(WebCore::CSSCrossfadeValue::blend):
* css/CSSCrossfadeValue.h:
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::CSSCursorImageValue):
(WebCore::CSSCursorImageValue::~CSSCursorImageValue):
Save the original URL since the underlying CSSImageValue may change.
(WebCore::CSSCursorImageValue::updateCursorElement):
(WebCore::CSSCursorImageValue::cursorElementRemoved):
(WebCore::CSSCursorImageValue::cursorElementChanged):
(WebCore::CSSCursorImageValue::loadImage):
(WebCore::CSSCursorImageValue::styleImage):
(WebCore::CSSCursorImageValue::isSVGCursor):
(WebCore::CSSCursorImageValue::cachedImageURL):
(WebCore::CSSCursorImageValue::updateCachedImage):
(WebCore::CSSCursorImageValue::detachPendingImage): Deleted.
(WebCore::CSSCursorImageValue::cachedImage): Deleted.
(WebCore::CSSCursorImageValue::cachedOrPendingImage): Deleted.
(WebCore::CSSCursorImageValue::clearCachedImage): Deleted.
* css/CSSCursorImageValue.h:
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::isPending):
* css/CSSFilterImageValue.h:
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::isPending):
(WebCore::CSSImageGeneratorValue::subimageIsPending):
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):
* css/CSSImageGeneratorValue.h:
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::~CSSImageSetValue):
(WebCore::CSSImageSetValue::loadBestFitImage):
(WebCore::CSSImageSetValue::styleImage):
(WebCore::CSSImageSetValue::traverseSubresources):
(WebCore::CSSImageSetValue::detachPendingImage): Deleted.
(WebCore::CSSImageSetValue::bestFitImage): Deleted.
(WebCore::CSSImageSetValue::cachedOrPendingImageSet): Deleted.
* css/CSSImageSetValue.h:
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::CSSImageValue):
(WebCore::CSSImageValue::~CSSImageValue):
(WebCore::CSSImageValue::isPending):
(WebCore::CSSImageValue::styleImage):
(WebCore::CSSImageValue::loadImage):
(WebCore::CSSImageValue::traverseSubresources):
(WebCore::CSSImageValue::detachPendingImage): Deleted.
(WebCore::CSSImageValue::cachedOrPendingImage): Deleted.
(WebCore::CSSImageValue::cachedImage): Deleted.
* css/CSSImageValue.h:
(WebCore::CSSImageValue::create):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::retrieveResourcesForProperties):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter):
(WebCore::crossfadeBlend):
* rendering/RenderImageResourceStyleImage.cpp:
(WebCore::RenderImageResourceStyleImage::image):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage):
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::StyleCachedImage):
(WebCore::StyleCachedImage::~StyleCachedImage):
(WebCore::StyleCachedImage::setCachedImage):
(WebCore::StyleCachedImage::cssValue):
(WebCore::StyleCachedImage::canRender):
(WebCore::StyleCachedImage::isPending):
(WebCore::StyleCachedImage::isLoaded):
(WebCore::StyleCachedImage::errorOccurred):
(WebCore::StyleCachedImage::imageSize):
(WebCore::StyleCachedImage::imageHasRelativeWidth):
(WebCore::StyleCachedImage::imageHasRelativeHeight):
(WebCore::StyleCachedImage::computeIntrinsicDimensions):
(WebCore::StyleCachedImage::usesImageContainerSize):
(WebCore::StyleCachedImage::setContainerSizeForRenderer):
(WebCore::StyleCachedImage::addClient):
(WebCore::StyleCachedImage::removeClient):
(WebCore::StyleCachedImage::image):
(WebCore::StyleCachedImage::knownToBeOpaque):
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::isPending):
* rendering/style/StyleGeneratedImage.h:
* rendering/style/StyleImage.h:
(WebCore::StyleImage::isCachedImage):
(WebCore::StyleImage::StyleImage):
(WebCore::StyleImage::canRender): Deleted.
(WebCore::StyleImage::isPendingImage): Deleted.
* rendering/style/StylePendingImage.h: Removed.
* style/StylePendingResources.cpp:
(WebCore::Style::loadPendingImage):
(WebCore::Style::loadPendingImages):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205181
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Tue, 30 Aug 2016 14:19:10 +0000 (14:19 +0000)]
[GStreamer] bump required version to 1.2.3
https://bugs.webkit.org/show_bug.cgi?id=159667
Reviewed by Xabier Rodriguez Calvar.
.:
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/OptionsGTK.cmake:
Source/WebCore:
GStreamer 1.0.3 was released almost 4 years ago. GStreamer 1.2.3
being the version shipped in the Ubuntu LTS (14.04) it
feels reasonable to bump our requirement. Other major
distributions like Debian Jessie and Fedora ship GStreamer 1.4.x
already.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Deleted.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkProposeAllocation): Deleted.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcQueryWithParent): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205180
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
gyuyoung.kim@webkit.org [Tue, 30 Aug 2016 11:11:38 +0000 (11:11 +0000)]
[EFL] Gardening on failure tests
Unreviewed EFL gardening.
media control and IndexedDB tests have been failed.
Mark them to failure.
Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-08-30
* platform/efl/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205179
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Tue, 30 Aug 2016 07:47:31 +0000 (07:47 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205177
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Tue, 30 Aug 2016 07:30:37 +0000 (07:30 +0000)]
Unreviewed. Fix GTK+ build after r205150.
* UIProcess/API/gtk/WebKitUserContentManager.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205176
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
achristensen@apple.com [Tue, 30 Aug 2016 05:56:25 +0000 (05:56 +0000)]
Fix Windows build after r205161
* bindings/js/JSPerformanceTimingCustom.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205172
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 30 Aug 2016 05:24:13 +0000 (05:24 +0000)]
We should throw a SecurityError when denying setting a cross-origin Location property
https://bugs.webkit.org/show_bug.cgi?id=161368
Reviewed by Ryosuke Niwa.
Source/WebCore:
We should throw a SecurityError when denying setting a cross-origin
Location property:
- https://html.spec.whatwg.org/#location-set
- https://html.spec.whatwg.org/#crossoriginset-(-o,-p,-v,-receiver-)
- https://html.spec.whatwg.org/#location-getownproperty
Firefox and Chrome already throw. We currently ignore and log an error
message.
No new tests, updated existing tests.
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate):
LayoutTests:
Update / Rebaseline existing tests to reflect behavior change.
* http/tests/security/cross-frame-access-location-put-expected.txt:
* http/tests/security/location-cross-origin-expected.txt:
* http/tests/security/location-cross-origin.html:
* http/tests/security/xss-DENIED-assign-location-hash-expected.txt:
* http/tests/security/xss-DENIED-assign-location-host-expected.txt:
* http/tests/security/xss-DENIED-assign-location-hostname-expected.txt:
* http/tests/security/xss-DENIED-assign-location-nonstandardProperty-expected.txt:
* http/tests/security/xss-DENIED-assign-location-pathname-expected.txt:
* http/tests/security/xss-DENIED-assign-location-protocol-expected.txt:
* http/tests/security/xss-DENIED-assign-location-reload-expected.txt:
* http/tests/security/xss-DENIED-assign-location-search-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205171
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
gyuyoung.kim@webkit.org [Tue, 30 Aug 2016 05:18:48 +0000 (05:18 +0000)]
[EFL] Gardening on Aug 30
Unreviewed gardening. Mark unexpecting passing tests to PASS.
* platform/efl/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205170
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Tue, 30 Aug 2016 04:53:17 +0000 (04:53 +0000)]
Unskip several web-platform-tests that are now passing
https://bugs.webkit.org/show_bug.cgi?id=161367
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Rebaseline those tests and update window-security.sub.html as per:
https://github.com/w3c/web-platform-tests/pull/3607
* web-platform-tests/html/browsers/history/the-location-interface/security_location_0.sub-expected.txt:
* web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub-expected.txt:
* web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html:
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub-expected.txt:
LayoutTests:
Unskip several web-platform-tests that are now passing.
* TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205169
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 02:07:12 +0000 (02:07 +0000)]
REGRESSION(r202568): Web Inspector: Expanding Array Prototype in Console shows no properties
https://bugs.webkit.org/show_bug.cgi?id=161263
<rdar://problem/
28035849>
Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-29
Reviewed by Matt Baker.
Source/JavaScriptCore:
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._propertyDescriptors):
Previously we only took the "numeric index fast path" if an object was
array like with length > 100. When we dropped the length check we
ended up breaking our display of Array prototype, because [].__proto__
is an array instance. Get it back by just doing a check of length > 0.
We may want to address this differently in the future by knowing if
we are getting properties for a prototype or not.
LayoutTests:
* inspector/model/remote-object-get-properties-expected.txt:
* inspector/model/remote-object-get-properties.html:
Include tests for an Array and an Array's proto (which is an Array).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205168
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
gyuyoung.kim@webkit.org [Tue, 30 Aug 2016 01:56:37 +0000 (01:56 +0000)]
Unreviewed EFL/GTK build fix since r205150
Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-08-29
* CMakeLists.txt: Add Shared/FrameInfoData.cpp.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205167
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Tue, 30 Aug 2016 01:48:10 +0000 (01:48 +0000)]
[JSC] Clean up FTL Capabilities for CompareEq
https://bugs.webkit.org/show_bug.cgi?id=161353
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-29
Reviewed by Geoffrey Garen.
It looks like we already have code for every case.
This patch removes the tests from FTLCapabilities
and move the generic case last as usual.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205166
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Tue, 30 Aug 2016 00:44:21 +0000 (00:44 +0000)]
Avoid holding GlyphData in MathOperator
https://bugs.webkit.org/show_bug.cgi?id=161256
<rdar://problem/
28033400>
Reviewed by Myles C. Maxfield.
Do not cache GlyphData in MathOperator elements, because the fonts referenced in the
GlyphData may be purged during low-memory conditions. Instead, we should store either
the relevant CodePoint, or the fallback Glyph (for the current system font).
Added an initialization function for GlyphAssemblyData, since unions containing structs
do not properly call constructors, resulting in garbage font/glyph content.
No new tests. Changes are covered by existing MathML test suite.
* rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::GlyphAssemblyData::initialize): Added.
(WebCore::MathOperator::MathOperator): Initialize m_assembly/m_variant.
(WebCore::MathOperator::setSizeVariant): Only store the glyph, not the font.
(WebCore::glyphDataForCodePointOrFallbackGlyph): Added helper function.
(WebCore::MathOperator::setGlyphAssembly): Do not rely on stored GlyphData.
(WebCore::MathOperator::calculateGlyphAssemblyFallback): Remove unneeded argument. Check
if a fallback glyph is being used and remember for later.
(WebCore::MathOperator::calculateStretchyData): Do not rely on stored GlyphData.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Ditto.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::MathOperator::paint): Ditto.
* rendering/mathml/MathOperator.h:
(WebCore::MathOperator::GlyphAssemblyData::hasExtension): Added.
(WebCore::MathOperator::GlyphAssemblyData::hasMiddle): Added.
(WebCore::MathOperator::MathOperator): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205163
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dino@apple.com [Tue, 30 Aug 2016 00:15:17 +0000 (00:15 +0000)]
JSON.stringify returns empty when used with performance.timing.
https://bugs.webkit.org/show_bug.cgi?id=151813
<rdar://problem/
28066067>
Reviewed by Sam Weinig.
Source/WebCore:
While we are waiting for our bindings generator to handle
"serializer", add a custom toJSON function that allows
performance.timing to be stringified.
Test: fast/dom/webtiming-performance-timing-stringify.html
* CMakeLists.txt: New file added.
* WebCore.xcodeproj/project.pbxproj: New file added.
* bindings/js/JSPerformanceTimingCustom.cpp: Added. Implements toJSON.
(WebCore::JSPerformanceTiming::toJSON):
* page/PerformanceTiming.idl: Add toJSON().
LayoutTests:
* fast/dom/Window/window-properties-performance-expected.txt:
* fast/dom/Window/window-properties-performance-resource-timing-expected.txt:
* fast/dom/webtiming-document-open-expected.txt:
* fast/dom/webtiming-navigate-within-document-expected.txt:
* fast/dom/webtiming-performance-timing-stringify-expected.txt: Added.
* fast/dom/webtiming-performance-timing-stringify.html: Added.
* http/tests/misc/webtiming-cross-origin-and-back1-expected.txt:
* http/tests/misc/webtiming-cross-origin-redirect-expected.txt:
* http/tests/misc/webtiming-no-origin-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205161
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aakash_jain@apple.com [Mon, 29 Aug 2016 23:54:25 +0000 (23:54 +0000)]
EWS patch status page should indicate bot corresponding to each status message
https://bugs.webkit.org/show_bug.cgi?id=161280
Reviewed by Alexey Proskuryakov.
* QueueStatusServer/templates/patch.html: Formatting changes.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205160
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 29 Aug 2016 23:23:56 +0000 (23:23 +0000)]
Get rid of ChildProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161357
Reviewed by Tim Horton.
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::fromConnection): Deleted.
* UIProcess/ChildProcessProxy.h:
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::fromConnection): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205159
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 29 Aug 2016 23:10:56 +0000 (23:10 +0000)]
Remove the last uses of WebProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161355
Reviewed by Tim Horton.
* UIProcess/WebProcessPool.cpp:
(WebKit::webProcessProxyFromConnection):
(WebKit::WebProcessPool::handleMessage):
(WebKit::WebProcessPool::handleSynchronousMessage):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205156
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Mon, 29 Aug 2016 23:04:44 +0000 (23:04 +0000)]
Regression(r204923): It should be possible to set 'Location.href' cross origin
https://bugs.webkit.org/show_bug.cgi?id=161343
<rdar://problem/
28063361>
Reviewed by Ryosuke Niwa.
Source/WebCore:
It should be possible to set 'Location.href' cross origin:
- https://html.spec.whatwg.org/#crossoriginproperties-(-o-)
Firefox and Chrome allow this but we throw a SecurityError.
We already allow setting crossOrigin.window.location which is equivalent.
No new tests, updated existing test.
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate):
Refactor the [Put] delegate so that it does not log a security error
when setting 'href' attribute, given that setting it works as expected.
This fixes a bug in shipping Safari where setting 'href' would work but
log an error message anyway.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
Add support for [DoNotCheckSecurityOnSetter] IDL extended attribute,
in addition to the already supported [DoNotCheckSecurity] and
[DoNotCheckSecurityOnGetter].
* page/Location.idl:
Use [DoNotCheckSecurityOnSetter] on 'href' attribute as it can be
set cross-origin. This fixes the regression introduced in r204923.
LayoutTests:
Add layout test coverage.
* http/tests/security/location-cross-origin-expected.txt:
* http/tests/security/location-cross-origin.html:
* http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205154
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jiewen_tan@apple.com [Mon, 29 Aug 2016 22:54:48 +0000 (22:54 +0000)]
Unreviewed, update iOS simulator WK1 flaky tests.
* platform/ios-simulator-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205153
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Mon, 29 Aug 2016 22:10:09 +0000 (22:10 +0000)]
Web Inspector: Unify Resource entry context menus
https://bugs.webkit.org/show_bug.cgi?id=161301
Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-29
Reviewed by Brian Burg.
* UserInterface/Main.html:
Add ContextMenuUtilities.
* UserInterface/Views/ContextMenuUtilities.js: Added.
(WebInspector.appendContextMenuItemsForResource):
Appends the following items to the given WebInspector.ContextMenu object with a WebInspector.Resource:
- Open in New Tab
- Copy Link Address
- Copy as cURL (only if the resource is not from a data URL)
- Save File
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
Make use of new WebInspector.appendContextMenuItemsForResource.
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent):
Make use of new WebInspector.appendContextMenuItemsForResource.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205151
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
andersca@apple.com [Mon, 29 Aug 2016 22:00:39 +0000 (22:00 +0000)]
Get rid of another use of WebProcessProxy::fromConnection
https://bugs.webkit.org/show_bug.cgi?id=161331
Reviewed by Dan Bernstein.
WebUserContentControllerProxy::didPostMessage uses WebProcessProxy::fromConnection to be able to find a WebFrameProxy from
a given frame ID. Since the WebFrameProxy is only used to construct an API::FrameInfo object from, introduce a FrameInfoData object
and fill it in on the web process side and send it over to the UI process where an API::FrameInfo object can be created.
* Shared/FrameInfoData.cpp: Added.
(WebKit::FrameInfoData::encode):
(WebKit::FrameInfoData::decode):
* Shared/FrameInfoData.h: Added.
* UIProcess/API/APIFrameInfo.cpp:
(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):
* UIProcess/API/APIFrameInfo.h:
* UIProcess/API/Cocoa/WKUserContentController.mm:
* UIProcess/UserContent/WebScriptMessageHandler.h:
* UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
* UIProcess/UserContent/WebUserContentControllerProxy.h:
* UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/UserContent/WebUserContentController.cpp:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::info):
* WebProcess/WebPage/WebFrame.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205150
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
aakash_jain@apple.com [Mon, 29 Aug 2016 21:51:35 +0000 (21:51 +0000)]
EWS should indicate which bot processed the patch
https://bugs.webkit.org/show_bug.cgi?id=161222
Reviewed by Alexey Proskuryakov.
* QueueStatusServer/handlers/statusbubble.py:
(StatusBubble._build_bubble): Remove the bot id from bubbles as it is confusing.
bot ids are now displayed in patch status page.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@205149
268f45cc-cd09-0410-ab3c-
d52691b4dbfc