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

Timeline



Apr 18, 2016:

11:54 PM Changeset in webkit [199710] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Fix some overhead affecting small codegen
https://bugs.webkit.org/show_bug.cgi?id=156728

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-18
Reviewed by Filip Pizlo.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
(JSC::AbstractMacroAssembler::random):
cryptographicallyRandomNumber() is very costly.
We only need it in lowering some very particular cases
of non-trusted immediates. No inline cache needs that.

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::link):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::addSlowCase):
Do not copy the JumpList to access its elements.

11:33 PM Changeset in webkit [199709] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix after r199700

  • PlatformMac.cmake:
11:02 PM Changeset in webkit [199708] by beidson@apple.com
  • 23 edits in trunk/Source

Modern IDB (Blob support): When reading Blobs from the database, grant the Networking process sandbox access to the files.
https://bugs.webkit.org/show_bug.cgi?id=156640

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No change in behavior, as blobs in IDB are not yet enabled,

but when they are enabled testing will cover this).

  • Modules/indexeddb/shared/IDBResultData.h: Export some stuff
  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked): Account for

BlobRegistry change described below.

  • platform/network/BlobRegistry.h: Change registerBlobURLOptionallyFileBacked to take a BlobDataFileReference instead of a raw path, to allow WK2 to include a sandbox extension.
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL): Account for BlobRegistry change described above.
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked): Use the passed in

BlobDataFileHandle, and also register the BlobResourceHandle constructor.

  • platform/network/BlobRegistryImpl.h:

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles): Utility function to ask the UI process for

SandboxExtensions for a list of files.

(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles): Take the SandboxExtensions from the UI process

and pass them along to the completion handler.

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetRecord): If the value returned from the database doesn't have Blob files,

pass the result directly on to WebCore. If it does, ask the UI process for SandboxExtensions first.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked): Grab the BlobDataFileReference from the

NetworkConnectionToWebProcess to pass along to the BlobRegistry.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Add this message

so the WebProcess can preflight the creation of some blob URLs by passing along the SandboxExtensions for their files.

(WebKit::NetworkConnectionToWebProcess::takeBlobDataFileReferenceForPath):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • UIProcess/Databases/DatabaseProcessProxy.cpp:

(WebKit::DatabaseProcessProxy::getSandboxExtensionsForBlobFiles): Create SandboxExtensions for the passed in files and

return them to the DatabaseProcess.

  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Databases/DatabaseProcessProxy.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): New form of "didGetRecord" that handles passing

the SandboxExtensions to the Networking process before they are needed.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
10:08 PM Changeset in webkit [199707] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS build after r199701

  • platform/ios/WebAVPlayerController.mm:
10:05 PM Changeset in webkit [199706] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Updated binding test result to reflect the change to not use Deprecated::ScriptValue.

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated with new script.
9:05 PM Changeset in webkit [199705] by mitz@apple.com
  • 2 edits in trunk/Tools

Fixed building with old Xcode.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:

(TEST):

7:58 PM Changeset in webkit [199704] by Darin Adler
  • 10 edits in trunk/Source/WebCore

Remove all use of Deprecated::ScriptValue in generated bindings
https://bugs.webkit.org/show_bug.cgi?id=156706

Reviewed by Brady Eidson.

  • Modules/indexeddb/IDBCursor.idl: Removed unneeded [ImplementationReturnType=JSValue].
  • Modules/indexeddb/IDBCursorWithValue.idl: Ditto.
  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::lowerValue): Deleted.
(WebCore::IDBKeyRange::upperValue): Deleted.
(WebCore::IDBKeyRange::only): Changed to take ExecState since the old code just used
the ScriptExecutionContext to get back to the (potentially wrong) ExecState. Also kept
one overload that takes ScriptExecutionContext because I could not change all callers.
(WebCore::IDBKeyRange::lowerBound): Ditto.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.

  • Modules/indexeddb/IDBKeyRange.h: Updated for above.
  • Modules/indexeddb/IDBKeyRange.idl: Use [ImplementationReturnType=IDBKey].

Use ScriptState instead of ScriptExecutionContext.

  • Modules/streams/ReadableStreamSource.h: Take JSValue instead of Deprecated::ScriptValue

for the ignored argument to the cancel function.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS): Renamed idbKeyToJSValue to this, the traditional name used in the
bindings generator for all these functions. Also changed to take references.
(WebCore::injectIDBKeyIntoScriptValue): Updated to call with the new name and types.
(WebCore::idbKeyDataToScriptValue): Ditto.

  • bindings/js/IDBBindingUtilities.h: Added declaration of toJS for IDBKey.
  • bindings/scripts/CodeGeneratorJS.pm: Use JSC::JSValue instead of Deprecated::ScriptValue

for the "any" type.
(JSValueToNative): Just return the value with no transformation when type is "any".
(NativeToJSValue): Changed default behavior for "any" to just pass the value as is with
no transfomration. Removed unused ImplementationReturnType case for inside Document.
Removed JSValue case since it's the default now. Added IDBKey case that matches the
IDBKeyPath case (still wondering if we can do those without an attribute). Removed bogus
second check for type "any".

7:33 PM Changeset in webkit [199703] by commit-queue@webkit.org
  • 14 edits in trunk

[GTK] Possible off-by-one in hyphenation code
https://bugs.webkit.org/show_bug.cgi?id=156661

Patch by Martin Robinson <mrobinson@igalia.com> on 2016-04-18
Reviewed by Michael Catanzaro.

Source/WebCore:

No new tests. This is covered by older tests.

  • platform/text/hyphen/HyphenationLibHyphen.cpp:

(WebCore::lastHyphenLocation): Fix an off by one error in hyphen location.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip a test that is now passing.
  • platform/gtk/fast/text/hyphenate-character-expected.png:
  • platform/gtk/fast/text/hyphenate-character-expected.txt:
  • platform/gtk/fast/text/hyphenate-first-word-expected.png:
  • platform/gtk/fast/text/hyphenate-first-word-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.png:
  • platform/gtk/fast/text/hyphenate-limit-lines-expected.txt:
  • platform/gtk/fast/text/hyphenate-locale-expected.png:
  • platform/gtk/fast/text/hyphenate-locale-expected.txt:
7:18 PM Changeset in webkit [199702] by dino@apple.com
  • 3 edits in trunk/Source/WebKit2

New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>

Trying to fix GTK and EFL builds. I forgot to add files
to CMake.

  • CMakeLists.txt:
  • PlatformMac.cmake:
6:52 PM Changeset in webkit [199701] by eric.carlson@apple.com
  • 7 edits in trunk/Source/WebCore

[OSX] AVKit is not available on all systems
https://bugs.webkit.org/show_bug.cgi?id=156724
<rdar://problem/25501587>

Reviewed by Dean Jackson.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: Add _OPTIONAL to all AVKit softlink macros.
  • platform/ios/WebAVPlayerController.mm: Ditto.
  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm: Ditto.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Ditto.
  • platform/mac/WebPlaybackSessionInterfaceMac.mm: Ditto.
  • platform/mac/WebVideoFullscreenInterfaceMac.mm: Ditto.
6:46 PM Changeset in webkit [199700] by dino@apple.com
  • 17 edits
    5 copies in trunk

New SPI to export a dictionary of runtime features
https://bugs.webkit.org/show_bug.cgi?id=156645
<rdar://problem/23621666>

Reviewed by Darin Adler.

Source/WebKit2:

Add a new type of Preference for experimental features so that we
can dynamically toggle them from a WebKit2 host. These are special
keys that are tied to runtime flags. The host process can ask WebKit
for the list of keys, each with a small description, in order to
display UI.

  • Add HumanReadableName and HumanReadableDescription parameters to our macros, which are used when building a ExperimentalFeature. These are both empty strings for the existing preferences. At some point we should probably move all this to code generation rather than macros, so that we don't have to carry around unused parameters.
  • I've included two sample experimental features: WebGL2 and ShadowDOM. They are not actually hooked up to the runtime settings yet, but its pretty clear how that will happen. Note that these are new preferences that have an "Experimental" prefix. This is so toggling an experimental feature to off won't cause the feature to not work once it becomes stable enough to enable by default. In other words, when it moves out of the experimental stage, the experimental feature flag will be removed, and you'll no longer check for values with that key.
  • The ExperimentalFeature object is what the host process will read in order to show some UI. It contains the human readable info, as well as the actual key that can be used to query and toggle the experimental feature.
  • Shared/API/APIObject.h: Add the ExperimentalFeature.
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject): Exposes a wrapper around a _WKExperimentalFeature ObjC type.

  • Shared/WebPreferencesDefinitions.h: Change all the existing macros to take the new

parameters, and add the initial experimental keys.

  • Shared/WebPreferencesKeys.cpp: Add new parameters to existing macros.
  • Shared/WebPreferencesKeys.h: Ditto.
  • Shared/WebPreferencesStore.cpp: Ditto.

(WebKit::defaults):

  • UIProcess/API/APIExperimentalFeature.cpp: The API side of the ExperimentalFeature.

(API::ExperimentalFeature::create):
(API::ExperimentalFeature::ExperimentalFeature):
(API::ExperimentalFeature::~ExperimentalFeature):

  • UIProcess/API/APIExperimentalFeature.h:
  • UIProcess/API/Cocoa/WKPreferences.mm: The actual implementation of the SPI.

(+[WKPreferences _experimentalFeatures]): Create and return a list of feature descriptors.
(-[WKPreferences _isEnabledForFeature:]): Get the value.
(-[WKPreferences _setEnabled:forFeature:]): Set the value.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/_WKExperimentalFeature.h: The ObjC version.
  • UIProcess/API/Cocoa/_WKExperimentalFeature.mm:

(-[_WKExperimentalFeature dealloc]):
(-[_WKExperimentalFeature description]):
(-[_WKExperimentalFeature name]):
(-[_WKExperimentalFeature key]):
(-[_WKExperimentalFeature details]):
(-[_WKExperimentalFeature _apiObject]):

  • UIProcess/API/Cocoa/_WKExperimentalFeatureInternal.h: Implementation of the wrapper.

(WebKit::wrapper):

  • UIProcess/WebPreferences.cpp: The C++ implementation that provides the data for the ObjC API.

(WebKit::globalExperimentalFeatures):
(WebKit::WebPreferences::ExperimentalFeatures):
(WebKit::WebPreferences::isEnabledForFeature):
(WebKit::WebPreferences::setEnabledForFeature):

  • UIProcess/WebPreferences.h:
  • UIProcess/mac/WebPreferencesMac.mm: Update some macros.

(WebKit::WebPreferences::platformInitializeStore):

  • WebProcess/WebPage/WebPage.cpp: Ditto

(WebKit::WebPage::updatePreferences):

  • WebKit2.xcodeproj/project.pbxproj: Add the new files.

Tools:

Test the experimental features SPI on WKPreferences.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm:
6:38 PM Changeset in webkit [199699] by sbarati@apple.com
  • 33 edits in trunk/Source/JavaScriptCore

implement dynamic scope accesses in the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=156567

Reviewed by Geoffrey Garen.

This patch adds dynamic scope operations to the DFG/FTL.
This patch adds three new DFG nodes: ResolveScope, PutDynamicVar and GetDynamicVar.
When we encounter a Dynamic/UnresolvedProperty/UnresolvedPropertyWithVarInjectionChecks
resolve type, we will compile dynamic scope resolution nodes. When we encounter
a resolve type that needs var injection checks and the var injection
watchpoint has already been fired, we will compile dynamic scope resolution
nodes.

This patch also adds a new value to the InitializationMode enum: ConstInitialization.
There was a subtle bug where we used to never compile the var injection variant of the
resolve type for an eval that injected a var where there was also a global lexical variable with the same name.
For example, the store compiled in this eval("var foo = 20;") wouldn't be compiled
with var injection checks if there was global let/const variable named "foo".
So there was the potential for the injected var to store to the GlobalLexicalObject.
I found this bug because my initial implementation in the DFG/FTL ran into it.
The reason this bug existed is because when we compile a const initialization,
we never need a var injections check. The const initialization always
knows where to store its value. This same logic leaked into the above eval's
"var foo = 20" store. This new enum value allows us to distinguish const
initialization stores from non-const initialization stores.

(I also changed InitializationMode to be an enum class instead of an enum).

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::initializeVariable):
(JSC::BytecodeGenerator::emitInstanceOf):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
(JSC::BytecodeGenerator::pushScopedControlFlowContext):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::initializationModeForAssignmentContext):
(JSC::AssignResolveNode::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
(JSC::BindingNode::bindValue):
(JSC::AssignmentElementNode::bindValue):
(JSC::RestParameterNode::emit):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::noticeArgumentsUse):
(JSC::DFG::ByteCodeParser::promoteToConstant):
(JSC::DFG::ByteCodeParser::needsDynamicLookup):
(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::identifierNumber):
(JSC::DFG::Node::hasGetPutInfo):
(JSC::DFG::Node::getPutInfo):
(JSC::DFG::Node::hasAccessorAttributes):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutGetterSetterById):
(JSC::DFG::SpeculativeJIT::compileResolveScope):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/GetPutInfo.h:

(JSC::resolveModeName):
(JSC::initializationModeName):
(JSC::isInitialization):
(JSC::makeType):
(JSC::GetPutInfo::GetPutInfo):

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

5:25 PM Changeset in webkit [199698] by Brent Fulgham
  • 2 edits in trunk/LayoutTests

Unreviewed test fix after r199696.

  • inspector/console/x-frame-options-message-expected.txt: Rebaseline.):
5:21 PM Changeset in webkit [199697] by barraclough@apple.com
  • 4 edits in trunk

WebKit should adopt journal_mode=wal for all SQLite databases.
https://bugs.webkit.org/show_bug.cgi?id=133496

Reviewed by Brady Eidson.

Enabling sqlite3 WAL mode on iOS causes a test failure, but appears just be something that should fail still failing, only in a different way.
Enabling & marking test as failing for now. Tracking test failure here:

https://bugs.webkit.org/show_bug.cgi?id=156718

Source/WebCore:

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

  • enable on iOS.

LayoutTests:

  • platform/ios-simulator/TestExpectations:
    • storage/websql/alter-to-info-table.html [ Failure ]
4:07 PM Changeset in webkit [199696] by Brent Fulgham
  • 8 edits in trunk

Source/WebCore:
Remove support for X-Frame-Options in <meta>
https://bugs.webkit.org/show_bug.cgi?id=156625
<rdar://problem/25748714>

Rubberstamped by Darin Adler.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Revise messaging based on Darin's comments.

LayoutTests:
Crash in ElementDescendantIterator::operator--() when calling m_ancestorSiblingStack.last()
https://bugs.webkit.org/show_bug.cgi?id=156715
<rdar://problem/25750864>

Patch by Chris Dumez <Chris Dumez> on 2016-04-18
Reviewed by Antti Koivisto.

Add regression test that reproduced the crash.

  • fast/dom/collection-backward-traversal-crash-expected.txt: Added.
  • fast/dom/collection-backward-traversal-crash.html: Added.
4:00 PM Changeset in webkit [199695] by timothy_horton@apple.com
  • 12 edits
    1 add in trunk/Source/WebKit2

Swipe view gesture should be reversed in right-to-left contexts
https://bugs.webkit.org/show_bug.cgi?id=156714

Reviewed by Anders Carlsson.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/UserInterfaceLayoutDirection.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::userInterfaceLayoutDirection):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::userInterfaceLayoutDirection):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::userInterfaceLayoutDirection):
Plumb RTL-ness through to WebPageProxy.
We look at the WK(Web)View's UI layout direction.
For other platforms, we just assume LTR.

  • UIProcess/mac/ViewGestureController.h:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
Decide which way to swipe (and which way to look for back-forward items)
based on the WebPageProxy's reported RTLness.

(WebKit::ViewGestureController::isPhysicallySwipingLeft):
"Back" means "swiping left" in LTR and "swiping right" in RTL.

(WebKit::ViewGestureController::trackSwipeGesture):
(WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::handleSwipeGesture):
Make things that were equating "back" with "left" instead check isPhysicallySwipingLeft.

3:59 PM Changeset in webkit [199694] by Yusuke Suzuki
  • 12 edits
    3 copies
    5 adds
    1 delete in trunk

[JSCOnly] Implement RunLoop and remove glib dependency
https://bugs.webkit.org/show_bug.cgi?id=155706

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsJSCOnly.cmake:

Source/WTF:

Add missing RunLoop and WorkQueue platform code for JSCOnly port.
The implementation does not use platform specific things. Instead, we
implement them on WTF framework; using condition variables to construct
the run loop and timers.

Since the fallback is implemented, it is not necessary for JSCOnly port
to depend on GLib's RunLoop abstraction. So this patch removes its
dependency. As a result, now, JSCOnly port removes dependencies except for the system ICU.

We clean up event loop ifdefs by introducing USE_XXX_EVENT_LOOP flags.
USE(XXX_EVENT_LOOP) is exclusive to each other. So from now, we do not need to take care
of the order of if-defs for the event loops. (For example, USE(GLIB) should have lead before
OS(DARWIN) in WorkQueue.h for WebKitGTK on Darwin.)

EVENT_LOOP determination is done in Platform.h. This follows the style of WTF PLATFORM.

  • wtf/Platform.h:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/RunLoop.h:
  • wtf/WorkQueue.h:
  • wtf/generic/MainThreadGeneric.cpp: Renamed from Source/WTF/wtf/none/MainThreadNone.cpp.

(WTF::initializeMainThreadPlatform):
(WTF::scheduleDispatchFunctionsOnMainThread):

  • wtf/generic/RunLoopGeneric.cpp: Added.

(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::TimerBase::ScheduledTask::fired):
(WTF::RunLoop::TimerBase::ScheduledTask::scheduledTimePoint):
(WTF::RunLoop::TimerBase::ScheduledTask::updateReadyTime):
(WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()):
(WTF::RunLoop::TimerBase::ScheduledTask::isActive):
(WTF::RunLoop::TimerBase::ScheduledTask::deactivate):
(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::populateTasks):
(WTF::RunLoop::runImpl):
(WTF::RunLoop::run):
(WTF::RunLoop::iterate):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::schedule):
(WTF::RunLoop::scheduleAndWakeUp):
(WTF::RunLoop::dispatchAfter):
(WTF::RunLoop::TimerBase::TimerBase):
(WTF::RunLoop::TimerBase::~TimerBase):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::TimerBase::stop):
(WTF::RunLoop::TimerBase::isActive):

  • wtf/generic/WorkQueueGeneric.cpp: Added.

(WorkQueue::platformInitialize):
(WorkQueue::platformInvalidate):
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):

  • wtf/none/MainThreadNone.cpp:

(WTF::initializeMainThreadPlatform): Deleted.
(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/none/RunLoopNone.cpp:

(WTF::RunLoop::RunLoop): Deleted.
(WTF::RunLoop::~RunLoop): Deleted.
(WTF::RunLoop::run): Deleted.
(WTF::RunLoop::stop): Deleted.
(WTF::RunLoop::wakeUp): Deleted.
(WTF::RunLoop::TimerBase::TimerBase): Deleted.
(WTF::RunLoop::TimerBase::~TimerBase): Deleted.
(WTF::RunLoop::TimerBase::start): Deleted.
(WTF::RunLoop::TimerBase::stop): Deleted.
(WTF::RunLoop::TimerBase::isActive): Deleted.

  • wtf/none/WorkQueueNone.cpp:

(WorkQueue::platformInitialize): Deleted.
(WorkQueue::platformInvalidate): Deleted.
(WorkQueue::dispatch): Deleted.
(WorkQueue::dispatchAfter): Deleted.

Tools:

Add TestWTF to JSCOnly port to test WorkQueue and RunLoop.
Platform specific ones locate under jsconly directory since
it is not generic (Since it includes the GLIB event loop case).

  • CMakeLists.txt:
  • TestWebKitAPI/PlatformJSCOnly.cmake: Added.
  • TestWebKitAPI/PlatformUtilities.h:
  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/config.h:
  • TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp: Renamed from Source/WTF/wtf/none/RunLoopNone.cpp.

(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::sleep):

  • TestWebKitAPI/jsconly/main.cpp: Renamed from Source/WTF/wtf/none/WorkQueueNone.cpp.

(main):

3:36 PM Changeset in webkit [199693] by Chris Dumez
  • 3 edits
    2 adds in trunk

Crash in ElementDescendantIterator::operator--() when calling m_ancestorSiblingStack.last()
https://bugs.webkit.org/show_bug.cgi?id=156715
<rdar://problem/25750864>

Reviewed by Antti Koivisto.

Source/WebCore:

Fix correctness of ElementDescendantIterator::operator--(). The last element
in the m_ancestorSiblingStack stack is nullptr. However, if our parent does
not have a sibling, m_current->nextSibling() == m_ancestorSiblingStack.last()
would be true and we would end up removing the nullptr element from
m_ancestorSiblingStack. We would crash on a follow-up call to operator--()
because m_ancestorSiblingStack.last() would do an out-of-bound access, given
that m_ancestorSiblingStack is empty.

Test: fast/dom/collection-backward-traversal-crash.html

  • dom/ElementDescendantIterator.h:

(WebCore::ElementDescendantIterator::operator--):

LayoutTests:

Add regression test that reproduced the crash.

  • fast/dom/collection-backward-traversal-crash-expected.txt: Added.
  • fast/dom/collection-backward-traversal-crash.html: Added.
3:29 PM Changeset in webkit [199692] by andersca@apple.com
  • 8 edits in trunk/Source

Fix build with newer versions of clang.
rdar://problem/25749769

Source/WebCore:

Forward declare performClose:.

  • platform/mac/WebCoreFullScreenWindow.mm:

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.mm:
  • WebView/WebHTMLView.mm:

Forward declare some AppKit IPI.

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/mac/WebPageProxyMac.mm:

Forward declare some AppKit IPI.

3:28 PM Changeset in webkit [199691] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Source/WebCore:
Declare a virtual function in PluginStrategy to be implemented by subclasses.
https://bugs.webkit.org/show_bug.cgi?id=156540

Patch by Tina Liu <iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.

  • plugins/PluginStrategy.h:

Source/WebKit/mac:
Overrode a virtual function of WebCore::PluginStrategy
https://bugs.webkit.org/show_bug.cgi?id=156540

Patch by Tina Liu <iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):

Source/WebKit2:
Implement functions to set plug-in load policies for private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=156540

Patch by Tina Liu <iting_liu@apple.com> on 2016-04-18
Reviewed by Anders Carlsson.

This patch implements API and wrappers for clients to set policies to use when using
private browsing. WebPlatformStrategies would return which policies to use depending
on whether the page is in private browsing mode.

  • Shared/WebProcessCreationParameters.h:

Add a hash map for plug-in load policies for private browsing.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextSetPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
Set the WebProcessCreationParameters's pluginLoadClientPoliciesForPrivateBrowsing.
(WebKit::WebProcessPool::setPluginLoadClientPolicyForBrowsingMode):
A helper function that sets plug-in policies to the corresponding instance variable:
m_pluginLoadClientPolicies for general browsing and m_pluginLoadClientPoliciesForPrivateBrowsing
for private browsing. The logic is extracted from the original setPluginLoadClientPolicy.
While we are here, get rid of the .contains() lookup as .get() will just return a
constructed object if the key is not found.
(WebKit::WebProcessPool::setPluginLoadClientPolicy):
Switch to use the helper function to set policies.
(WebKit::WebProcessPool::setPrivateBrowsingPluginLoadClientPolicy):
Ditto. Also send a message to the WebProcess for setting policies for private browsing.
(WebKit::WebProcessPool::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setPluginLoadClientPolicyForBrowsingMode):
Ditto as WebProcessPool::setPluginLoadClientPolicyForBrowsingMode.
(WebKit::WebPlatformStrategies::setPluginLoadClientPolicy):
Switch to use setPluginLoadClientPolicyForBrowsingMode to set policies.
(WebKit::WebPlatformStrategies::setPrivateBrowsingPluginLoadClientPolicy):
Use setPluginLoadClientPolicyForBrowsingMode to set policies for private browsing.
(WebKit::WebPlatformStrategies::clearPluginClientPolicies):
Clear plug-ins' private browsing policies.
(WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost):
Add an argument for private browsing. Read from the corresponding ivar.
(WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost):
Ditto.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Deleted.
Renamed this function as pluginLoadClientPolicyForHostForBrowsingMode.
(WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHostForBrowsingMode):
Ditto.
(WebKit::WebPlatformStrategies::populatePluginCache):
Get the plug-in load policies for a specific host based on the page's session status. If the page
is using ephemeral session, use the private browsing policies.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Switch to call the helper function setPluginLoadClientPolicyFromCreationParameters.
(WebKit::WebProcess::setPluginLoadClientPolicies):
Logic moved from initializeWebProcess. Call PluginStrategy::setPluginLoadClientPolicy or
PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy depending on the input argument.
(WebKit::WebProcess::setPrivateBrowsingPluginLoadClientPolicy):
Add a wrapper to call PluginStrategy::setPrivateBrowsingPluginLoadClientPolicy.

  • WebProcess/WebProcess.messages.in:

Declare an entry for setPrivateBrowsingPluginLoadClientPolicy.

3:09 PM Changeset in webkit [199690] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Disable AVX.

Rubber stampted by Benjamin Poulain.

AVX is silly. If you use it and some of your other code isn't careful with float register bits, you
will run 10x slower. We could fix the underlying issue, but it's better to stay away from this odd
instruction subset.

This fixes a massive regression on some real code.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::supportsAVX):
(JSC::MacroAssemblerX86Common::updateEax1EcxFlags):

2:53 PM Changeset in webkit [199689] by Joseph Pecoraro
  • 3 edits in trunk

Unreviewed revert accidental ChangeLog modifications.

2:50 PM Changeset in webkit [199688] by Joseph Pecoraro
  • 3 edits in trunk

Web Inspector: sourceMappingURL not used when sourceURL is set
https://bugs.webkit.org/show_bug.cgi?id=156021
<rdar://problem/25438417>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Clean up Debugger.sourceParsed to separately include:

  • url ("resource URL", "source url" in JSC APIs)
  • sourceURL - # sourceURL directive

By always having the resource URL the Web Inspector frontend
can better match this Script to a Resource of the same URL,
and decide to use the sourceURL if it is available when
appropriate.

  • inspector/protocol/Debugger.json:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::didParseSource):
Send the new sourceParsed parameters.

Source/WebInspectorUI:

Previously Debugger.sourceParsed only providing the sourceURL, and
wiping out the resourceURL, meant that a Script from a Resource that
set a sourceURL directive would fail to be associated with its Resource.

This would result in duplicated tree elements in the Resources Sidebar,
one for the Resource, and one for the Script. With the Script getting
ultimately getting the SourceMap resources. However, since the frontend
prefers Resources over Scripts when possible, an error that generated
from the script would point to a location in the Resource, not following
source maps.

By always providing the resource URL in Debugger.sourceParsed, a Script
can better be associated with its Resource. The result is now a single
shared tree element in the Resources Sidebar, and the Resource getting
the SourceMap resources. Now the script error goes through the Resource
to its SourceMap resources as we would expect.

  • UserInterface/Protocol/DebuggerObserver.js:

(WebInspector.DebuggerObserver):
(WebInspector.DebuggerObserver.prototype.scriptParsed):
We now have to handle two different signatures of scriptParsed. One
for legacy, and one for non-legacy. Cache that value early on, since
scriptParsed happens a lot.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackend.Agent.prototype.hasEventParameter):
Runtime check a protocol event to see if it has a parameter. This
is used to check if Debugger.sourceParsed is legacy or not based
on if it has the legacy "hasSourceURL" parameter.

  • UserInterface/Models/Script.js:

(WebInspector.Script):
(WebInspector.Script.prototype.get sourceURL):
Treat sourceURL and url separately.

(WebInspector.Script.prototype.get displayName):
Handle both the url and sourceURL in displayName.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.scriptDidParse):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Update code that checks the sourceURL to explicitly use sourceURL.

  • UserInterface/Controllers/SourceMapManager.js:

(WebInspector.SourceMapManager.prototype.downloadSourceMap):
For legacy backends, or in case we get a resource that has an incomplete
baseURL, attempt to get an absolute URL based on the main resource.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addScript):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
Ignore scripts without a url or sourceURL.

LayoutTests:

  • inspector/debugger/scriptParsed.html:
  • inspector/debugger/search-scripts.html:
  • inspector/debugger/setBreakpointByUrl-sourceURL.html:
  • inspector/debugger/sourceURLs.html:

Update tests that need to handle sourceURL separately.

  • inspector/model/resources/relationship-named.js: Added.
  • inspector/model/resources/relationship-normal.js: Added.
  • inspector/model/script-resource-relationship-expected.txt: Added.
  • inspector/model/script-resource-relationship.html: Added.

Tests for Script and Resource relationships.

1:50 PM Changeset in webkit [199687] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] don't toggle playback when media engine rate changes
https://bugs.webkit.org/show_bug.cgi?id=156705
<rdar://problem/25779175>

Reviewed by Jer Noble.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Don't send the play/pause command

unless the player item state is >= MediaPlayerAVPlayerItemStatusPlaybackBufferFull and
the rate change is unexpected.

1:33 PM Changeset in webkit [199686] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

ToThis should have a fast path based on type info flags
https://bugs.webkit.org/show_bug.cgi?id=156712

Reviewed by Geoffrey Garen.

Prior to this change, if we couldn't nail down the type of ToThis to something easy, we'd emit code
that would take slow path if the argument was not a final object. We'd end up taking that slow path
a lot.

This adds a type info flag for ToThis having non-obvious behavior and changes the DFG and FTL paths
to test this flag. This is a sub-1% speed-up on SunSpider and Octane.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToThis):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::create):

  • runtime/JSLexicalEnvironment.h:

(JSC::JSLexicalEnvironment::create):

  • runtime/JSString.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::overridesGetOwnPropertySlot):
(JSC::TypeInfo::interceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero):
(JSC::TypeInfo::structureIsImmortal):
(JSC::TypeInfo::overridesToThis):
(JSC::TypeInfo::overridesGetPropertyNames):
(JSC::TypeInfo::prohibitsPropertyCaching):
(JSC::TypeInfo::getOwnPropertySlotIsImpure):

  • runtime/StrictEvalActivation.h:

(JSC::StrictEvalActivation::create):

  • runtime/Symbol.h:
1:28 PM Changeset in webkit [199685] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Check to see how the perf bots react to megamorphic load being disabled.

Rubber stamped by Chris Dumez.

  • runtime/Options.h:
1:26 PM Changeset in webkit [199684] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix iOS9 build after r199682.

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):

1:02 PM Changeset in webkit [199683] by keith_miller@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

We should support delete in the DFG
https://bugs.webkit.org/show_bug.cgi?id=156607

Reviewed by Benjamin Poulain.

This patch adds support for the delete in the DFG as it appears that
some major frameworks use the operation in particularly hot functions.
As a result, even if the function rarely ever calls delete we would never
tier up to the DFG. This patch also changes operationDeleteById to take a
UniquedStringImpl and return a size_t.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasIdentifier):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_del_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_del_by_id):

11:49 AM Changeset in webkit [199682] by Chris Dumez
  • 10 edits in trunk/Source

[WK2][iOS] Only adjust network responses' MIME type for QuickLook in the context of a main resource load
https://bugs.webkit.org/show_bug.cgi?id=156639
<rdar://problem/25765848>

Reviewed by Alex Christensen.

Source/WebCore:

Only adjust network responses' MIME type for QuickLook in the context of a main
resource load since we can only preview main resources with QuickLook. This
avoids doing unnecessary work during page load. Also, this makes it a lot less
likely to dlopen() the QuickLook library during page load since we now only
adjust MIME type for QuickLook for main resources, and main resources usually
have the well-known 'text/html' MIME type for which we know we will not use
QuickLook.

After this change, we no longer need to dlopen() the QuickLook library in the
NetworkProcess in the context of the PLT. We would previously dlopen() the
library during the first page load, thus significantly slowing it down. As a
result, we see a ~22% speed up in the PLT's first page load and a 0.9-1% overall
PLT progression.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):
Only adjust the MIME type for QuickLook if the isMainResourceLoad parameter is true.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Only adjust the MIME type for QuickLook if the isMainResourceLoad parameter is true.

  • platform/network/mac/WebCoreURLResponse.h:
  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::adjustMIMETypeIfNecessary):

Source/WebKit2:

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::firstRequest):
Add getter to return the first request.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Pass flag to adjustMIMETypeIfNecessary() indicated if this is a main resource load.

11:41 AM Changeset in webkit [199681] by jonlee@apple.com
  • 2 edits in trunk/Tools

Update Animometer plan.
https://bugs.webkit.org/show_bug.cgi?id=156652

Reviewed by Darin Adler.

  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r199616.
10:46 AM Changeset in webkit [199680] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: provide detailed error messages when an automation command fails
https://bugs.webkit.org/show_bug.cgi?id=156635
<rdar://problem/25754051>

Reviewed by Darin Adler and Timothy Hatcher.

Fill in lots of missing error message details now that the remote end knows
how to parse error strings with predefined error names and details.

  • UIProcess/Automation/WebAutomationSession.cpp:

Rearrange the error message macros. Make it possible to pass a ErrorMessage
variable or just the enum value name and get out an encoded error message
that optionally includes a free-form details string. The predefined error
name and the details string are joined together with a semicolon.

(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::goBackInBrowsingContext):
(WebKit::WebAutomationSession::goForwardInBrowsingContext):
(WebKit::WebAutomationSession::reloadBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::didEvaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::didResolveChildFrame):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::didResolveParentFrame):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::didComputeElementLayout):
(WebKit::WebAutomationSession::isShowingJavaScriptDialog):
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::didGetCookiesForFrame):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::didDeleteCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):
(WebKit::WebAutomationSession::didTakeScreenshot):
Audit almost all early exits and provide a relevant error details message
if the error itself is ambiguous. Make sure to format asynchronous errors.

10:30 AM Changeset in webkit [199679] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

Unreviewed, rolling out r199621.
https://bugs.webkit.org/show_bug.cgi?id=156708

made windows tests crash (Requested by alexchristensen on
#webkit).

Reverted changeset:

"iTunes crashing JavaScriptCore.dll"
https://bugs.webkit.org/show_bug.cgi?id=156647
http://trac.webkit.org/changeset/199621

10:28 AM Changeset in webkit [199678] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: NavigationSidebarPanel does a lot of style recalc and layout on busy sites

https://bugs.webkit.org/show_bug.cgi?id=156704
rdar://problem/25778744

Reviewed by Brian Burg.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel):
(WebInspector.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange):
Use _updateContentOverflowShadowVisibilitySoon in more places so the style recalc
and layout changes are coalesced into one action after all rapid fire calls.

10:28 AM Changeset in webkit [199677] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Database query result DataGrids have misaligned header columns

https://bugs.webkit.org/show_bug.cgi?id=156701
rdar://problem/25778310

Reviewed by Brian Burg.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.autoSizeColumns): Set the width on the <col> element
for the body table to match the <col> in the header.

10:28 AM Changeset in webkit [199676] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix the debounce function

https://bugs.webkit.org/show_bug.cgi?id=156696
rdar://problem/25778133

Reviewed by Brian Burg.

  • UserInterface/Base/Utilities.js:

(Function.prototype.debounce): Store the timeout on the original function instead
of the bound function. Also simplify the implementation with arrow functions
and eliminate the bind altogether.

10:13 AM Changeset in webkit [199675] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

FTL should pin the tag registers at inline caches
https://bugs.webkit.org/show_bug.cgi?id=156678

Reviewed by Saam Barati.

This is a long-overdue fix to our inline caches. Back when we had LLVM, we couldn't rely on the tags
being pinned to any registers. So, if the inline caches needed tags, they'd have to materialize them.

This removes those materializations. This should reduce the amount of code generated in inline caches
and it should make inline caches faster. The effect appears to be small.

It may be that after this change, we'll even be able to kill the
HaveTagRegisters/DoNotHaveTagRegisters logic.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/Repatch.cpp:

(JSC::readCallTarget):
(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

10:13 AM Changeset in webkit [199674] by dburkart@apple.com
  • 2 edits in trunk/Tools

svn-apply: add option for ignoring changes to ChangeLog files
https://bugs.webkit.org/show_bug.cgi?id=156618

Reviewed by Darin Adler.

This change adds a new option to svn-apply, --skip-changelogs, which short-circuits out of
patch() if the file in question is a ChangeLog.

  • Scripts/svn-apply:

(patch):

9:45 AM Changeset in webkit [199673] by Brent Fulgham
  • 15 edits
    4 deletes in trunk

Source/WebCore:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

Source/WebKit/mac:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.

Source/WebKit/win:
CSP: Make dynamically-added favicons (via link rel="icon") obey Content-Security-Policy
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidChangeIcons): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

LayoutTests:
CSP: Remove stubs for dynamically-added favicons (via link rel="icon")
https://bugs.webkit.org/show_bug.cgi?id=153151
<rdar://problem/24383176>

Reviewed by Darin Adler.

Remove the unused dynamic favicon code and tests.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/icon-allowed-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/icon-allowed.html: Removed.
  • http/tests/security/contentSecurityPolicy/icon-blocked-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/icon-blocked.html: Removed.
9:14 AM Changeset in webkit [199672] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac][EME] Protected content over HLS is not notified when a HDCP violation occurs.
https://bugs.webkit.org/show_bug.cgi?id=156633

Reviewed by Eric Carlson.

Pass through the existing "outputObscuredDueToInsufficientExternalProtection" status as an
error, similarly to what we do for CDMSessionMediaSourceAVFObjC.

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:

(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC): Deleted.

  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:

(SOFT_LINK_CLASS):
(-[WebCDMSessionAVFoundationObjCListener initWithParent:player:]):
(-[WebCDMSessionAVFoundationObjCListener invalidate]):
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::playerDidReceiveError):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

(WebCore::MediaPlayerPrivateAVFoundationObjC::avPlayer):

9:04 AM Changeset in webkit [199671] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION( r199603): Pandora crashes WebKit in WebPlaybackSessionManager::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=156648

Reviewed by Darin Adler.

Follow up patch to r199615; avoid a double hash lookup by using a .find() pattern instead of
.contains() & .get().

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):

8:54 AM Changeset in webkit [199670] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Greek translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=156677

Patch by Tom Tryfonidis <tomtryf@gmail.com> on 2016-04-18
Rubber-stamped by Michael Catanzaro.

  • el.po:
8:36 AM Changeset in webkit [199669] by Chris Dumez
  • 8 edits in trunk/Source

Unreviewed, rolling out r199644.

Seems to have caused a 1-2% regression on warm PLT

Reverted changeset:

"[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess"
https://bugs.webkit.org/show_bug.cgi?id=156639
http://trac.webkit.org/changeset/199644

8:33 AM Changeset in webkit [199668] by Darin Adler
  • 46 edits
    1 copy
    4 deletes in trunk/Source/WebCore

Get rid of IDBAny
https://bugs.webkit.org/show_bug.cgi?id=156681

Reviewed by Brady Eidson.

IDBAny is not part of the public interface of Indexed Database.
It was an implementation technique used to help create language bindings for
functions that have to deal with types that aren't easly expressed with the
normal IDL and C++ type system.

What was particularly dangerous about IDBAny is that it can be used to store
arbitrary JavaScript objects and it's not easy to handle garbage collection and
reference cycles when they are hidden behind this class's abstraction. It's also
a needless extra layer, a reference counted object just to carry the types from
the bindings to the C++ DOM implementation.

Ths patch also does many small style tweaks.

  • CMakeLists.txt: Removed IDBAny source files. Added JSIDBRequestCustom.cpp.
  • DerivedSources.cpp: Ditto.
  • DerivedSources.make: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • Modules/indexeddb/IDBAny.cpp: Removed.
  • Modules/indexeddb/IDBAny.h: Removed.
  • Modules/indexeddb/IDBAny.idl: Removed.
  • Modules/indexeddb/IDBCursor.cpp: Added includes needed now that headers don't

include as much.
(WebCore::IDBCursor::stringToDirection): Removed unneeded IDBCursor namespacing.
(WebCore::IDBCursor::directionToString): Ditto.
(WebCore::IDBCursor::IDBCursor): Removed creation of IDBAny object.
(WebCore::IDBCursor::direction): Removed unneeded IDBCursor namespacing.
(WebCore::IDBCursor::key): Moved this function to the header.
(WebCore::IDBCursor::primaryKey): Ditto.
(WebCore::IDBCursor::value): Ditto.
(WebCore::IDBCursor::source): Deleted this function; replaced with multiple
type-specific functions; all but one will return null.
(WebCore::IDBCursor::update): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBCursor::advance): Take unsigned instead of unsigned long.
Fell prey to the confusion because "unsigned long" in IDL means "unsigned" in C++.
(WebCore::IDBCursor::continueFunction): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBCursor::uncheckedIterateCursor): Take unsigned instead of unsigned long.
(WebCore::IDBCursor::setGetResult): Rewrote to get the VM pointer from the
ScriptExecutionContext here instead of inside the binding utilities functions.

  • Modules/indexeddb/IDBCursor.h: Removed many unneeded includes.

Changed key, primaryKey, and value to no longer take an unneeded ExecState.
Made more functions private.

  • Modules/indexeddb/IDBCursor.idl: Changed type of "source" to "any", which matches

the IDB specification, rather than "IDBAny". Added [CustomGetter] so we can write the
getter that understands the multiple possible values. Removed unneeded
[CallWith=ScriptState] from key and primaryKey attributes.

  • Modules/indexeddb/IDBCursorWithValue.h: Marked the class final.
  • Modules/indexeddb/IDBCursorWithValue.idl: Removed unneeded [CallWith=ScriptState]

from the value attribute.

  • Modules/indexeddb/IDBDatabase.cpp: Added now-needed include.
  • Modules/indexeddb/IDBDatabase.h: Removed this header's include of itself!
  • Modules/indexeddb/IDBFactory.cpp: Added some now-needed includes.

(WebCore::IDBFactory::~IDBFactory): Moved this out of the header file.
(WebCore::IDBFactory::getDatabaseNames): Removed function that always returns nullptr.
(WebCore::IDBFactory::open): Removed unneeded release() calls when returning a RefPtr.
(WebCore::IDBFactory::cmp): Take JSValue instead of Deprecated::ScriptValue.
Also removed unneeded typecast.

  • Modules/indexeddb/IDBFactory.h: Removed many unneeded includes.

Removed the getDatabaseNames function. We still need a solution here, but there is
no reason to keep the placeholder function that returns nullptr here.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::keyPathAny): Removed.
(WebCore::IDBIndex::openCursor): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBIndex::count): Ditto.
(WebCore::IDBIndex::openKeyCursor): Ditto.
(WebCore::IDBIndex::get): Ditto.
(WebCore::IDBIndex::getKey): Ditto.

  • Modules/indexeddb/IDBIndex.h: Removed many unneeded includes, including this file

including itself. Marked class final. Updated for above changes.

  • Modules/indexeddb/IDBIndex.idl: Changed type of "keyPath" to "any", which matches

the IDB specification, rather than "IDBAny". Specified [ImplementationReturnType=IDBKeyPath]
so the code generator creates the appropriate code to convert from an IDBKeyPath.
In the future, we may find a way to do this without an explicit attribute in the IDL
file but this is fine for now.

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::create): Moved this here from the header. Use booleans instead
of enums because all the call sites outside this class are using booleans.
(WebCore::IDBKeyRange::IDBKeyRange): Updated to use booleans.
(WebCore::IDBKeyRange::~IDBKeyRange): Moved here from the header.
(WebCore::IDBKeyRange::lowerValue): Removed now-unneeded get().
(WebCore::IDBKeyRange::upperValue): Ditto.
(WebCore::IDBKeyRange::only): Take JSValue instead of Deprecated::ScriptValue.
(WebCore::IDBKeyRange::lowerBound): Updated for above changes.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.
(WebCore::IDBKeyRange::isOnlyKey): Removed assertions that lower and upper are not null;
there is no real guarantee of this! Rewrote and streamlined and it handles the null case now.

  • Modules/indexeddb/IDBKeyRange.h: Removed unneeded includes. Changed class to use booleans

instead of enums for m_isLowerOpen and m_isUpperOpen. Moved functions into the cpp file.

  • Modules/indexeddb/IDBKeyRangeData.cpp:

(WebCore::IDBKeyRangeData::maybeCreateIDBKeyRange): Updated to use booleans instead of enums.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::name): Changed return type to const String& to cut down on
reference count churn.
(WebCore::IDBObjectStore::keyPathAny): Deleted.
(WebCore::IDBObjectStore::keyPath): Changed return type to const IDBKeyPath& to cut down on
unnecessary copies.
(WebCore::IDBObjectStore::openCursor): Take JSValue instead of Deprecated::SCriptValue.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::putOrAdd): Ditto. Removed peculiar adoptRef/leakRef that was not needed.
(WebCore::IDBObjectStore::deleteFunction): Ditto.
(WebCore::IDBObjectStore::modernDelete): Ditto. Use releaseNonNull for better efficiency.
(WebCore::IDBObjectStore::count): Ditto.

  • Modules/indexeddb/IDBObjectStore.h: Removed unneeded includes and changed types as mentioned

above in the cpp file function descriptions.

  • Modules/indexeddb/IDBObjectStore.idl: Changed type of "keyPath" to "any" and

specified [ImplementationReturnType=IDBKeyPath] as above in IDBIndex.idl.

  • Modules/indexeddb/IDBOpenDBRequest.cpp: Added now-needed includes.

(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit): Removed unneeded assertions
that depend on how m_result is implemented, which changed.
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion): Call setResultToUndefined
instead of setting m_result directly.
(WebCore::IDBOpenDBRequest::onSuccess): Call setResult instead of setting m_result and
m_readyState directly.
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):: Ditto. Also use WTFMove to set
m_transaction instead of peculiar adoptRef/leakRef.
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess): Call setResultToUndefined
instead of setting m_result directly.

  • Modules/indexeddb/IDBOpenDBRequest.h: Marked the class final. Removed some unneeded headers

and made more things private.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest): Don't initialize m_source any more. Instead initialize
m_objectStoreSource and m_indexSource, preserving the old behavior and not setting m_cursorSource
even when passed an IDBCursor.
(WebCore::IDBRequest::~IDBRequest): Simplify the code that calls clearRequest on the result
if it's a cursor. The logic is now simply a null check.
(WebCore::IDBRequest::result): Deleted. The logic is now in a custom binding.
(WebCore::IDBRequest::error): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::source): Deleted. The logic is now in a custom binding.
(WebCore::IDBRequest::setSource): Set m_objectStoreSource, m_indexSource, and m_cursorSource
instead of setting m_source.
(WebCore::IDBRequest::readyState): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::sourceObjectStoreIdentifier): Use m_objectStoreSource and
m_indexSource instead of using m_source. To preserve current behavior, this this does not
use m_cursorSource since the old code did not handle IDBCursor.
(WebCore::IDBRequest::sourceIndexIdentifier): Use m_indexSource instead of m_source, preserving
current behavior.
(WebCore::IDBRequest::requestedIndexRecordType): Ditto.
(WebCore::IDBRequest::dispatchEvent): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::setResult): Rewrote to use the clearResult function so we don't
have to repeat the code to clear result pointers. Also take a reference.
(WebCore::IDBRequest::setResultToStructuredClone): Ditto.
(WebCore::IDBRequest::clearResult): Clear out m_scriptResult, m_cursorResult, and m_databaseResult
instead of m_result.
(WebCore::IDBRequest::setResultToUndefined): Set m_scriptResult instead of m_result.
(WebCore::IDBRequest::resultCursor): Use m_cursorResult instead of m_result.
(WebCore::IDBRequest::willIterateCursor): Updated to use m_isDone instead of m_readyState.
Also call setResultToUndefined instead of setting m_result.
(WebCore::IDBRequest::didOpenOrIterateCursor): Call setResultToUndefined and set m_cursorResult
instead of setting m_result.
(WebCore::IDBRequest::requestCompleted): Updated to use m_isDone instead of m_readyState.
(WebCore::IDBRequest::setResult): Added for use by the derived class; sets m_databaseResult.

  • Modules/indexeddb/IDBRequest.h: Removed unneeded includes. Removed unused IDBRequestReadyState,

since that's now done with strings. Added cursorResult, databaseResult, scriptResult,
objectStoreSource, indexSource, and cursorSource function members and corresponding data members.
Later we might re-cast this as some sort of union, but for now these separate functions seem fine.
Removed unused modernResult function. Made more things private.

  • Modules/indexeddb/IDBRequest.idl: Use "any" instead of "IDBAny" for "result" and "source".
  • Modules/indexeddb/IDBTransaction.cpp: Added now-needed includes.

(WebCore::IDBTransaction::didGetRecordOnServer): Updated to call the version of setResult that takes
a reference.
(WebCore::IDBTransaction::didPutOrAddOnServer): Ditto.

  • Modules/indexeddb/IDBTransaction.h: Removed unneeded includes, derive privately from ActiveDOMObject.

Removed some unneeded WebCore prefixes.

  • Modules/indexeddb/server/MemoryIndex.h: Added now-needed include.
  • Modules/indexeddb/server/MemoryObjectStore.cpp: Added now-needed includes.

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord): Remove unneeded get() call.
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords): Ditto.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: Added now-needed includes.

(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord): Remove unneeded get() call.
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord): Ditto.

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp: Added now-needed include.
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: Added now-needed includes.

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Updated to use JSValue.

  • Modules/indexeddb/server/UniqueIDBDatabase.h: Added now-needed forward declaration of JSC::VM.
  • bindings/js/IDBBindingUtilities.cpp: Added now-needed includes.

(WebCore::deserializeIDBValueToJSValue): Return JSValue instead of Strong<Unknown>.
(WebCore::deserializeIDBValueDataToJSValue): Ditto.
(WebCore::idbKeyDataToScriptValue): Ditto.
(WebCore::toJS): Added an overload of toJS for IDBKeyPath here. Moved here from JSIDBAnyCustom.cpp.

  • bindings/js/IDBBindingUtilities.h: Removed unneeded include. Changed return types to JSValue.

Added the toJS function for IDBKeyPath.

  • bindings/js/JSIDBAnyCustom.cpp: Removed.
  • bindings/js/JSIDBCursorCustom.cpp: Added some now-needed includes.

(WebCore::JSIDBCursor::visitAdditionalChildren): Removed ann unneeded type cast.
(WebCore::JSIDBCursor::source): Added. Converts either the index source or the object source into
a JSValue.

  • bindings/js/JSIDBRequestCustom.cpp: Added.

(WebCore::JSIDBRequest::result): Added. Throws an exception if isDone is false and then converts
cursor result, database result, or script result into a JSValue.
(WebCore::JSIDBRequest::source): Added. Converts the cursor source, index source, or object store
source into a JSValue.

  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Tweaked the code for array slightly. Added an ImplementationReturnType case
for IDBKeyPath. The code that's generated is pretty generic, just a call to toJS with the conventional
arguments, so at some point we may be able to do this with C++ overloading and not require a
special case in the code generator.

  • inspector/InspectorIndexedDBAgent.cpp: Put #if 0 around the getDatabaseNames code, which was

dormant and not working.
(WebCore::OpenDatabaseCallback::handleEvent): Changed this to use IDBOpenDBRequest::databaseResult
instead of calling the result function checking for an exception and then doing type checking.
(WebCore::idbKeyRangeFromKeyRange): Updated to use booleans for key range bound open state.
(WebCore::OpenCursorCallback::handleEvent): Same kind of change as for OpenDatabaseCallback above.
Also use simpler interface to key, primaryKey, and value.
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames): Put #if 0 around the getDatabaseNames
code, which was dormant and not working. Needs to be re-implemented.

8:24 AM Changeset in webkit [199667] by eric.carlson@apple.com
  • 4 edits
    2 adds in trunk

Media element "user gesture for fullscreen" restriction is never lifted
https://bugs.webkit.org/show_bug.cgi?id=156547
<rdar://problem/25707814>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-fullscreen-restriction-removed.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted): Check fullscreenPermitted rather than

checking for a user gesture because the restriction can be removed.

LayoutTests:

  • media/video-fullscreen-restriction-removed-expected.txt: Added.
  • media/video-fullscreen-restriction-removed.html: Added.
8:23 AM Changeset in webkit [199666] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Mark script-height reftest as ImageOnlyFailure on iOS
https://bugs.webkit.org/show_bug.cgi?id=153918

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
7:47 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:45 AM Changeset in webkit [199665] by fred.wang@free.fr
  • 24 edits
    22 adds in trunk

Refactor RenderMathMLScripts layout to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=153917

Patch by Frederic Wang <fwang@igalia.com> on 2016-04-18
Reviewed by Martin Robinson.

Source/WebCore:

Tests: mathml/mathml-in-html5/subsup-parameters-1.html

mathml/opentype/large-operators-italic-correction.html

Reimplement RenderMathMLScripts without any flexbox or anonymous.
We also rely on parameters from the MATH table to improve rendering.

  • css/mathml.css:

(msub > * + * + *, msup > * + * + *, msubsup > * + * + * + *, msub > mprescripts, msup > mprescripts, msubsup > mprescripts, msub > none, msup > none, msubsup > none, mmultiscripts > mprescripts ~ mprescripts, mmultiscripts > mprescripts ~ mprescripts ~ *): Deleted.
Invalid markup for scripts is now just hidden.

  • rendering/mathml/RenderMathMLOperator.h: ditto.
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::unembellishedOperator): Reimplemented.
(WebCore::RenderMathMLScripts::getBaseAndScripts): Helper function to verify whether the
child list is valid and retrieve pointers on important children.
(WebCore::RenderMathMLScripts::spaceAfterScript): Helper function to get the
space after a script.
(WebCore::RenderMathMLScripts::italicCorrection): Helper function to read the
italic correction of a largeop base.
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded): Helper function to get
the maximum ascent/descent of all the scripts and determine the minimal
sub/sup shifts to apply.
(WebCore::RenderMathMLScripts::mirrorIfNeeded): Helper function to calculate the horizontal
offset depending on the directionality.
(WebCore::RenderMathMLScripts::layoutBlock): Implement this function.
(WebCore::RenderMathMLScripts::firstLineBaseline): Implement this function.
(WebCore::RenderMathMLScripts::paintChildren): Implement this function.
(WebCore::RenderMathMLScripts::RenderMathMLScripts): Deleted.
(WebCore::RenderMathMLScripts::base): Deleted.
(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair): Deleted.
(WebCore::RenderMathMLScripts::fixAnonymousStyles): Deleted.
(WebCore::RenderMathMLScripts::addChildInternal): Deleted.
(WebCore::RenderMathMLScripts::removeChildInternal): Deleted.
(WebCore::RenderMathMLScripts::addChild): Deleted.
(WebCore::RenderMathMLScripts::removeChild): Deleted.
(WebCore::RenderMathMLScripts::styleDidChange): Deleted.
(WebCore::RenderMathMLScripts::layout): Deleted.
(WebCore::RenderMathMLScriptsWrapper::createAnonymousWrapper): Deleted.
(WebCore::RenderMathMLScriptsWrapper::addChildInternal): Deleted.
(WebCore::RenderMathMLScriptsWrapper::addChild): Deleted.
(WebCore::RenderMathMLScriptsWrapper::removeChildInternal): Deleted.
(WebCore::RenderMathMLScriptsWrapper::removeChild): Deleted.

  • rendering/mathml/RenderMathMLScripts.h: Update definitions and remove classes

for anonymous wrappers.

LayoutTests:

We import tests from the MathML in HTML5 test suite to verify various OpenType MATH parameters.
We also add a test for the italic correction of large operators (bug 130325).
Finally, we adjust some tests and expectations to take into account the new rendering.

  • imported/mathml-in-html5/LICENSE: Added.
  • imported/mathml-in-html5/README.md: Added.
  • imported/mathml-in-html5/fonts/math/scripts-spaceafterscript3000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-spaceafterscript3000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscriptbaselinedropmin9000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subscriptshiftdown6000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscriptshiftdown6000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subscripttopmax4000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subscripttopmax4000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-subsuperscriptgapmin11000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-subsuperscriptgapmin11000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptbaselinedropmax10000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptbottommin8000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptbottommin8000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptshiftup7000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptshiftup7000.woff.
  • imported/mathml-in-html5/fonts/math/scripts-superscriptshiftupcramped5000.woff: Renamed from LayoutTests/mathml/mathml-in-html5/fonts/scripts-superscriptshiftupcramped5000.woff.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1-expected.txt: Renamed from LayoutTests/mathml/mathml-in-html5/subsup-parameters-1-expected.txt.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-parameters-1.html: Renamed from LayoutTests/mathml/mathml-in-html5/subsup-parameters-1.html.
  • mathml/msubsup-fuzz-expected.txt: Test adjustment: Update the reference now that nothing

is displayed for invalid markup.

  • accessibility/mac/mathml-multiscript-expected.txt: ditto.
  • mathml/opentype/large-operators-italic-correction.html: Added. This test verifies that the

italic correction from the MATH table is used for positioning subscripts of large operators.

  • mathml/opentype/large-operators-italic-correction-expected.txt: Added.
  • mathml/presentation/bug95015.html: Test adjustment: move down a bit the covering red

rectangle, since the script is slightly lower.

  • mathml/presentation/bug95015-expected.html: ditto
  • mathml/presentation/multiscripts-positions.html: Test adjustment: Modify the expected

vertical positions of scripts now that we follow Gecko's behavior.

  • mathml/presentation/multiscripts-positions-expected.html: ditto.
  • mathml/presentation/multiscripts-noscripts-expected.html: There seem to be small errors in

the ascent of mmultiscripts, probably due to the conversions between firstLineBaseline (int)
and LayoutUnit (fractional pixel). For now, let's tweak the tests.

  • mathml/presentation/multiscripts-noscripts.html: ditto.
  • mathml/presentation/scripts-height-expected.html: ditto
  • mathml/presentation/scripts-height.html: ditto
  • mathml/presentation/scripts-horizontal-alignment.html: Modify the test to make it work

with the new layout rules.

  • mathml/presentation/scripts-horizontal-alignment-expected.html: ditto.
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt: Test adjustment:

Update reference to take into account a small shift.

  • platform/mac/accessibility/math-multiscript-attributes-expected.txt: ditto.
  • platform/gtk/mathml/presentation/roots-expected.png: Test adjustment: Update reference to

take into account small rendering changes.

  • platform/gtk/mathml/presentation/roots-expected.txt: ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: ditto.
  • platform/mac/TestExpectations: Mark some tests for scripts as failing on mac. MATH fonts

are really needed to make them reliable.

  • platform/ios-simulator/TestExpectations: Ditto
3:36 AM Changeset in webkit [199664] by Carlos Garcia Campos
  • 4 edits in trunk

Pending API Request URL is wrong after reloading
https://bugs.webkit.org/show_bug.cgi?id=139342

Reviewed by Darin Adler.

Source/WebKit2:

It happens when reloading a web view loaded with anything but a
URL, because the bf list is not updated for those cases and
WebPageProxy::reload() is setting the current bf list item URL as
pending API request URL. This also causes that progress is
reported wrongly, because
WebPageProxy::decidePolicyForNavigationAction() resets the pending
API request URL when it's different than the requested URL. The
page load transaction causes the progress to be changed, reporting
1.0 (the previous one), but later something < 1.0 is reported
again by the progress tracker.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reload): Use the current active URL as
pending API request URL, falling back to the current bf list item
URL when empty.

Tools:

Update test case to check that the active URL should remain the
same after a reload.

  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp:

(TestWebKitAPI::TEST):

3:01 AM Changeset in webkit [199663] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

Pending API request URL no set when loading Data, Alternate HTML or plain text
https://bugs.webkit.org/show_bug.cgi?id=136916

Reviewed by Darin Adler.

Source/WebKit2:

Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):

Tools:

Add new test to check that active URL is the requested one right
after calling WKPage load methods.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.

2:48 AM Changeset in webkit [199662] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

Unreviewed, rolling out r199660.
https://bugs.webkit.org/show_bug.cgi?id=156691

It broke the iOS build (Requested by KaL on #webkit).

Reverted changeset:

"Pending API request URL no set when loading Data, Alternate
HTML or plain text"
https://bugs.webkit.org/show_bug.cgi?id=136916
http://trac.webkit.org/changeset/199660

2:45 AM Changeset in webkit [199661] by Manuel Rego Casasnovas
  • 5 edits
    2 adds in trunk

[css-grid] Use grid-template-areas to determine the explicit grid
https://bugs.webkit.org/show_bug.cgi?id=156575

Reviewed by Darin Adler.

Source/WebCore:

From the spec (https://drafts.csswg.org/css-grid/#grid-definition):
"The size of the explicit grid is determined by the larger of the number
of rows/columns defined by grid-template-areas and the number
of rows/columns sized by grid-template-rows/grid-template-columns."

So we need to take into account the rows/columns defined by
grid-template-areas to determine the size of the explicit grid.

Test: fast/css-grid-layout/explicit-grid-size.html

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::GridPositionsResolver::explicitGridColumnCount):
(WebCore::GridPositionsResolver::explicitGridRowCount):

LayoutTests:

Created new test to check the right behavior.

  • fast/css-grid-layout/explicit-grid-size-expected.txt: Added.
  • fast/css-grid-layout/explicit-grid-size.html: Added.
  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:

Small modification as now the columns defined by
grid-tempalte-areas are in the explicit grid.

  • fast/css-grid-layout/grid-template-shorthand-get-set.html:

Ditto.

1:50 AM Changeset in webkit [199660] by Carlos Garcia Campos
  • 7 edits
    1 add in trunk

Pending API request URL no set when loading Data, Alternate HTML or plain text
https://bugs.webkit.org/show_bug.cgi?id=136916

Reviewed by Darin Adler.

Source/WebKit2:

Set pending API request URL for all load methods in
WebPageProxy. This ensures that right after calling those methods,
the active URL is the requested one and that
PageLoadState::isLoading() returns true.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):

Tools:

Add new test to check that active URL is the requested one right
after calling WKPage load methods.

  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:

(WebViewTest::loadPlainText): Remove FIXME.
(WebViewTest::loadBytes): Ditto.
(WebViewTest::loadAlternateHTML): Ditto.

1:44 AM Changeset in webkit [199659] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Menu list button doesn't use the text color from the theme
https://bugs.webkit.org/show_bug.cgi?id=118234

Reviewed by Darin Adler.

.:

  • ManualTests/gtk/theme.html: Add a disabled combo test.

Source/WebCore:

Set the combo box color accroding to the theme when adjusting the menu list style like Mac port does.

  • rendering/RenderThemeGtk.cpp:

(WebCore::menuListColor):
(WebCore::RenderThemeGtk::adjustMenuListStyle):

1:31 AM Changeset in webkit [199658] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[UNIX] Initialize WebKit before the platform initializations
https://bugs.webkit.org/show_bug.cgi?id=156622

Reviewed by Michael Catanzaro.

The platform specific initialization might use something that would require WebKit2 to be initialized. For
example, in debug mode, the GTK+ port uses WTF::sleep that requires the threading to be initialized.

  • Shared/unix/ChildProcessMain.h:

(WebKit::ChildProcessMain): Move InitializeWebKit2() before platformInitialize().

1:20 AM Changeset in webkit [199657] by Manuel Rego Casasnovas
  • 4 edits
    4 adds in trunk

[css-grid] Fix positioned items with content alignment
https://bugs.webkit.org/show_bug.cgi?id=156597

Reviewed by Darin Adler.

Source/WebCore:

Like for the case of gaps we need to take into account
the content alignment in order to properly place and size
the positioned items.

Regarding content alignment we need to care about 2 values:
the position offset and the distribution offset.
The position offset can be extracted from m_column|rowPositions,
but the distribution offset is stored in 2 new variables called
m_offsetBetweenColumns|Rows.

Tests: fast/css-grid-layout/grid-positioned-items-content-alignment.html

fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::populateGridPositions):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisPositionForChild): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/grid-positioned-items-content-alignment-expected.txt: Added.
  • fast/css-grid-layout/grid-positioned-items-content-alignment-rtl-expected.txt: Added.
  • fast/css-grid-layout/grid-positioned-items-content-alignment-rtl.html: Added.
  • fast/css-grid-layout/grid-positioned-items-content-alignment.html: Added.
1:09 AM Changeset in webkit [199656] by commit-queue@webkit.org
  • 4 edits in trunk

Fix incorrect assumption that APPLE implies Mac.
https://bugs.webkit.org/show_bug.cgi?id=156679

Addresses build failure introduced in r198947

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-04-18
Reviewed by Alex Christensen.

  • CMakeLists.txt:
1:03 AM Changeset in webkit [199655] by Manuel Rego Casasnovas
  • 3 edits in trunk/Source/WebCore

[css-grid] Add method to translate RTL coordinates
https://bugs.webkit.org/show_bug.cgi?id=156589

Reviewed by Antonio Gomes.

This is just a small refactoring adding a new function
LayoutGrid::translateRTLCoordinate().
This method translates to physical coordinates the information
stored in m_columnPositions when you're using RTL direction.

No new tests, no change of behavior.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::offsetAndBreadthForPositionedChild): Use the new
method translateRTLCoordinate().
(WebCore::RenderGrid::translateRTLCoordinate): New method that converts
a coordinate from m_columnPositions in RTL into a physical coordinate.
(WebCore::RenderGrid::findChildLogicalPosition): Use the new method
translateRTLCoordinate().

  • rendering/RenderGrid.h: Add method signature.
1:01 AM Changeset in webkit [199654] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk

[Fetch] Use @isArray instead of instanceof @Array
https://bugs.webkit.org/show_bug.cgi?id=156682

Reviewed by Alex Christensen.

Source/WebCore:

Currently, we query whether the given value is Array by using instanceof @Array.
But it is not enough; Array from the other realm should be accepted. And Array
not inheriting @Array should be also accepted.

Test: fetch/header-constructor-is-array.html

  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders):

LayoutTests:

  • fetch/header-constructor-is-array-expected.txt: Added.
  • fetch/header-constructor-is-array.html: Added.
12:40 AM Changeset in webkit [199653] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Test /webkit2/WebKitWebView/mouse-target fails with overlay scrollbars
https://bugs.webkit.org/show_bug.cgi?id=156621

Reviewed by Martin Robinson.

This is a problem of the test itself, we are using an overflow that is not actually scrollable, but that shows
scrollbar troughs when not using overlay scrollbars because it's marked as scrollable. It would be easier to
simply use the main frame scrollbars to test that and it will work no matter of scrollbars are overlay or not.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(testWebViewMouseTarget): Remove the div and move the mouse over the main frame scrollbar to test scrolbars hit test.

12:35 AM Changeset in webkit [199652] by Yusuke Suzuki
  • 7 edits
    1 add in trunk/Source/JavaScriptCore

[ES7] yield star should not return if the inner iterator.throw returns { done: true }
https://bugs.webkit.org/show_bug.cgi?id=156576

Reviewed by Saam Barati.

This is slight generator fix in ES7. When calling generator.throw(),
the yield-star should call the throw() of the inner generator. At that
time, when the result of throw() is { done: true}, the generator should
not stop itself.

function * gen()
{

yield * (function * () {

try {

yield 42;

} catch (error) { }

}());
Continue executing.
yield 42;

}

let g = gen();
g.next();
shouldBe(g.throw().value, 42);

  • builtins/GeneratorPrototype.js:

(generatorResume):
(next):
(return):
(throw):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDelegateYield):

  • runtime/JSGeneratorFunction.h:
  • tests/stress/generator-yield-star.js:

(gen):

  • tests/stress/yield-star-throw-continue.js: Added.

(shouldBe):
(generator):
(shouldThrow):

Apr 17, 2016:

11:52 PM Changeset in webkit [199651] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix incorrect assumption that APPLE implies Mac.
https://bugs.webkit.org/show_bug.cgi?id=156683

Addresses build failure introduced in r199094

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-04-17
Reviewed by Alex Christensen.

  • CMakeLists.txt:
11:06 PM Changeset in webkit [199650] by yoav@yoav.ws
  • 25 edits
    9 adds in trunk

Initial Link preload support
https://bugs.webkit.org/show_bug.cgi?id=156334

Source/WebCore:

Added basic <link rel=preload> functionality that enables preloading
of resources according to their type.

Reviewed by Darin Adler.

Tests: http/tests/preload/download_resources.html

http/tests/preload/dynamic_adding_preload.html
http/tests/preload/dynamic_remove_preload_href.html
http/tests/preload/dynamic_removing_preload.html

  • bindings/generic/RuntimeEnabledFeatures.cpp: Added a runtime flag for the feature.

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

  • bindings/generic/RuntimeEnabledFeatures.h: Added a runtime flag for the feature.

(WebCore::RuntimeEnabledFeatures::setLinkPreloadEnabled):
(WebCore::RuntimeEnabledFeatures::linkPreloadEnabled):

  • html/HTMLAttributeNames.in: Added an as attribute.
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process): Added as and crossorigin attribute values to the loadLink() call.
(WebCore::HTMLLinkElement::setCrossOrigin): Setter for crossOrigin.
(WebCore::HTMLLinkElement::crossOrigin): Getter for crossOrigin.

  • html/HTMLLinkElement.idl: Added as and crossorigin to HTMLLinkElement.
  • html/HTMLLinkElement.h: Added getter and setter for crossorigin.
  • html/LinkRelAttribute.cpp:

(WebCore::LinkRelAttribute::LinkRelAttribute): Added "preload" as a potential value.

  • html/LinkRelAttribute.h: Added isLinkPreload.
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::resourceTypeFromAsAttribute): Translates an as value into a resource type.
(WebCore::preloadIfNeeded): Triggers a resource preload when link element is a preload one.
(WebCore::LinkLoader::loadLink): Added a call to preloadIfNeeded.

  • loader/LinkLoader.h: Added signatures.
  • loader/ResourceLoadInfo.cpp:

(WebCore::toResourceType): Added LinkPreload as a possible CachedResource::type.

  • loader/SubresourceLoader.cpp:

(WebCore::logResourceLoaded): Added LinkPreload as a possible CachedResource::type.

  • loader/cache/CachedResource.cpp: Turned defaultPriorityForResourceType into a static member, as it's now also called from LinkLoader.

(WebCore::CachedResource::defaultPriorityForResourceType): Added LinkPreload as a possible CachedResource::type, giving it low priority.
(WebCore::defaultPriorityForResourceType): Deleted.

  • loader/cache/CachedResource.h: Added LinkPreload as a possible CachedResource::type. Added defaultPriorityForResourceType as static.
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::contentTypeFromResourceType): Added LinkPreload as a possible CachedResource::type.
(WebCore::createResource): Added creation of a LinkPreload resource if needed.
(WebCore::CachedResourceLoader::checkInsecureContent): Added LinkPreload as a possible CachedResource::type.
(WebCore::CachedResourceLoader::canRequest): Added LinkPreload as a possible CachedResource::type.

  • testing/Internals.cpp: Added function to turn on the link preload feature.

(WebCore::setLinkPreloadSupport):

  • testing/Internals.idl: Added function to turn on the link preload feature.
  • testing/Internals.h: Added function signature to turn on the link preload feature.

Source/WebKit2:

Reviewed by Darin Adler.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime): Added LinkPreload as a possible CachedResource::type.

LayoutTests:

Added tests that make sure that <link rel=preload> performs its basic
tasks and preloads resources.

Reviewed by Darin Adler.

  • http/tests/preload/download_resources-expected.txt: Added.
  • http/tests/preload/download_resources.html: Added.
  • http/tests/preload/dynamic_adding_preload-expected.txt: Added.
  • http/tests/preload/dynamic_adding_preload.html: Added.
  • http/tests/preload/dynamic_remove_preload_href-expected.txt: Added.
  • http/tests/preload/dynamic_remove_preload_href.html: Added.
  • http/tests/preload/dynamic_removing_preload-expected.txt: Added.
  • http/tests/preload/dynamic_removing_preload.html: Added.
  • imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Adjusted expected results to progressions.
  • imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt: Adjusted expected results to progressions.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Adjusted expected results to progressions.
10:36 PM Changeset in webkit [199649] by Gyuyoung Kim
  • 3 edits
    1 delete in trunk/Tools

[EFL] Bump gstreamer from 1.4.4 to 1.6.3
https://bugs.webkit.org/show_bug.cgi?id=156655

Reviewed by Antonio Gomes.

To support html5 video feature, we should bump gstreamer version.

  • efl/jhbuild.modules:
  • efl/patches/gst-libav.patch: Update against newer version.
  • efl/patches/gst-plugins-bad-remove-gnustep-support.patch: Removed because this patch was merged.
10:13 PM Changeset in webkit [199648] by benjamin@webkit.org
  • 3 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] ReduceDoubleToFloat should work accross Phis
https://bugs.webkit.org/show_bug.cgi?id=156603
<rdar://problem/25736205>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-17
Reviewed by Saam Barati and Filip Pizlo.

This patch extends B3's ReduceDoubleToFloat phase to work accross
Upsilon-Phis. This is important to optimize loops and some crazy cases.

In its simplest form, we can have conversion propagated from something
like this:

Double @1 = Phi()
Float @2 = DoubleToFloat(@1)

When that happens, we just need to propagate that the result only
need float precision accross all values coming to this Phi.

There are more complicated cases when the value produced is effectively Float
but the user of the value does not do DoubleToFloat.

Typically, we have something like:

#1

@1 = ConstDouble(1)
@2 = Upsilon(@1, 5)

#2

@3 = FloatToDouble(@x)
@4 = Upsilon(@3, 5)

#3

@5 = Phi()
@6 = Add(@5, @somethingFloat)
@7 = DoubleToFloat(@6)

Here with a Phi-Upsilon that is a Double but can be represented
as Float without loss of precision.

It is valuable to convert such Phis to float if and only if the value
is used as float. Otherwise, you may be just adding useless conversions
(for example, two double constants that flow into a double Add should not
turn into two float constant flowing into a FloatToDouble then Add).

ReduceDoubleToFloat do two analysis passes to gather the necessary
meta information. Then we have a simplify() phase to actually reduce
operation. Finally, the cleanup() pass put the graph into a valid
state again.

The two analysis passes work by disproving that something is float.
-findCandidates() accumulates anything used as Double.
-findPhisContainingFloat() accumulates phis that would lose precision

by converting the input to float.

With this change, Unity3D improves by ~1.5%, box2d-f32 improves
by ~2.8% (on Haswell).

  • b3/B3ReduceDoubleToFloat.cpp:

(JSC::B3::reduceDoubleToFloat):

  • b3/testb3.cpp:

(JSC::B3::testCompareTwoFloatToDouble):
(JSC::B3::testCompareOneFloatToDouble):
(JSC::B3::testCompareFloatToDoubleThroughPhi):
(JSC::B3::testDoubleToFloatThroughPhi):
(JSC::B3::testDoubleProducerPhiToFloatConversion):
(JSC::B3::testDoubleProducerPhiToFloatConversionWithDoubleConsumer):
(JSC::B3::testDoubleProducerPhiWithNonFloatConst):
(JSC::B3::testStoreDoubleConstantAsFloat):
(JSC::B3::run):

  • tests/stress/double-compare-to-float.js: Added.

(canSimplifyToFloat):
(canSimplifyToFloatWithConstant):
(cannotSimplifyA):
(cannotSimplifyB):

  • tests/stress/double-to-float.js: Added.

(upsilonReferencingItsPhi):
(upsilonReferencingItsPhiAllFloat):
(upsilonReferencingItsPhiWithoutConversion):
(conversionPropagages):
(chainedUpsilonBothConvert):
(chainedUpsilonFirstConvert):

2:53 PM Changeset in webkit [199647] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk/Source/JavaScriptCore

[ES6] Use @isObject to check Object Type instead of using instanceof
https://bugs.webkit.org/show_bug.cgi?id=156676

Reviewed by Darin Adler.

Use @isObject instead of instanceof @Object.
The instanceof check is not enough to check Object Type.
For example, given 2 realms, the object created in one realm does not inherit the Object of another realm.
Another example is that the object which does not inherit Object.
This object can be easily created by calling Object.create(null).

  • builtins/RegExpPrototype.js:

(match):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionCreateGlobalObject):

  • tests/stress/regexp-match-in-other-realm-should-work.js: Added.

(shouldBe):

  • tests/stress/regexp-match-should-work-with-objects-not-inheriting-object-prototype.js: Added.

(shouldBe):
(regexp.exec):

12:33 PM Changeset in webkit [199646] by Conrad Shultz
  • 2 edits in trunk/Source/WebCore

Try (again) to fix debug builds after r199643.

Unreviewed.

  • dom/ScriptExecutionContext.cpp:

Add another missing include.

12:28 PM Changeset in webkit [199645] by Conrad Shultz
  • 2 edits in trunk/Source/WebCore

Try to fix debug builds after r199643.

Unreviewed.

  • Modules/indexeddb/IDBObjectStore.cpp:

Add a missing include.

11:58 AM Changeset in webkit [199644] by Chris Dumez
  • 8 edits in trunk/Source

[WK2][iOS] Do not dlopen() QuickLook in the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=156639

Reviewed by Darin Adler.

Source/WebCore:

Do not unnecessarily dlopen() QuickLook in the NetworkProcess on iOS, as
we already dlopen() this library in the WebContent process. This patch
moves the resource response MIME type adjusting code for QuickLook from
adjustMIMETypeIfNecessary() to a new adjustMIMETypeForQuickLook() function.
adjustMIMETypeIfNecessary() is called in didReceiveResponse() in the Network
process side, for *every* resource response, even though QuickLook can only
be used to preview main resources. The new adjustMIMETypeForQuickLook()
function is called in the QuickLookHandle::createIfNecessary() factory
function, right before checking the MIME type to determine if we need to
use QuickLook, and after checking that the load is for a main resource.
In the WebKit2 case, the factory function is called from
WebResourceLoader::didReceiveResponse(), on the WebContent process side.

This patch speeds up the first page load during PLT by ~22%, because the
first load no longer triggers a dlopen() to QuickLook in the NetworkProcess.
The overall PLT score seems to be progressed by 0.9-1% as well. The change
should also be memory-positive as we no longer need to dlopen() the
QuickLook library in the NetworkProcess at all (and we would already dlopen()
it on the WebContent process side anyway). Sadly, PLUM benchmark does not
show the memory benefit because it does not measure the memory used by the
Network process.

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
Refactor the code a bit for clarity, so that we only
ResourceHandle::setQuickLookHandle() when QuickLookHandle::createIfNecessary()
returns a non-null pointer.

  • platform/network/ios/QuickLook.h:
  • Rename the factories from create() to createIfNecessary() given that they return nullptr when it is unnecessary to create such handle (i.e. this is not a main resource loader, or it is unecessary given the response's MIME type.
  • Make shouldCreateForMIMEType() private now that this is always called inside the factory functions.
  • platform/network/ios/QuickLook.mm:

(adjustMIMETypeForQuickLook):
Extracted code for adjusting the MIME type for QuickLook from the generic
adjustMIMETypeIfNecessary() in WebCoreURLResponseIOS.mm to its own function
here.

(WebCore::QuickLookHandle::createIfNecessary):
Call adjustMIMETypeForQuickLook() before checking the MIME type.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary):
Extracted QuickLook-specific code to QuickLook.mm.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
Refactor the code a bit for clarity, so that we only
ResourceHandle::setQuickLookHandle() when QuickLookHandle::createIfNecessary()
returns a non-null pointer.

Source/WebKit2:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):
Move checks for main resource load and for MIME type inside of
QuickLookHandle::createIfNecessary(), for consistency with the
other QuickLookHandle factory functions.

11:49 AM Changeset in webkit [199643] by beidson@apple.com
  • 27 edits in trunk/Source/WebCore

Clean up IDBBindingUtilities.
https://bugs.webkit.org/show_bug.cgi?id=156472

Reviewed by Alex Christensen.

No new tests (No change in behavior).

  • Get rid of a whole bunch of unused functions (since we got rid of Legacy IDB).
  • Make more functions deal in ExecState/ScriptExecutionContexts instead of DOMRequestState.
  • Make more functions deal in JSValue (as JSC::Strong<JSC::Unknown>) instead of Deprecated::ScriptValue.
  • bindings/scripts/IDLAttributes.txt: Add a new attribute to signify that an implementation returns JSValues instead of Deprecated::ScriptState
  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Use that new attribute.

  • Modules/indexeddb/IDBAny.cpp:

(WebCore::IDBAny::IDBAny):
(WebCore::IDBAny::scriptValue):

  • Modules/indexeddb/IDBAny.h:

(WebCore::IDBAny::create):

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::count):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::lowerValue):
(WebCore::IDBKeyRange::upperValue):
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):

  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::count):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyPathFromValue):
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValueToJSValue):
(WebCore::deserializeIDBValueDataToJSValue):
(WebCore::scriptValueToIDBKey):
(WebCore::idbKeyDataToScriptValue):
(WebCore::idbKeyDataToJSValue): Deleted.
(WebCore::createIDBKeyFromScriptValueAndKeyPath): Deleted.
(WebCore::deserializeIDBValue): Deleted.
(WebCore::deserializeIDBValueData): Deleted.
(WebCore::deserializeIDBValueBuffer): Deleted.
(WebCore::idbValueDataToJSValue): Deleted.
(WebCore::idbKeyToScriptValue): Deleted.

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/JSIDBAnyCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::createIndex):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::execState):

  • dom/ScriptExecutionContext.h:
  • inspector/InspectorIndexedDBAgent.cpp:
11:39 AM Changeset in webkit [199642] by Darin Adler
  • 44 edits in trunk/Source

Remove more uses of Deprecated::ScriptXXX
https://bugs.webkit.org/show_bug.cgi?id=156660

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument): Deleted
unneeded overloads that take a ScriptObject and ScriptValue.

  • bindings/ScriptFunctionCall.h: Ditto.
  • bindings/ScriptObject.h: Added operator so this can change

itself into a JSObject*. Helps while phasing this class out.

  • bindings/ScriptValue.h: Export toInspectorValue so it can be

used in WebCore.

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript): Changed
return value from Deprecated::ScriptObject to JSObject*.
(Inspector::InjectedScriptManager::injectedScriptFor): Updated for
the return value change above.

  • inspector/InjectedScriptManager.h: Ditto.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.h: Removed unneeded include.
  • Modules/plugins/PluginReplacement.h: Removed unneeded include.

Changed argument to installReplacement into a reference. Changed return
value for creation function from PassRefPtr to Ref.

  • Modules/plugins/QuickTimePluginReplacement.h: Removed unneeded includes and

forward declarations. Marked class final. Made almost everything private.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::create): Changed to return Ref.
(WebCore::QuickTimePluginReplacement::installReplacement): Changed to take
a reference.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::create): Changed to return Ref.
(WebCore::YouTubePluginReplacement::installReplacement): Changed to take
a reference.

  • Modules/plugins/YouTubePluginReplacement.h: Removed unneeded includes and

forward declarations. Marked class final. Changed return type of create.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData): Removed local variable so the
MessageEvent::create function gets a Ref&& instead of a RefPtr without having
to add explicit WTFMove.

  • bindings/js/DOMRequestState.h: Removed code that set m_exec twice.
  • bindings/js/Dictionary.h: Reformatted function templates to use a single

line so they are easier to look at.
(WebCore::Dictionary::getEventListener): Rewrote this so it no longer uses
a Deprecated::ScriptValue and also make it a little more compact and terse.

  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::JSCommandLineAPIHost::inspect): Rewrote to use JSValue instead of
Deprecated::ScriptValue. Considerably more efficient.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::data): Streamlined to use Deprecated::ScriptValue
a little bit less.

  • bindings/js/JSNodeCustom.cpp: Moved include here from header.
  • bindings/js/JSNodeCustom.h: Moved include from here to cpp file.
  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::state): Updated for changes to return value of the
state() and serializedState functions.

  • bindings/js/ScriptState.h: Removed the ScriptState typedef.
  • bindings/js/SerializedScriptValue.cpp: Moved include here from header.
  • bindings/js/SerializedScriptValue.h: Moved include from here to cpp file.
  • css/FontFace.cpp:

(WebCore::FontFace::create): Changed argument to JSValue instead of ScriptValue.

  • css/FontFace.h: Ditto.
  • dom/MessageEvent.cpp: Moved create functions in here from header file.

Removed some unused ones including one that took a Deprecated::ScriptValue.

  • dom/MessageEvent.h: Streamlined create functions, removing unused functions,

unused arguments, and unused default values for arguments. Also moved them all
into the cpp file instead of inlining them. Also changed the return type of
dataAsScriptValue to JSValue.

  • dom/NodeFilterCondition.h: Removed unneeded include. Tweaked formatting.
  • dom/PopStateEvent.h: Changed return value of state to be a JSValue and of

serializedState to be a raw pointer, not a PassRefPtr.

  • dom/Traversal.h: Removed unneeded include. Removed unnecessary use of

unsigned long instead of unsigned. Fixed indentation.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Pass reference.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener): Pass JSValue instead
of constructing a Deprecated::ScriptValue.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::FrontendMenuProvider::disconnect): Initialize without explicitly
mentioning the Deprecated::ScriptObject type.

  • inspector/InspectorIndexedDBAgent.cpp: Removed unneeded include.
  • inspector/InspectorInstrumentation.h: Removed unneeded include and also

declaration of two non-existent functions.

  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer): Tweaked types a little bit to
match what is used in MessageEvent now.
(WebCore::PostMessageTimer::event): Streamlined a bit and changed type to
reference.
(WebCore::DOMWindow::postMessage): Updated for changes above.
(WebCore::DOMWindow::postMessageTimerFired): Ditto.

  • page/EventSource.cpp:

(WebCore::EventSource::createMessageEvent): Removed now-unneeded
"false, false" from MessageEvent::create function call.

  • page/csp/ContentSecurityPolicy.h: Removed unneeded include.
  • page/csp/ContentSecurityPolicyDirectiveList.h: Removed unneeded

include and also unneeded non-copyable, since the class has a reference as
a data member and so is automatically non-copyable.

  • testing/Internals.cpp:

(WebCore::Internals::description): Changed to take JSValue.
(WebCore::Internals::parserMetaData): Ditto.
(WebCore::Internals::serializeObject): Removed unnecessary copying of vector.
(WebCore::Internals::isFromCurrentWorld): Changed to take JSValue.
(WebCore::Internals::isReadableStreamDisturbed): Changed to not rely on the
ScriptState typedef and call it JSC::ExecState.

  • testing/Internals.h: Removed unneeded includes. Removed unneeded and

inappropriate use of ASSERT_NO_EXCEPTION.

11:04 AM Changeset in webkit [199641] by youenn.fablet@crf.canon.fr
  • 24 edits
    5 copies
    18 adds in trunk

LayoutTests/imported/w3c:
[Fetch API] Consume HTTP data as a ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=138968

Reviewed by Alex Christensen.

  • web-platform-tests/fetch/api/basic/stream-response-expected.txt:
  • web-platform-tests/fetch/api/basic/stream-response-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume.html:
  • web-platform-tests/fetch/api/resources/data.json: Added.
  • web-platform-tests/fetch/api/resources/utils.js:

(validateStreamFromString):

  • web-platform-tests/fetch/api/response/response-cancel-stream-expected.txt: Added.
  • web-platform-tests/fetch/api/response/response-cancel-stream.html: Added.
  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt: Added.
  • web-platform-tests/fetch/api/response/response-consume-stream.html: Added.
  • web-platform-tests/fetch/api/response/response-init-002-expected.txt:
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-1.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-1.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-2.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-2.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-3.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-3.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-4.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-4.html: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-expected-5.txt: Added.
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5.html: Added.

Source/WebCore:
[Fetch API] Consume HTTP data as a ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=138968

Reviewed by Alex Christensen.

This patch introduces ReadableStreamSource and ReadableStreamController which allow feeding a ReadableStream from DOM classes.
ReadableStreamSource is a base class for all DOM ReadableStream sources.
ReadableStreamController is a wrapper around JSReadableStreamController that can be invoked by DOM code to enqueue/close/error a ReadableStream.
A createReadableStream function is introduced to allow DOM classes creating ReadableStream.

Added support for a FetchResponse ReadableStream source.
Both synthetic FetchResponse and loading FetchResponse are supported.
A new "Stream" FetchLoader::Type is introduced to allow receiving data as chunks and feeding them to a ReadableStream through ReadableStreamSource.

Currently, FetchResponse is consumed and marked as disturbed as soon as a ReadableStreamSource is created.
This should be changed so that consumption happens on the first read call to the ReadableStreamReader, i.e. when stream gets disturbed.

FetchResponseSource never fulfills the start promise, which allows to enqueue, error or close the stream at any time.
FetchResponseSource must therefore always ensure to close or error the stream.
Added support for locked check in FetchResponse.

Tests: imported/w3c/web-platform-tests/fetch/api/response/response-cancel-stream.html

imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-1.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-2.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-3.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-4.html
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-5.html

Also covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consumeAsStream): Fill stream with body data.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::type): Added accessor to body type, used for assertions.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::isDisturbed): Adding stream isLocked check.
(WebCore::FetchBodyOwner::blobLoadingSucceeded): Added assertion that body type is blob. Closing stream if created.
(WebCore::FetchBodyOwner::blobLoadingFailed): Erroring the stream if created and not cancelled.
(WebCore::FetchBodyOwner::blobChunk): Filling stream with chunk.
(WebCore::FetchBodyOwner::stop): Rmoved call to finishBlobLoading as it should be called as part of FetchLoaderCLient::didFail callbacki.

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchLoader.cpp: Fixing the case of cancel being called when creating the ThreadableLoader by introducing FetchLoader::m_isStarted.

(WebCore::FetchLoader::start): Setting m_isStarted at the end of the start method.
(WebCore::FetchLoader::stop): Fixing the case that FetchLoader can be destroyed when cancelling its loader.
(WebCore::FetchLoader::startStreaming): Introduced to switch the loading type from ArayBuffer to Stream. Already buffered data is returned.
(WebCore::FetchLoader::didReceiveData): Handling of the new Stream type.
(WebCore::FetchLoader::didFinishLoading):

  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:

(WebCore::FetchLoaderClient::didReceiveData): Callback to get data as chunks if loader is of type Stream.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::clone): Removed m_isLocked as it is handled within isDisturbed().
(WebCore::FetchResponse::isDisturbed): Checking whether related ReadableStream is locked.
(WebCore::FetchResponse::BodyLoader::didSucceed): Introduced to handle ReadableStream case.
(WebCore::FetchResponse::BodyLoader::didFail): Ditto.
(WebCore::FetchResponse::BodyLoader::didReceiveData): Ditto.
(WebCore::FetchResponse::BodyLoader::startStreaming): Ditto.
(WebCore::FetchResponse::consumeBodyAsStream): Start filling the ReadableStream with data. Changing loader to Stream if there is one.
(WebCore::FetchResponse::createReadableStreamSource): Called by custom binding to create the source.
(WebCore::FetchResponse::stop): Fixing potential crash in case of cancelling the ibody stream.
(WebCore::FetchResponse::startFetching):
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer):

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponseSource.cpp: Specialization of ReadableStreamSource for FetchResponse. It is a push source that never resolves the start promise.

(WebCore::FetchResponseSource::FetchResponseSource):
(WebCore::FetchResponseSource::isReadableStreamLocked):
(WebCore::FetchResponseSource::setActive):
(WebCore::FetchResponseSource::setInactive):
(WebCore::FetchResponseSource::doStart):
(WebCore::FetchResponseSource::doCancel):
(WebCore::FetchResponseSource::close):
(WebCore::FetchResponseSource::error):

  • Modules/fetch/FetchResponseSource.h: Added.
  • Modules/streams/ReadableStreamController.js:

(error):

  • Modules/streams/ReadableStreamSource.h: Added (base class for ReadableStream DOM sources).

(WebCore::ReadableStreamSource::~ReadableStreamSource):
(WebCore::ReadableStreamSource::isStarting):
(WebCore::ReadableStreamSource::isPulling):
(WebCore::ReadableStreamSource::isCancelling):
(WebCore::ReadableStreamSource::controller):
(WebCore::ReadableStreamSource::doStart):
(WebCore::ReadableStreamSource::doCancel):
(WebCore::ReadableStreamSource::start):
(WebCore::ReadableStreamSource::cancel):
(WebCore::ReadableStreamSource::startFinished):
(WebCore::ReadableStreamSource::clean):

  • Modules/streams/ReadableStreamSource.idl: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSFetchResponseCustom.cpp: In case body is not created, call createReadableStreamSource.

(WebCore::JSFetchResponse::body):

  • bindings/js/JSReadableStreamSourceCustom.cpp: Added.

(WebCore::JSReadableStreamSource::start):
(WebCore::JSReadableStreamSource::pull):
(WebCore::JSReadableStreamSource::controller):

  • bindings/js/ReadableStreamController.cpp: Added.

(WebCore::callFunction):
(WebCore::ReadableStreamController::invoke):
(WebCore::ReadableStreamController::isControlledReadableStreamLocked):
(WebCore::createReadableStream):

  • bindings/js/ReadableStreamController.h: The DOM wrapper for JSReadableStreamController.

(WebCore::ReadableStreamController::ReadableStreamController):
(WebCore::ReadableStreamController::close):
(WebCore::ReadableStreamController::error):
(WebCore::ReadableStreamController::enqueue):
(WebCore::ReadableStreamController::globalObject):
(WebCore::ReadableStreamController::enqueue<RefPtr<JSC::ArrayBuffer>>):
(WebCore::ReadableStreamController::error<String>):

LayoutTests:
[Streams] Consume HTTP data as a ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=138968

Reviewed by Alex Christensen.

  • fast/xmlhttprequest/xmlhttprequest-responsetype-stream-expected.txt: Added.
  • fast/xmlhttprequest/xmlhttprequest-responsetype-stream.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-cancelled-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-cancelled.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-closed-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-closed.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read-api.html: Added.
  • http/tests/xmlhttprequest/streams/streams-read-expected.txt: Added.
  • http/tests/xmlhttprequest/streams/streams-read.html: Added.
10:56 AM Changeset in webkit [199640] by Antti Koivisto
  • 17 edits in trunk/Source/WebCore

Element should be const in StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=156672

Reviewed by Darin Adler.

Resolving element style shouldn't mutate it.

This patch just does Element* -> const Element*, all the groundwork has been done already.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::setStyle):
(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::styleForElement):
(WebCore::doesNotInheritTextDecoration):
(WebCore::StyleResolver::adjustStyleForInterCharacterRuby):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::checkRegionStyle):
(WebCore::StyleResolver::updateFont):
(WebCore::StyleResolver::styleRulesForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::applyMatchedProperties):

  • css/StyleResolver.h:

(WebCore::StyleResolver::style):
(WebCore::StyleResolver::parentStyle):
(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::document):
(WebCore::StyleResolver::documentSettings):
(WebCore::StyleResolver::usesFirstLineRules):
(WebCore::StyleResolver::usesFirstLetterRules):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::document):
(WebCore::StyleResolver::State::element):
(WebCore::StyleResolver::State::style):
(WebCore::StyleResolver::hasSelectorForId):
(WebCore::checkRegionSelector):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::RenderTheme):
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustCheckboxStyle):
(WebCore::RenderTheme::adjustRadioStyle):
(WebCore::RenderTheme::adjustButtonStyle):
(WebCore::RenderTheme::adjustInnerSpinButtonStyle):
(WebCore::RenderTheme::adjustTextFieldStyle):
(WebCore::RenderTheme::adjustTextAreaStyle):
(WebCore::RenderTheme::adjustMenuListStyle):
(WebCore::RenderTheme::adjustMeterStyle):
(WebCore::RenderTheme::paintMeter):
(WebCore::RenderTheme::adjustCapsLockIndicatorStyle):
(WebCore::RenderTheme::paintCapsLockIndicator):
(WebCore::RenderTheme::adjustAttachmentStyle):
(WebCore::RenderTheme::animationDurationForProgressBar):
(WebCore::RenderTheme::adjustProgressBarStyle):
(WebCore::RenderTheme::shouldHaveCapsLockIndicator):
(WebCore::RenderTheme::adjustMenuListButtonStyle):
(WebCore::RenderTheme::adjustMediaControlStyle):
(WebCore::RenderTheme::adjustSliderTrackStyle):
(WebCore::RenderTheme::adjustSliderThumbStyle):
(WebCore::RenderTheme::adjustSliderThumbSize):
(WebCore::RenderTheme::adjustSearchFieldStyle):
(WebCore::RenderTheme::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderTheme::adjustSearchFieldDecorationPartStyle):
(WebCore::RenderTheme::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderTheme::adjustSearchFieldResultsButtonStyle):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::minimumMenuListSize):
(WebCore::RenderTheme::popupInternalPaddingBox):
(WebCore::RenderTheme::popupOptionSupportsTextIndent):
(WebCore::RenderTheme::paintRadioDecorations):
(WebCore::RenderTheme::paintButtonDecorations):
(WebCore::RenderTheme::paintTextField):
(WebCore::RenderTheme::paintTextFieldDecorations):
(WebCore::RenderTheme::paintTextArea):
(WebCore::RenderTheme::paintTextAreaDecorations):
(WebCore::RenderTheme::paintMenuList):
(WebCore::RenderTheme::paintMenuListDecorations):
(WebCore::RenderTheme::paintMenuListButtonDecorations):
(WebCore::RenderTheme::paintPushButtonDecorations):
(WebCore::RenderTheme::paintSquareButtonDecorations):
(WebCore::RenderTheme::paintProgressBar):
(WebCore::RenderTheme::paintSliderTrack):
(WebCore::RenderTheme::paintSliderThumb):
(WebCore::RenderTheme::paintSliderThumbDecorations):
(WebCore::RenderTheme::paintSearchField):
(WebCore::RenderTheme::paintSearchFieldDecorations):
(WebCore::RenderTheme::paintSearchFieldCancelButton):
(WebCore::RenderTheme::paintSearchFieldDecorationPart):
(WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
(WebCore::RenderTheme::paintSearchFieldResultsButton):
(WebCore::RenderTheme::paintMediaFullscreenButton):
(WebCore::RenderTheme::paintMediaPlayButton):
(WebCore::RenderTheme::paintMediaOverlayPlayButton):

  • rendering/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::paintSliderTrack):
(WebCore::RenderThemeEfl::adjustSliderTrackStyle):
(WebCore::RenderThemeEfl::adjustSliderThumbStyle):
(WebCore::RenderThemeEfl::adjustSliderThumbSize):
(WebCore::RenderThemeEfl::paintSliderThumb):
(WebCore::RenderThemeEfl::adjustCheckboxStyle):
(WebCore::RenderThemeEfl::paintCheckbox):
(WebCore::RenderThemeEfl::adjustRadioStyle):
(WebCore::RenderThemeEfl::paintRadio):
(WebCore::RenderThemeEfl::adjustButtonStyle):
(WebCore::RenderThemeEfl::paintButton):
(WebCore::RenderThemeEfl::adjustMenuListStyle):
(WebCore::RenderThemeEfl::paintMenuList):
(WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
(WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
(WebCore::RenderThemeEfl::adjustTextFieldStyle):
(WebCore::RenderThemeEfl::paintTextField):
(WebCore::RenderThemeEfl::adjustTextAreaStyle):
(WebCore::RenderThemeEfl::paintTextArea):
(WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
(WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeEfl::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
(WebCore::RenderThemeEfl::adjustSearchFieldStyle):
(WebCore::RenderThemeEfl::paintSearchField):
(WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeEfl::updateCachedSystemFontDescription):
(WebCore::RenderThemeEfl::adjustProgressBarStyle):

  • rendering/RenderThemeEfl.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::adjustRepaintRect):
(WebCore::RenderThemeGtk::adjustButtonStyle):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
(WebCore::RenderThemeGtk::adjustMenuListButtonStyle):
(WebCore::RenderThemeGtk::paintMenuListButtonDecorations):
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintTextArea):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::adjustSearchFieldStyle):
(WebCore::RenderThemeGtk::shouldHaveCapsLockIndicator):
(WebCore::RenderThemeGtk::adjustSliderTrackStyle):
(WebCore::RenderThemeGtk::adjustSliderThumbStyle):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::innerSpinButtonLayout):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::spinButtonArrowSize):
(WebCore::RenderThemeGtk::paintMediaCurrentTime):
(WebCore::RenderThemeGtk::adjustProgressBarStyle):

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::addRoundedBorderClip):
(WebCore::RenderThemeIOS::adjustCheckboxStyle):
(WebCore::RenderThemeIOS::isControlStyled):
(WebCore::RenderThemeIOS::adjustRadioStyle):
(WebCore::adjustInputElementButtonStyle):
(WebCore::RenderThemeIOS::adjustMenuListButtonStyle):
(WebCore::RenderThemeIOS::adjustSliderTrackStyle):
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::adjustSliderThumbSize):
(WebCore::RenderThemeIOS::sliderTickOffsetFromTrackCenter):
(WebCore::RenderThemeIOS::adjustSearchFieldStyle):
(WebCore::RenderThemeIOS::paintSearchFieldDecorations):
(WebCore::RenderThemeIOS::adjustButtonStyle):

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

(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::adjustTextFieldStyle):
(WebCore::RenderThemeMac::paintTextArea):
(WebCore::RenderThemeMac::adjustTextAreaStyle):
(WebCore::RenderThemeMac::animationDurationForProgressBar):
(WebCore::RenderThemeMac::adjustProgressBarStyle):
(WebCore::menuListButtonSizes):
(WebCore::RenderThemeMac::adjustMenuListStyle):
(WebCore::RenderThemeMac::popupMenuSize):
(WebCore::RenderThemeMac::adjustMenuListButtonStyle):
(WebCore::RenderThemeMac::adjustSliderTrackStyle):
(WebCore::RenderThemeMac::paintSliderTrack):
(WebCore::RenderThemeMac::adjustSliderThumbStyle):
(WebCore::RenderThemeMac::setSearchFieldSize):
(WebCore::RenderThemeMac::adjustSearchFieldStyle):
(WebCore::RenderThemeMac::cancelButtonSizes):
(WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeMac::resultsButtonSizes):
(WebCore::RenderThemeMac::adjustSearchFieldDecorationPartStyle):
(WebCore::RenderThemeMac::paintSearchFieldDecorationPart):
(WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeMac::adjustSliderThumbSize):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::paintButton):
(WebCore::RenderThemeWin::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::adjustMenuListStyle):
(WebCore::RenderThemeWin::adjustMenuListButtonStyle):
(WebCore::RenderThemeWin::adjustSliderThumbSize):
(WebCore::RenderThemeWin::paintSearchField):
(WebCore::RenderThemeWin::adjustSearchFieldStyle):
(WebCore::RenderThemeWin::paintSearchFieldCancelButton):
(WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
(WebCore::RenderThemeWin::adjustSearchFieldDecorationPartStyle):
(WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationPartStyle):
(WebCore::RenderThemeWin::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
(WebCore::RenderThemeWin::adjustMeterStyle):

  • rendering/RenderThemeWin.h:
Note: See TracTimeline for information about the timeline view.