Timeline
Aug 20, 2017:
- 11:56 PM Changeset in webkit [220960] by
-
- 7 edits in trunk/Source
Gardening: fix CLoop build.
https://bugs.webkit.org/show_bug.cgi?id=175688
<rdar://problem/33436870>
Not reviewed.
Source/JavaScriptCore:
Make these files dependent on ENABLE(MASM_PROBE).
- assembler/ProbeContext.cpp:
- assembler/ProbeContext.h:
- assembler/ProbeStack.cpp:
- assembler/ProbeStack.h:
Source/WTF:
Disable MASM_PROBE if !ENABLE(JIT).
- wtf/Platform.h:
- 11:21 PM Changeset in webkit [220959] by
-
- 9 edits in trunk
[EME] Add basic implementation of HTMLMediaElement::setMediaKeys()
https://bugs.webkit.org/show_bug.cgi?id=175717
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Add an initial and incomplete implementation of HTMLMediaElement::setMediaKeys(),
interleaved with the specification wording of how this operation should behave.
The implementation still doesn't cover cases of CDM instances being already
associated with a different HTMLMediaElement, of CDM instances that can't be
disassociated from the current HTMLMediaElement, and of failures during both
association and disassociation of MediaKeys with the HTMLMediaElement.
The HTMLMediaElement (as a CDMClient inheritor) has to be attached or detached
from the MediaKeys object as appropriate. This attachment allows MediaKeys to
initiate an attempt to resume playback whenever the key statuses of the
associated MediaKeys object are updated.
Upon association and disassociation with MediaKeys, the CDMInstance object of
that specific MediaKeys instance is attached to or detached from the MediaPlayer
instance. This allows the platform layer to gather information about the
CDMInstance that will be used for decryption of media content for this specific
media element.
Additionally, the detachment from both MediaKeys and MediaPlayer is done upon
HTMLMediaElement destruction.
Upon setting the MediaKeys object, a task is queued that launches the 'Attempt to
Resume Playback If Necessary' algorithm. A placeholder method is added that will
implement the algorithm in the future.
The HTMLMediaElement::mediaKeys() getter is also implemented, returning pointer
held in m_mediaKeys.
Covered to a degree by existing imported W3C tests, with a setMediaKeys()-oriented
test having WPE-specific baseline update.
- Modules/encryptedmedia/MediaKeys.h:
(WebCore::MediaKeys::cdmInstance const):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::mediaKeys const):
(WebCore::HTMLMediaElement::setMediaKeys):
(WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
(WebCore::HTMLMediaElement::contextDestroyed):
- html/HTMLMediaElement.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::cdmInstanceAttached):
(WebCore::MediaPlayer::cdmInstanceDetached):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateInterface::cdmInstanceDetached):
LayoutTests:
- platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-expected.txt:
Update the baseline, with the test no longer timing out but instead
failing with a NotAllowed exception thrown.
- 9:26 PM Changeset in webkit [220958] by
-
- 17 edits4 adds in trunk/Source/JavaScriptCore
Enhance MacroAssembler::probe() to allow the probe function to resize the stack frame and alter stack data in one pass.
https://bugs.webkit.org/show_bug.cgi?id=175688
<rdar://problem/33436870>
Reviewed by JF Bastien.
With this patch, the clients of the MacroAssembler::probe() can now change
stack values without having to worry about whether there is enough room in the
current stack frame for it or not. This is done using the Probe::Context's stack
member like so:
jit.probe([] (Probe::Context& context) {
auto cpu = context.cpu;
auto stack = context.stack();
uintptr_t* currentSP = cpu.sp<uintptr_t*>();
Get a value at the current stack pointer location.
auto value = stack.get<uintptr_t>(currentSP);
Set a value above the current stack pointer (within current frame).
stack.set<uintptr_t>(currentSP + 10, value);
Set a value below the current stack pointer (out of current frame).
stack.set<uintptr_t>(currentSP - 10, value);
Set the new stack pointer.
cpu.sp() = currentSP - 20;
});
What happens behind the scene:
- the generated JIT probe code will now call Probe::executeProbe(), and Probe::executeProbe() will in turn call the client's probe function.
Probe::executeProbe() receives the Probe::State on the machine stack passed
to it by the probe trampoline. Probe::executeProbe() will instantiate a
Probe::Context to be passed to the client's probe function. The client will
no longer see the Probe::State directly.
- The Probe::Context comes with a Probe::Stack which serves as a manager of stack pages. Currently, each page is 1K in size. Probe::Context::stack() returns a reference to an instance of Probe::Stack.
- Invoking get() of set() on Probe::Stack with an address will lead to the following:
- the address will be decoded to a baseAddress that points to the 1K page that contains that address.
- the Probe::Stack will check if it already has a cached 1K page for that baseAddress. If so, go to step (f). Else, continue with step (c).
- the Probe::Stack will malloc a 1K mirror page, and memcpy the 1K stack page for that specified baseAddress to this mirror page.
- the mirror page will be added to the ProbeStack's m_pages HashMap, keyed on the baseAddress.
- the ProbeStack will also cache the last baseAddress and its corresponding mirror page in use. With memory accesses tending to be localized, this will save us from having to look up the page in the HashMap.
- get() will map the requested address to a physical address in the mirror page, and return the value at that location.
- set() will map the requested address to a physical address in the mirror page, and set the value at that location in the mirror page.
set() will also set a dirty bit corresponding to the "cache line" that
was modified in the mirror page.
- When the client's probe function returns, Probe::executeProbe() will check if there are stack changes that need to be applied. If stack changes are needed:
- Probe::executeProbe() will adjust the stack pointer to ensure enough stack space is available to flush the dirty stack pages. It will also register a flushStackDirtyPages callback function in the Probe::State. Thereafter, Probe::executeProbe() returns to the probe trampoline.
- the probe trampoline adjusts the stack pointer, moves the Probe::State to a safe place if needed, and then calls the flushStackDirtyPages callback if needed.
- the flushStackDirtyPages() callback iterates the Probe::Stack's m_pages HashMap and flush all dirty "cache lines" to the machine stack. Thereafter, flushStackDirtyPages() returns to the probe trampoline.
- lastly, the probe trampoline will restore all register values and return to the pc set in the Probe::State.
To make this patch work, I also had to do the following work:
- Refactor MacroAssembler::CPUState into Probe::CPUState. Mainly, this means moving the code over to ProbeContext.h. I also added some convenience accessor methods for spr registers.
Moved Probe::Context over to its own file ProbeContext.h/cpp.
- Fix all probe trampolines to pass the address of Probe::executeProbe in addition to the client's probe function and arg.
I also took this opportunity to optimize the generated JIT probe code to
minimize the amount of memory stores needed.
- Simplified the ARM64 probe trampoline. The ARM64 probe only supports changing either lr or pc (or neither), but not both at in the same probe invocation. The ARM64 probe trampoline used to have to check for this invariant in the assembly trampoline code. With the introduction of Probe::executeProbe(), we can now do it there and simplify the trampoline.
- Fix a bug in the old ARM64 probe trampoline for the case where the client changes lr. That code path never worked before, but has now been fixed.
- Removed trustedImm32FromPtr() helper functions in MacroAssemblerARM and MacroAssemblerARMv7.
We can now use move() with TrustedImmPtr, and it does the same thing but in a
more generic way.
- ARMv7's move() emitter may encode a T1 move instruction, which happens to have
the same semantics as movs (according to the Thumb spec). This means these
instructions may trash the APSR flags before we have a chance to preserve them.
This patch changes MacroAssemblerARMv7's probe() to preserve the APSR register
early on. This entails adding support for the mrs instruction in the
ARMv7Assembler.
- Change testmasm's testProbeModifiesStackValues() to now modify stack values
the easy way.
Also fixed testmasm tests which check flag registers to only compare the
portions that are modifiable by the client i.e. some masking is applied.
This patch has passed the testmasm tests on x86, x86_64, arm64, and armv7.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::mrs):
- assembler/AbstractMacroAssembler.h:
- assembler/MacroAssembler.cpp:
(JSC::stdFunctionCallback):
(JSC::MacroAssembler::probe):
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::CPUState::gprName): Deleted.
(JSC::MacroAssembler::CPUState::sprName): Deleted.
(JSC::MacroAssembler::CPUState::fprName): Deleted.
(JSC::MacroAssembler::CPUState::gpr): Deleted.
(JSC::MacroAssembler::CPUState::spr): Deleted.
(JSC::MacroAssembler::CPUState::fpr): Deleted.
(JSC:: const): Deleted.
(JSC::MacroAssembler::CPUState::fpr const): Deleted.
(JSC::MacroAssembler::CPUState::pc): Deleted.
(JSC::MacroAssembler::CPUState::fp): Deleted.
(JSC::MacroAssembler::CPUState::sp): Deleted.
(JSC::MacroAssembler::CPUState::pc const): Deleted.
(JSC::MacroAssembler::CPUState::fp const): Deleted.
(JSC::MacroAssembler::CPUState::sp const): Deleted.
(JSC::Probe::State::gpr): Deleted.
(JSC::Probe::State::spr): Deleted.
(JSC::Probe::State::fpr): Deleted.
(JSC::Probe::State::gprName): Deleted.
(JSC::Probe::State::sprName): Deleted.
(JSC::Probe::State::fprName): Deleted.
(JSC::Probe::State::pc): Deleted.
(JSC::Probe::State::fp): Deleted.
(JSC::Probe::State::sp): Deleted.
- assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssembler::probe):
- assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::trustedImm32FromPtr): Deleted.
- assembler/MacroAssemblerARM64.cpp:
(JSC::MacroAssembler::probe):
(JSC::arm64ProbeError): Deleted.
- assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssembler::probe):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::armV7Condition):
(JSC::MacroAssemblerARMv7::trustedImm32FromPtr): Deleted.
- assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printCallback):
- assembler/MacroAssemblerPrinter.h:
- assembler/MacroAssemblerX86Common.cpp:
(JSC::ctiMasmProbeTrampoline):
(JSC::MacroAssembler::probe):
- assembler/Printer.h:
(JSC::Printer::Context::Context):
- assembler/ProbeContext.cpp: Added.
(JSC::Probe::executeProbe):
(JSC::Probe::handleProbeStackInitialization):
(JSC::Probe::probeStateForContext):
- assembler/ProbeContext.h: Added.
(JSC::Probe::CPUState::gprName):
(JSC::Probe::CPUState::sprName):
(JSC::Probe::CPUState::fprName):
(JSC::Probe::CPUState::gpr):
(JSC::Probe::CPUState::spr):
(JSC::Probe::CPUState::fpr):
(JSC::Probe:: const):
(JSC::Probe::CPUState::fpr const):
(JSC::Probe::CPUState::pc):
(JSC::Probe::CPUState::fp):
(JSC::Probe::CPUState::sp):
(JSC::Probe::CPUState::pc const):
(JSC::Probe::CPUState::fp const):
(JSC::Probe::CPUState::sp const):
(JSC::Probe::Context::Context):
(JSC::Probe::Context::gpr):
(JSC::Probe::Context::spr):
(JSC::Probe::Context::fpr):
(JSC::Probe::Context::gprName):
(JSC::Probe::Context::sprName):
(JSC::Probe::Context::fprName):
(JSC::Probe::Context::pc):
(JSC::Probe::Context::fp):
(JSC::Probe::Context::sp):
(JSC::Probe::Context::stack):
(JSC::Probe::Context::hasWritesToFlush):
(JSC::Probe::Context::releaseStack):
- assembler/ProbeStack.cpp: Added.
(JSC::Probe::Page::Page):
(JSC::Probe::Page::flushWrites):
(JSC::Probe::Stack::Stack):
(JSC::Probe::Stack::hasWritesToFlush):
(JSC::Probe::Stack::flushWrites):
(JSC::Probe::Stack::ensurePageFor):
- assembler/ProbeStack.h: Added.
(JSC::Probe::Page::baseAddressFor):
(JSC::Probe::Page::chunkAddressFor):
(JSC::Probe::Page::baseAddress):
(JSC::Probe::Page::get):
(JSC::Probe::Page::set):
(JSC::Probe::Page::hasWritesToFlush const):
(JSC::Probe::Page::flushWritesIfNeeded):
(JSC::Probe::Page::dirtyBitFor):
(JSC::Probe::Page::physicalAddressFor):
(JSC::Probe::Stack::Stack):
(JSC::Probe::Stack::lowWatermark):
(JSC::Probe::Stack::get):
(JSC::Probe::Stack::set):
(JSC::Probe::Stack::newStackPointer const):
(JSC::Probe::Stack::setNewStackPointer):
(JSC::Probe::Stack::isValid):
(JSC::Probe::Stack::pageFor):
- assembler/testmasm.cpp:
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):
(JSC::testProbePreservesGPRS):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesStackPointerToInsideProbeStateOnStack):
(JSC::testProbeModifiesStackPointerToNBytesBelowSP):
(JSC::testProbeModifiesProgramCounter):
(JSC::testProbeModifiesStackValues):
(JSC::run):
(): Deleted.
(JSC::fillStack): Deleted.
(JSC::testProbeModifiesStackWithCallback): Deleted.
- 4:11 PM Changeset in webkit [220957] by
-
- 12 edits in trunk/Source
Simplify calls to LoaderStrategy::startPingLoad()
https://bugs.webkit.org/show_bug.cgi?id=175756
Reviewed by Sam Weinig.
Source/WebCore:
Simplify calls to LoaderStrategy::startPingLoad() by passing the Frame to it
and let its implementation gets what it needs from the frame. This reduces
the number of parameters to startPingLoad() and is more easily extensible.
- dom/Document.h:
- loader/LoaderStrategy.h:
- loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::PingLoader::startPingLoad):
- loader/PingLoader.h:
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
Source/WebKit:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::startPingLoad):
- WebProcess/Network/WebLoaderStrategy.h:
Source/WebKitLegacy:
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::startPingLoad):
- WebCoreSupport/WebResourceLoadScheduler.h:
- 2:42 AM Changeset in webkit [220956] by
-
- 7 edits2 adds in trunk/Source/WebCore
Factor :before/:after render tree mutations into a RenderTreeUpdater helper class
https://bugs.webkit.org/show_bug.cgi?id=175752
Reviewed by Andreas Kling.
Move code that constructs generated content renderers out from PseudoElement.
Also refactor the related code from RenderTreeUpdater main class into
RenderTreeUpdater::GeneratedContent helper class.
- WebCore.xcodeproj/project.pbxproj:
- dom/PseudoElement.cpp:
(WebCore::PseudoElement::resolveCustomStyle): Deleted.
Not needed anymore.
(WebCore::PseudoElement::didAttachRenderers): Deleted.
Moves to createContentRenderers in GeneratedContent.
(WebCore::PseudoElement::didRecalcStyle): Deleted.
Moves to updateStyleForContentRenderers in GeneratedContent.
- dom/PseudoElement.h:
- style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::RenderTreeUpdater):
(WebCore::RenderTreeUpdater::~RenderTreeUpdater):
(WebCore::RenderTreeUpdater::commit):
(WebCore::RenderTreeUpdater::updateBeforeDescendants):
(WebCore::RenderTreeUpdater::updateAfterDescendants):
(WebCore::needsPseudoElement): Deleted.
(WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement): Deleted.
(WebCore::RenderTreeUpdater::updateQuotesUpTo): Deleted.
Quotes and other :before/:after support moves to GeneratedContent helpwe.
- style/RenderTreeUpdater.h:
(WebCore::RenderTreeUpdater::generatedContent):
- style/RenderTreeUpdaterGeneratedContent.cpp: Added.
(WebCore::RenderTreeUpdater::GeneratedContent::GeneratedContent):
(WebCore::RenderTreeUpdater::GeneratedContent::updateBeforePseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::updateAfterPseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::updateRemainingQuotes):
(WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
(WebCore::createContentRenderers):
(WebCore::updateStyleForContentRenderers):
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::needsPseudoElement):
- style/RenderTreeUpdaterGeneratedContent.h: Added.
Aug 19, 2017:
- 7:11 PM Changeset in webkit [220955] by
-
- 30 edits36 adds in trunk
[Payment Request] Add interface stubs
https://bugs.webkit.org/show_bug.cgi?id=175730
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/payment-request/allowpaymentrequest/active-document-cross-origin.https.sub-expected.txt:
- web-platform-tests/payment-request/allowpaymentrequest/active-document-same-origin.https-expected.txt:
- web-platform-tests/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-same-origin-bc-containers.https-expected.txt:
- web-platform-tests/payment-request/allowpaymentrequest/basic.https-expected.txt:
- web-platform-tests/payment-request/allowpaymentrequest/no-attribute-same-origin-bc-containers.https-expected.txt:
- web-platform-tests/payment-request/historical.https-expected.txt:
- web-platform-tests/payment-request/interfaces.https-expected.txt:
- web-platform-tests/payment-request/payment-request-abort-method.https-expected.txt:
- web-platform-tests/payment-request/payment-request-constructor-crash.https-expected.txt:
- web-platform-tests/payment-request/payment-request-constructor.https-expected.txt:
- web-platform-tests/payment-request/payment-request-id.https-expected.txt:
- web-platform-tests/payment-request/payment-request-in-iframe-expected.txt:
- web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https-expected.txt:
- web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https-expected.txt:
- web-platform-tests/payment-request/payment-request-show-method.https-expected.txt:
- web-platform-tests/payment-request/payment-request-update-event-constructor.http-expected.txt:
- web-platform-tests/payment-request/payment-request-update-event-constructor.https-expected.txt:
Source/JavaScriptCore:
- runtime/CommonIdentifiers.h:
Source/WebCore:
- DerivedSources.make:
- Modules/paymentrequest/PaymentAddress.h: Added.
- Modules/paymentrequest/PaymentAddress.idl: Added.
- Modules/paymentrequest/PaymentComplete.h: Added.
- Modules/paymentrequest/PaymentComplete.idl: Added.
- Modules/paymentrequest/PaymentCurrencyAmount.h: Added.
- Modules/paymentrequest/PaymentCurrencyAmount.idl: Added.
- Modules/paymentrequest/PaymentDetailsBase.h: Added.
- Modules/paymentrequest/PaymentDetailsBase.idl: Added.
- Modules/paymentrequest/PaymentDetailsInit.h: Added.
- Modules/paymentrequest/PaymentDetailsInit.idl: Added.
- Modules/paymentrequest/PaymentDetailsModifier.h: Added.
- Modules/paymentrequest/PaymentDetailsModifier.idl: Added.
- Modules/paymentrequest/PaymentDetailsUpdate.h: Added.
- Modules/paymentrequest/PaymentDetailsUpdate.idl: Added.
- Modules/paymentrequest/PaymentItem.h: Added.
- Modules/paymentrequest/PaymentItem.idl: Added.
- Modules/paymentrequest/PaymentMethodData.h: Added.
- Modules/paymentrequest/PaymentMethodData.idl: Added.
- Modules/paymentrequest/PaymentOptions.h: Added.
- Modules/paymentrequest/PaymentOptions.idl: Added.
- Modules/paymentrequest/PaymentRequest.cpp: Added.
(WebCore::PaymentRequest::create):
(WebCore::PaymentRequest::PaymentRequest):
(WebCore::PaymentRequest::~PaymentRequest):
(WebCore::PaymentRequest::show):
(WebCore::PaymentRequest::abort):
(WebCore::PaymentRequest::canMakePayment):
- Modules/paymentrequest/PaymentRequest.h: Added.
- Modules/paymentrequest/PaymentRequest.idl: Added.
- Modules/paymentrequest/PaymentRequestUpdateEvent.cpp: Added.
(WebCore::PaymentRequestUpdateEvent::~PaymentRequestUpdateEvent):
(WebCore::PaymentRequestUpdateEvent::updateWith):
- Modules/paymentrequest/PaymentRequestUpdateEvent.h: Added.
- Modules/paymentrequest/PaymentRequestUpdateEvent.idl: Added.
- Modules/paymentrequest/PaymentRequestUpdateEventInit.h: Added.
- Modules/paymentrequest/PaymentRequestUpdateEventInit.idl: Added.
- Modules/paymentrequest/PaymentResponse.cpp: Added.
(WebCore::PaymentResponse::complete):
- Modules/paymentrequest/PaymentResponse.h: Added.
- Modules/paymentrequest/PaymentResponse.idl: Added.
- Modules/paymentrequest/PaymentShippingOption.h: Added.
- Modules/paymentrequest/PaymentShippingOption.idl: Added.
- Modules/paymentrequest/PaymentShippingType.h: Added.
- Modules/paymentrequest/PaymentShippingType.idl: Added.
- WebCore.xcodeproj/project.pbxproj:
- dom/EventNames.h:
- dom/EventNames.in:
- dom/EventTargetFactory.in:
LayoutTests:
- TestExpectations: Skipped payment-request tests.
- platform/ios-wk2/TestExpectations: Enabled payment-request tests on ios-wk2.
- platform/mac-wk2/TestExpectations: Ditto for mac-wk2.
- 10:28 AM Changeset in webkit [220954] by
-
- 15 edits in trunk/Source/WebCore
[WebCrypto] Remove the KeyAlgorithm type hierarchy
https://bugs.webkit.org/show_bug.cgi?id=175750
Patch by Sam Weinig <sam@webkit.org> on 2017-08-19
Reviewed by Chris Dumez.
Removes the unnecessary indirection that existed to generate a
KeyAlgorithm dictionary (or rather, one of its derived dictionaries)
for a CryptoKey. We were calling the virtual buildAlgorithm(), which
return a std::unique_ptr<KeyAlgorithm>, which we then casted to the
correct derived class and called dictionary() on. This can now be
simplified by making each CryptoKey derived class override a function
that returns the KeyAlgorithm variant.
- crypto/CryptoKey.cpp:
(WebCore::CryptoKey::algorithm const): Deleted.
- crypto/CryptoKey.h:
(WebCore::CryptoKey::extractable const):
(WebCore::KeyAlgorithm::~KeyAlgorithm): Deleted.
(WebCore::KeyAlgorithm::name const): Deleted.
(WebCore::KeyAlgorithm::KeyAlgorithm): Deleted.
- crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:
(WebCore::CryptoKeyRSA::algorithm const):
(WebCore::CryptoKeyRSA::buildAlgorithm const): Deleted.
- crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::algorithm const):
(WebCore::AesKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyAES::buildAlgorithm const): Deleted.
- crypto/keys/CryptoKeyAES.h:
- crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::algorithm const):
(WebCore::EcKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyEC::buildAlgorithm const): Deleted.
- crypto/keys/CryptoKeyEC.h:
(WebCore::EcKeyAlgorithm::EcKeyAlgorithm): Deleted.
(WebCore::EcKeyAlgorithm::namedCurve const): Deleted.
- crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::algorithm const):
(WebCore::HmacKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyHMAC::buildAlgorithm const): Deleted.
- crypto/keys/CryptoKeyHMAC.h:
- crypto/keys/CryptoKeyRSA.cpp:
(WebCore::RsaKeyAlgorithm::dictionary const): Deleted.
(WebCore::RsaHashedKeyAlgorithm::dictionary const): Deleted.
- crypto/keys/CryptoKeyRSA.h:
(WebCore::RsaKeyAlgorithm::RsaKeyAlgorithm): Deleted.
(WebCore::RsaKeyAlgorithm::modulusLength const): Deleted.
(WebCore::RsaKeyAlgorithm::publicExponent const): Deleted.
- crypto/keys/CryptoKeyRaw.cpp:
(WebCore::CryptoKeyRaw::algorithm const):
(WebCore::RawKeyAlgorithm::dictionary const): Deleted.
(WebCore::CryptoKeyRaw::buildAlgorithm const): Deleted.
- crypto/keys/CryptoKeyRaw.h:
(WebCore::RawKeyAlgorithm::RawKeyAlgorithm): Deleted.
- crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::algorithm const):
(WebCore::CryptoKeyRSA::buildAlgorithm const): Deleted.
- 9:41 AM Changeset in webkit [220953] by
-
- 7 edits in trunk/Source/WebCore
[Mac] Change uint8_t* to Vector<uint8_t> type in all crypto algorithm implementation
https://bugs.webkit.org/show_bug.cgi?id=164939
Patch by Sam Weinig <sam@webkit.org> on 2017-08-19
Reviewed by Chris Dumez.
Address FIXMEs, replacing uint8_t*/size_t parameters with Vector<uint8_t>&.
- crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::transformAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
- crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
(WebCore::wrapKeyAES_KW):
(WebCore::unwrapKeyAES_KW):
(WebCore::CryptoAlgorithmAES_KW::platformWrapKey):
(WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey):
- crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::calculateSignature):
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
- crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
(WebCore::encryptRSAES_PKCS1_v1_5):
(WebCore::decryptRSAES_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
- crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::signRSASSA_PKCS1_v1_5):
(WebCore::verifyRSASSA_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
- crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
(WebCore::encryptRSA_OAEP):
(WebCore::decryptRSA_OAEP):
(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
- 1:46 AM Changeset in webkit [220952] by
-
- 2 edits in trunk/Tools
[iOS WK2] Add a version of DataInteractionTests.ExternalSourceAttributedStringToContentEditable that doesn't hit a debug assertion
https://bugs.webkit.org/show_bug.cgi?id=175509
<rdar://problem/33728169>
Reviewed by Ryosuke Niwa.
Removes ExternalSourceAttributedStringToContentEditable and adds
ExternalSourceColoredAttributedStringToContentEditable, which tests dropping an attributed string with colored
text instead of a bold attributed string of system font. Due to a recent change in behavior in UIKit, the
original test (which this patch renames to ExternalSourceBoldSystemAttributedStringToContentEditable) hits a
debug assertion when dropping text of system bold font. Since the original intent of this test was to verify
that the attributed string UTI can be accepted in richly contenteditable areas, it suffices to check that some
other style attribute, such as color, carries over from the NSAttributedString to the DOM.
Also marks ExternalSourceBoldSystemAttributedStringToContentEditable as disabled for the time being.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):