Timeline



Dec 8, 2014:

11:26 PM Changeset in webkit [177011] by ap@apple.com
  • 2 edits in trunk/Source/WebKit/mac

REGRESSION (r158036): WebView cannot handle HTTP Basic Authentication challenge
https://bugs.webkit.org/show_bug.cgi?id=138843
rdar://problem/18793695

Reviewed by Dan Bernstein.

  • Panels/WebAuthenticationPanel.m:

(-[WebAuthenticationPanel cancel:]):
(-[WebAuthenticationPanel logIn:]):
Don't close the panel before using panel.sheetParent, because the parent becomes nil.
In fact, we don't need to close it at all, it's enough to call orderOut:, and even
that only when using an old NSWindow API.

9:53 PM Changeset in webkit [177010] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix EFL build fix since r177001
https://bugs.webkit.org/show_bug.cgi?id=139428

Unreviewed, EFL build fix.

Do not inherit duplicated class. ExpressionNode is already
child of ParserArenaFreeable class.

  • parser/Nodes.h:
9:24 PM Changeset in webkit [177009] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix Build Warning in JavaScriptCore ControlFlowProfiler::dumpData() api.
https://bugs.webkit.org/show_bug.cgi?id=139384

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-12-08
Reviewed by Mark Lam.

Fix Build Warning by using dataLog() function instead of dataLogF() function.

  • runtime/ControlFlowProfiler.cpp:

(JSC::ControlFlowProfiler::dumpData):

9:02 PM Changeset in webkit [177008] by saambarati1@gmail.com
  • 4 edits in trunk/Source/JavaScriptCore

Web Inspector: Enable runtime API for JSC's control flow profiler
https://bugs.webkit.org/show_bug.cgi?id=139346

Reviewed by Joseph Pecoraro.

This patch creates an API that the Web Inspector can use
to get information about which basic blocks have exectued
from JSC's control flow profiler.

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getBasicBlocks):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/protocol/Runtime.json:
8:56 PM Changeset in webkit [177007] by ljaehun.lim@samsung.com
  • 2 edits in trunk/Source/WebKit2

[EFL] Use DependenciesEFL instead of Dependencies

Unreviewed, fix simple typo.

  • PlatformEfl.cmake:
7:10 PM Changeset in webkit [177006] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Rebaseline Mavericks test results after r176978.

Unreviewed.

  • platform/mac-mavericks/fast/forms/search-vertical-alignment-expected.png:
  • platform/mac-mavericks/fast/forms/search-vertical-alignment-expected.txt:
6:57 PM Changeset in webkit [177005] by matthew_hanson@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Versioning.

6:50 PM Changeset in webkit [177004] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-600.3.11

New Tag.

6:24 PM Changeset in webkit [177003] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix the iOS build after r177002

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-12-08

  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::supportsExtension):

6:04 PM Changeset in webkit [177002] by roger_fong@apple.com
  • 19 edits
    3 adds in trunk

Implementation EXT_sRGB as a WebGL1 extension.
https://bugs.webkit.org/show_bug.cgi?id=109332.
<rdar://problem/17363470>
Reviewed by Dean Jackson.
Tested by:
webgl/1.0.3/conformance/webgl/ext-sRGB.html
fast/canvas/webgl/constants.html
This patch implements the SRGB extension for WebGL1.
Details of the extension specification are outlined here:
https://www.khronos.org/registry/webgl/extensions/EXT_sRGB/

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::toJS):

  • html/canvas/EXTsRGB.cpp: Added.

(WebCore::EXTsRGB::EXTsRGB):
(WebCore::EXTsRGB::~EXTsRGB):
(WebCore::EXTsRGB::getName):

  • html/canvas/EXTsRGB.h: Added.
  • html/canvas/EXTsRGB.idl: Added.
  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::checkStatus):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::renderbufferStorage):
(WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContext.idl:
  • platform/graphics/Extensions3D.h:
  • platform/graphics/GraphicsContext3D.cpp:

(WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
(WebCore::GraphicsContext3D::getClearBitsByFormat):
(WebCore::GraphicsContext3D::getChannelBitsByFormat):

  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::supportsExtension):

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::texImage2D):

5:53 PM Changeset in webkit [177001] by ggaren@apple.com
  • 16 edits
    1 delete in trunk

Source/JavaScriptCore:
Removed some allocation and cruft from the parser
https://bugs.webkit.org/show_bug.cgi?id=139416

Reviewed by Mark Lam.

Now, the only AST nodes that require a destructor are the ones that
relate to pickling a function's arguments -- which will required some
deeper thinking to resolve.

This is a < 1% parser speedup.

was unused.

  • bytecompiler/NodesCodegen.cpp:

(JSC::CommaNode::emitBytecode):
(JSC::SourceElements::lastStatement):
(JSC::SourceElements::emitBytecode): Updated for interface change to linked list.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::ASTBuilder):
(JSC::ASTBuilder::varDeclarations):
(JSC::ASTBuilder::funcDeclarations):
(JSC::ASTBuilder::createFuncDeclStatement):
(JSC::ASTBuilder::addVar): Removed the ParserArenaData abstraction because
it wasn't buying us anything. We can just use Vector directly.

(JSC::ASTBuilder::createCommaExpr):
(JSC::ASTBuilder::appendToCommaExpr): Changed to use a linked list instead
of a vector, to avoid allocating a vector with inline capacity in the
common case in which an expression is not followed by a vector.

(JSC::ASTBuilder::Scope::Scope): Use Vector directly to avoid new'ing
up a Vector*.

(JSC::ASTBuilder::appendToComma): Deleted.
(JSC::ASTBuilder::combineCommaNodes): Deleted.

  • parser/Lexer.cpp:
  • parser/NodeConstructors.h:

(JSC::StatementNode::StatementNode):
(JSC::CommaNode::CommaNode):
(JSC::SourceElements::SourceElements): Updated for interface change to linked list.

  • parser/NodeInfo.h: Removed.
  • parser/Nodes.cpp:

(JSC::SourceElements::append):
(JSC::SourceElements::singleStatement): Use a linked list instead of a
vector to track the statements in a list. This removes some allocation
and it means that we don't need a destructor anymore.

(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode): Updated for interface change to reference,
since these values are never null.

  • parser/Nodes.h:

(JSC::StatementNode::next):
(JSC::StatementNode::setNext):
(JSC::CommaNode::append): Deleted. Updated for interface change to linked list.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::didFinishParsing): Updated for interface change to reference.

(JSC::Parser<LexerType>::parseVarDeclarationList):
(JSC::Parser<LexerType>::parseExpression): Track comma expressions as
an explicit list of CommaNodes, removing a use of vector and a destructor.

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createCommaExpr):
(JSC::SyntaxChecker::appendToCommaExpr):
(JSC::SyntaxChecker::appendToComma): Deleted. Updated for interface changes.

LayoutTests:
Removed the custom allocator for ParserArena
https://bugs.webkit.org/show_bug.cgi?id=139305

Reviewed by Mark Lam.

Added a test for something I messed up while writing this patch.

  • js/basic-strict-mode-expected.txt:
  • js/script-tests/basic-strict-mode.js:
5:31 PM Changeset in webkit [177000] by dino@apple.com
  • 6 edits
    1 add in trunk

[Apple] Use Accelerate framework to speed-up FEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=139310
<rdar://problem/18434594>

PerformanceTests:

Reviewed by Simon Fraser.

Add an interactive performance test that measures the speed of a set
of blur operations on a generated images.

  • Interactive/blur-filter-timing.html: Added.

Source/WebCore:

<rdar://problem/18434594>

Reviewed by Simon Fraser.

Using Apple's Accelerate framework provides faster blurs
than the parallel jobs approach, especially since r168577
which started performing retina-accurate filters.

Using Accelerate.framework to replace the existing box blur (what
we use to approximate Gaussian blurs) gets about a 20% speedup on
desktop class machines, but between a 2x-6x speedup on iOS hardware.
Obviously this depends on the size of the content being blurred,
but it is still good.

The change is to intercept the platformApply function on
FEGaussianBlur and send it off to Accelerate.

There is an interactive performance test: PerformanceTests/Interactive/blur-filter-timing.html

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::kernelPosition): Move this to a file static function from the .h.
(WebCore::accelerateBoxBlur): The Accelerate implementation.
(WebCore::standardBoxBlur): The default generic/standard implementation.
(WebCore::FEGaussianBlur::platformApplyGeneric): Use accelerate or the default form.
(WebCore::FEGaussianBlur::platformApply): Don't try the parallelJobs approach if Accelerate is available.

  • platform/graphics/filters/FEGaussianBlur.h:

(WebCore::FEGaussianBlur::kernelPosition): Deleted. Move into the .cpp.

Source/WTF:

<rdar://problem/18434594>

Reviewed by Simon Fraser.

Add a HAVE_ACCELERATE flag, true on Apple platforms.

  • wtf/Platform.h:
5:29 PM Changeset in webkit [176999] by Beth Dakin
  • 12 edits in trunk/Source

Copy and Lookup menu items should be disabled when something is not copyable
https://bugs.webkit.org/show_bug.cgi?id=139423

Reviewed by Tim Horton.

Source/WebCore:

New function allowCopy() indicates whether the HitTestResult would allow itself to
be copied onto the pasteboard.

  • WebCore.exp.in:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::allowsCopy):

  • rendering/HitTestResult.h:

Source/WebKit/mac:

Disable both lookup and copy when a HitTestResult does not allow copy.

  • WebView/WebActionMenuController.mm:

Set autoenablesItems to NO. It’s messing with our ability to control the enable/
disable state otherwise.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit2:

Add allowsCopy to the WebHitTestResult.

  • Shared/WebHitTestResult.cpp:

(WebKit::WebHitTestResult::Data::Data):
(WebKit::WebHitTestResult::Data::encode):
(WebKit::WebHitTestResult::Data::decode):

  • Shared/WebHitTestResult.h:

(WebKit::WebHitTestResult::allowsCopy):

Set autoenablesItems to NO. It’s messing with our ability to control the enable/
disable state otherwise.

  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:context:configuration:webView:]):

Disable both lookup and copy when a WebHitTestResult does not allow copy.

  • UIProcess/mac/WKActionMenuController.mm:
5:28 PM Changeset in webkit [176998] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to changeAffectsVisualOverflow()
https://bugs.webkit.org/show_bug.cgi?id=139420

Reviewed by Simon Fraser.

Move 'text-shadow' check from RenderStyle::changeRequiresLayout() to
changeAffectsVisualOverflow(). This has no behavior change as
changeRequiresLayout() calls changeAffectsVisualOverflow(). However,
this is clearer as text-shadow affects the visual overflow (similarly
to box-shadow).

No new tests, no behavior change.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeAffectsVisualOverflow):
(WebCore::RenderStyle::changeRequiresLayout):

5:26 PM Changeset in webkit [176997] by commit-queue@webkit.org
  • 4 edits
    2 deletes in trunk/Source/JavaScriptCore

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

"New JSC test in this patch is failing" (Requested by mlam on
#webkit).

Reverted changeset:

"Fixes operationPutByIds such that they check that the put
didn't"
https://bugs.webkit.org/show_bug.cgi?id=139196
http://trac.webkit.org/changeset/176979

5:20 PM Changeset in webkit [176996] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

<rdar://problem/18905383> [iOS] Crash due to null m_webPageProxyForBackForwardListForCurrentSwipe in ViewGestureController::endSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=138750

Reviewed by Tim Horton.

The snapshot for the current gesture was being removed mid-gesture by the callback from
dispatchAfterEnsuringDrawing scheduled by the previous gesture. The fix is to ignore the
callback for a gesture if it is made after the snapshot for that gesture has already been
removed (which can happen as a result of the watchdog timer firing).

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::ViewGestureController): Initialize new member variable.
(WebKit::addLogEntry): Fixed the log message format.
(WebKit::ViewGestureController::endSwipeGesture): When dispatchAfterEnsuringDrawing() calls
us back, bail out if the gesture snapshot has already been removed.
(WebKit::ViewGestureController::removeSwipeSnapshot): Increment
m_gesturePendingSnapshotRemoval.

  • UIProcess/mac/ViewGestureController.h: Added m_gesturePendingSnapshotRemoval member

variable.

5:17 PM Changeset in webkit [176995] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix typo.

  • storage/StorageNamespaceImpl.cpp:

(WebCore::localStorageNamespaceMap):

5:05 PM Changeset in webkit [176994] by matthew_hanson@apple.com
  • 4 edits
    4 deletes in branches/safari-600.3-branch/Tools

Rollout r176959. rdar://problem/19179009

4:48 PM Changeset in webkit [176993] by matthew_hanson@apple.com
  • 4 edits
    4 adds in branches/safari-600.3-branch/Tools

Merged r176959. rdar://problems/19179009

4:28 PM Changeset in webkit [176992] by andersca@apple.com
  • 10 edits in trunk/Source

WebStorageNamespaceProvider should create StorageNamespaceImpls
https://bugs.webkit.org/show_bug.cgi?id=139419

Reviewed by Andreas Kling.

Source/WebCore:

  • WebCore.exp.in:

Export new symbols.

  • WebCore.xcodeproj/project.pbxproj:

Make StorageNamespaceImpl.h a private header.

  • storage/StorageNamespaceImpl.cpp:

(WebCore::localStorageNamespaceMap):
Use NeverDestroyed.

(WebCore::StorageNamespaceImpl::createSessionStorageNamespace):
(WebCore::StorageNamespaceImpl::getOrCreateLocalStorageNamespace):
Add new functions for creating namespaces.

(WebCore::StorageNamespaceImpl::localStorageNamespace):
(WebCore::StorageNamespaceImpl::sessionStorageNamespace):
Call the new functions.

  • storage/StorageNamespaceImpl.h:

Add new members, make sure to deprecate the ones we don't want anyone calling.

  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageNamespace):
(WebCore::StorageNamespaceProvider::transientLocalStorageNamespace):

  • storage/StorageNamespaceProvider.h:

Pass the quota when creating storage namespaces.

Source/WebKit:

  • Storage/WebStorageNamespaceProvider.cpp:

(WebStorageNamespaceProvider::createLocalStorageNamespace):
(WebStorageNamespaceProvider::createTransientLocalStorageNamespace):
Create StorageNamespaceImpls.

(WebStorageNamespaceProvider::createSessionStorageNamespace): Deleted.
Delete this for now.

  • Storage/WebStorageNamespaceProvider.h:
4:23 PM Changeset in webkit [176991] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit/mac

Adding user content to a group should force that group to be created
https://bugs.webkit.org/show_bug.cgi?id=139421
rdar://problem/19180108

Reviewed by Sam Weinig.

  • WebCoreSupport/WebViewGroup.h:

Store the local storage database path in the group.

  • WebCoreSupport/WebViewGroup.mm:

(WebViewGroup::getOrCreate):
If we have an existing group that hasn't had its storage namespace provider created, and the path passed is not empty,
set it. This will ensure that getOrCreate will still work when creating a storage namspace provider.

(WebViewGroup::WebViewGroup):
Initialize the new member variable.

(WebViewGroup::storageNamespaceProvider):
Create the namespace provider lazily.

  • WebView/WebView.mm:

(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]):
Use getOrCreate instead of get.

4:16 PM Changeset in webkit [176990] by ap@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests

REGRESSION (173394): Support for webcam is broken
https://bugs.webkit.org/show_bug.cgi?id=139313

Test by Antti Koivisto, reviewed and tweaked by Alexey Proskuryakov.

  • http/tests/multipart/multipart-image-expected.html: Added.
  • http/tests/multipart/multipart-image.html: Added.
  • http/tests/multipart/resources/multipart.php: Multiopart boundary must start on

a new line, so make it so. In newwer OS versions, CFNetwork has a workaround that
makes invalid multipart response work, which is why the test was passing locally.

4:10 PM Changeset in webkit [176989] by matthew_hanson@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176883. rdar://problems/19158331

4:10 PM Changeset in webkit [176988] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r176856. rdar://problems/19157955

4:10 PM Changeset in webkit [176987] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176870. rdar://problems/19052381

4:10 PM Changeset in webkit [176986] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merge r176116. <rdar://problem/19052381>

3:57 PM Changeset in webkit [176985] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebCore

Move the new :nth-child() and :nth-last-child() out of experimental
https://bugs.webkit.org/show_bug.cgi?id=139329

Reviewed by Andreas Kling.

The code is stable.
Feedback has only been positive.
All the known issues have been reported to the CSS WG.

The #ifdef don't really work anymore anyway for :nth-child() and :nth-last-child().

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

3:56 PM Changeset in webkit [176984] by benjamin@webkit.org
  • 3 edits
    6 adds in trunk

A selector should not match anything if there is a subselector after a non-scrollbar pseudo element
https://bugs.webkit.org/show_bug.cgi?id=139336
Source/WebCore:

rdar://problem/19051623

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-12-08
Reviewed by Andreas Kling.

Tests: fast/css/duplicated-after-pseudo-element.html

fast/css/duplicated-before-pseudo-element.html
fast/css/simple-selector-after-pseudo-element.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::constructFragments):
The code filtering out simple selectors was only considering
the relation CSSSelector::SubSelector. That comes from SelectorChecker where
the relation considered is the one from the previous selector.

In this case, the relation is the extracted from the current simple selector,
which is the relation with the following selector.

When a single simple selector was following a pseudo element, the relation evaluated
to descendant/adjacent/direct-adjacent and we were skipping the early return.
That simple selector was evaluated as a regular filter on the element.

In the CSS JIT, we can just remove that test altogether. Fragments are built one after
the other. By definition, the evaluated simple selector belong to the current fragment.

LayoutTests:

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-12-08
Reviewed by Andreas Kling.

  • fast/css/duplicated-after-pseudo-element-expected.html: Added.
  • fast/css/duplicated-after-pseudo-element.html: Added.
  • fast/css/duplicated-before-pseudo-element-expected.html: Added.
  • fast/css/duplicated-before-pseudo-element.html: Added.
  • fast/css/simple-selector-after-pseudo-element-expected.html: Added.
  • fast/css/simple-selector-after-pseudo-element.html: Added.
3:55 PM Changeset in webkit [176983] by benjamin@webkit.org
  • 9 edits in trunk

Fix the parsing of advanced :lang() after r176902
https://bugs.webkit.org/show_bug.cgi?id=139379

Reviewed by Andreas Kling.

Source/WebCore:

There were two mistakes that were only caught in debug:

The lexer was not calling isIdentifierStart() before parseIdentifier().
Some identifier we were parsing should have been invalid.
This was caught with an assertion in parseIdentifier().

The other issue is that we were accumulating pointer to freed memory.
The tokenizer for LANGRANGE was creating a new string with a StringBuilder.
The problem is that CSSParserString does not keep the source string alive.
Consequently, the list of language range was accumulating pointers to dead
StringImpls.

The fix there is to simply extend the token to take the original asterisk character
from the input. That is not elegant but that's efficient and we know
the buffer lifetime.

  • css/CSSParser.cpp:

(WebCore::CSSParser::realLex):

  • css/CSSGrammar.y.in: Fix the indentation of a language range rule.

LayoutTests:

Unskip and update the tests.

All the interesting cases were covered, I just had to update
the expectations.

  • TestExpectations:
  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/parsing-css-lang-expected.txt:
  • fast/css/parsing-css-lang.html:
3:34 PM Changeset in webkit [176982] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

Fix iOS build after r176971.

I had previously modified the WTF forwarding header instead of modifying the real source.

  • wtf/unicode/CharacterNames.h:
3:14 PM Changeset in webkit [176981] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the 32-bit build.

  • WebCore.exp.in:
3:14 PM Changeset in webkit [176980] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

The website data store should know all its associated pages
https://bugs.webkit.org/show_bug.cgi?id=139411

Reviewed by Tim Horton.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::addWebPage):
(WebKit::WebsiteDataStore::removeWebPage):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:11 PM Changeset in webkit [176979] by mmirman@apple.com
  • 4 edits
    2 adds in trunk/Source/JavaScriptCore

Fixes operationPutByIds such that they check that the put didn't
change the structure of the object who's property access is being
cached.
https://bugs.webkit.org/show_bug.cgi?id=139196

Reviewed by Filip Pizlo.

  • jit/JITOperations.cpp:

(JSC::operationGetByIdOptimize): changed get to getPropertySlot
(JSC::operationPutByIdStrictBuildList): saved the structure before the put.
(JSC::operationPutByIdNonStrictBuildList): ditto.
(JSC::operationPutByIdDirectStrictBuildList): ditto.
(JSC::operationPutByIdDirectNonStrictBuildList): ditto.

  • jit/Repatch.cpp:

(JSC::tryCachePutByID): fixed structure() to use the existant vm.
(JSC::tryBuildPutByIdList): Added a check that the old structure's id
is the same as the new.
(JSC::buildPutByIdList): Added an argument

  • jit/Repatch.h:

(JSC::buildPutByIdList): Added an argument

  • tests/stress/put-by-id-build-list-order-recurse.js: Test that failed before the change
  • tests/stress/put-by-id-strict-build-list-order.js: Added.
3:10 PM Changeset in webkit [176978] by mmaxfield@apple.com
  • 22 edits
    3 adds
    1 delete in trunk

Inline elements whose parents have small line-height are laid out too low
https://bugs.webkit.org/show_bug.cgi?id=139375

Reviewed by Dave Hyatt.

Source/WebCore:

This is a port of the Blink patch at
https://src.chromium.org/viewvc/blink?revision=155253&view=revision.

When laying out inline elements, we try to align leaf children's parents'
baselines across the entire line. However, if you set line-height: 0px on a
span, the entire InlineBox which represents that span will have a height of
0, and therefore be laid out entirely on the baseline. In addition, we will
try to vertically center the leaf text in the span's InlineBox, which means
the leaf text will be vertically centered on the baseline. All the other
major browsers do not have this behavior; instead, they line up the boxes
as you would expect.

This bug led to a rendering problem on the front page of the New York Times.

Here is the ChangeLog from the Blink patch:

Fix baseline position when it is outside the element's box

Specifically, we shouldn't force the baseline to be inside the element. IE
and FF don't do this, and it's incompatible with the CSS spec:

"The baseline of an 'inline-block' is the baseline of its last line box in
the normal flow, unless it has either no in-flow line boxes or if its
'overflow' property has a computed value other than 'visible', in which case
the baseline is the bottom margin edge."
-- http://www.w3.org/TR/CSS21/visudet.html#leading

It doesn't have a special case for "baseline is outside of the element's
margin box".

Test: fast/text/small-line-height.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::baselinePosition):

LayoutTests:

Add fast/text/small-line-height.html for a simple example. In addition, update
existing tests.

  • fast/forms/textfield-overflow-by-value-update-expected.txt:
  • fast/regions/cssom/client-rects-inline-complex.html:
  • fast/regions/overflow/overflow-region-inline-expected.html:
  • fast/text/small-line-height-expected.html: Added.
  • fast/text/small-line-height.html: Added.
  • platform/mac/fast/box-sizing/box-sizing-expected.png:
  • platform/mac/fast/box-sizing/box-sizing-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.png:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-by-value-update-expected.png: Removed.
  • platform/mac/fast/multicol/client-rects-expected.png:
  • platform/mac/fast/multicol/client-rects-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-complex-expected.png:
  • platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-expected.png:
  • platform/mac/fast/multicol/client-rects-spanners-expected.txt:
  • platform/mac/fast/multicol/layers-split-across-columns-expected.png:
  • platform/mac/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/mac/fast/multicol/newmulticol/client-rects-expected.png:
  • platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
2:56 PM Changeset in webkit [176977] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] YouTube plug-in replacement should support partial urls
https://bugs.webkit.org/show_bug.cgi?id=139400

Reviewed by Alexey Proskuryakov.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::youTubeURL): Call Document::completeURL.

2:39 PM Changeset in webkit [176976] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit

WebStorageNamespaceProvider should know about its local storage database path
https://bugs.webkit.org/show_bug.cgi?id=139413

Reviewed by Andreas Kling.

Source/WebKit:

  • Storage/WebStorageNamespaceProvider.cpp:

(WebStorageNamespaceProvider::create):
(WebStorageNamespaceProvider::WebStorageNamespaceProvider):

  • Storage/WebStorageNamespaceProvider.h:

Source/WebKit/mac:

  • WebCoreSupport/WebViewGroup.h:
  • WebCoreSupport/WebViewGroup.mm:

(WebViewGroup::getOrCreate):
(WebViewGroup::WebViewGroup):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView setGroupName:]):
(-[WebView groupName]): Deleted.

2:38 PM Changeset in webkit [176975] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::deleteAllCookiesModifiedSince):

2:17 PM Changeset in webkit [176974] by akling@apple.com
  • 8 edits in trunk/Source/WebCore

Roll out r175352.
<https://webkit.org/b/139146>

This change caused some unexpected assertions in line box teardown.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::willBeDestroyed):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::willBeDestroyed):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::willBeRemovedFromTree):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::willBeDestroyed):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::willBeDestroyed):

  • rendering/RenderReplaced.h:
2:17 PM Changeset in webkit [176973] by andersca@apple.com
  • 9 edits in trunk/Source

Change WTF::currentCPUTime to return std::chrono::microseconds and get rid of currentCPUTimeMS
https://bugs.webkit.org/show_bug.cgi?id=139410

Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • API/JSContextRef.cpp:

(JSContextGroupSetExecutionTimeLimit):
(JSContextGroupClearExecutionTimeLimit):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::setTimeLimit):
(JSC::Watchdog::didFire):
(JSC::Watchdog::startCountdownIfNeeded):
(JSC::Watchdog::startCountdown):

  • runtime/Watchdog.h:
  • runtime/WatchdogMac.cpp:

(JSC::Watchdog::startTimer):

Source/WTF:

  • wtf/CurrentTime.cpp:

(WTF::currentCPUTime):
(WTF::currentCPUTimeMS): Deleted.

  • wtf/CurrentTime.h:
2:12 PM Changeset in webkit [176972] by mark.lam@apple.com
  • 3 edits
    3 adds in trunk

CFA wrongly assumes that a speculation for SlowPutArrayStorageShape disallows ArrayStorageShape arrays.
<https://webkit.org/b/139327>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

The code generator and runtime slow paths expects otherwise. This patch fixes
CFA to match the code generator's expectation.

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::arrayModesThatPassFiltering):
(JSC::DFG::ArrayMode::arrayModesWithIndexingShapes):

LayoutTests:

  • js/dfg-slow-put-array-storage-spec-should-allow-fast-array-storage-expected.txt: Added.
  • js/dfg-slow-put-array-storage-spec-should-allow-fast-array-storage.html: Added.
  • js/script-tests/dfg-slow-put-array-storage-spec-should-allow-fast-array-storage.js: Added.

(foo):
(test):

2:10 PM Changeset in webkit [176971] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[iOS] Narrow non-breaking space does not fall back to a correct font
https://bugs.webkit.org/show_bug.cgi?id=139335

Reviewed by Enrica Casucci.

Source/WebCore:

Test: fast/text/narrow-non-breaking-space.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::requiresCustomFallbackFont):
(WebCore::FontCache::getCustomFallbackFont):

LayoutTests:

  • fast/text/narrow-non-breaking-space-expected.html: Added.
  • fast/text/narrow-non-breaking-space.html: Added.
2:06 PM Changeset in webkit [176970] by dbates@webkit.org
  • 4 edits in trunk/Source

[iOS] Fix the WebKit build with the public SDK

Source/WebCore:

Include header UIKit.h.

  • platform/spi/ios/MediaPlayerSPI.h:

Source/WebKit/mac:

Include header NSURLDownloadSPI.h.

  • WebCoreSupport/WebFrameLoaderClient.mm:
1:53 PM Changeset in webkit [176969] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/18046692> [iOS] Safari crashes at -[_NSUndoStack popAndInvoke] when trying to undo typing on closed tab
https://bugs.webkit.org/show_bug.cgi?id=139408

Reviewed by Anders Carlsson.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView undoManager]): Override to initialize if necessary and return a unique undo
manager for this instance. This ensures that undoable operations for this webview don’t get
put in other undo managers, and matches UIWebView behavior.

1:10 PM Changeset in webkit [176968] by bshafiei@apple.com
  • 5 edits in tags/Safari-600.3.10.2/Source

Versioning.

1:08 PM Changeset in webkit [176967] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.11.2/Source

Versioning.

1:01 PM Changeset in webkit [176966] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.11.2

New tag.

1:00 PM Changeset in webkit [176965] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.3.10.2

New tag.

12:40 PM Changeset in webkit [176964] by Chris Dumez
  • 23 edits in trunk/Source

Revert r176293 & r176275

Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type
instead of size_t. There is some disagreement regarding the long-term direction
of the API and we shouldn’t leave the API partly transitioned to unsigned type
while making a decision.

Source/JavaScriptCore:

  • bytecode/PreciseJumpTargets.cpp:
  • replay/EncodedValue.h:

Source/WebCore:

  • WebCore.exp.in:
  • bindings/js/JSDOMBinding.h:

(WebCore::jsArray):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:
  • cssjit/SelectorCompiler.cpp:
  • editing/TextIterator.cpp:

(WebCore::SearchBuffer::append):
(WebCore::SearchBuffer::prependContext):
(WebCore::SearchBuffer::search):
(WebCore::SearchBuffer::length):

  • html/HTMLFormElement.cpp:

(WebCore::removeFromVector):

  • html/parser/HTMLParserIdioms.h:
  • html/parser/XSSAuditor.cpp:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::duplicateDataBufferIfNecessary):

Source/WebKit2:

  • Platform/IPC/ArgumentCoders.h:
  • Platform/IPC/DataReference.h:

Source/WTF:

  • wtf/Forward.h:
  • wtf/Vector.h:

(WTF::VectorTypeOperations::compare):
(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBufferBase::shouldReallocateBuffer):
(WTF::VectorBufferBase::reallocateBuffer):
(WTF::VectorBufferBase::capacity):
(WTF::VectorBufferBase::VectorBufferBase):
(WTF::VectorBuffer::VectorBuffer):
(WTF::VectorBuffer::allocateBuffer):
(WTF::VectorBuffer::tryAllocateBuffer):
(WTF::VectorBuffer::shouldReallocateBuffer):
(WTF::VectorBuffer::reallocateBuffer):
(WTF::VectorBuffer::swap):
(WTF::VectorBuffer::swapInlineBuffer):
(WTF::VectorBuffer::swapInlineBuffers):
(WTF::Vector::Vector):
(WTF::Vector::capacity):
(WTF::Vector::at):
(WTF::Vector::operator[]):
(WTF::OverflowHandler>::find):
(WTF::OverflowHandler>::reverseFind):
(WTF::OverflowHandler>::fill):
(WTF::OverflowHandler>::expandCapacity):
(WTF::OverflowHandler>::tryExpandCapacity):
(WTF::OverflowHandler>::resize):
(WTF::OverflowHandler>::resizeToFit):
(WTF::OverflowHandler>::shrink):
(WTF::OverflowHandler>::grow):
(WTF::OverflowHandler>::reserveCapacity):
(WTF::OverflowHandler>::tryReserveCapacity):
(WTF::OverflowHandler>::reserveInitialCapacity):
(WTF::OverflowHandler>::shrinkCapacity):
(WTF::OverflowHandler>::append):
(WTF::OverflowHandler>::tryAppend):
(WTF::OverflowHandler>::insert):
(WTF::OverflowHandler>::insertVector):
(WTF::OverflowHandler>::remove):
(WTF::OverflowHandler>::reverse):
(WTF::OverflowHandler>::checkConsistency):

  • wtf/text/AtomicString.h:
  • wtf/text/StringImpl.h:

(WTF::StringImpl::adopt):
(WTF::equalIgnoringNullity):

  • wtf/text/StringView.h:

(WTF::append):

  • wtf/text/WTFString.h:
12:36 PM Changeset in webkit [176963] by andersca@apple.com
  • 18 edits in trunk/Source

Make deleting all cookies after a given date a little more sane
https://bugs.webkit.org/show_bug.cgi?id=139409

Reviewed by Antti Koivisto.

Source/WebCore:

  • WebCore.exp.in:

Update exports.

  • platform/network/PlatformCookieJar.h:
  • platform/network/cf/CookieJarCFNet.cpp:
  • platform/network/curl/CookieJarCurl.cpp:
  • platform/network/soup/CookieJarSoup.cpp:

Rename deleteAllCookiesModifiedAfterDate to deleteAllCookiesModifiedSince and change it
to take an std::chrono::system_clock::time_point instead.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::cookieStorage):
Helper function that returns an NSHTTPCookieStorage given a network session.

(WebCore::deleteAllCookiesModifiedSince):
Get the cookie storage from the network storage instead of just getting the global one.

Source/WebKit2:

Change all the doubles to std::chrono::system_clock::time_points instead.

  • Platform/IPC/ArgumentCoders.cpp:

(IPC::ArgumentCoder<std::chrono::system_clock::time_point>::encode):
(IPC::ArgumentCoder<std::chrono::system_clock::time_point>::decode):

  • Platform/IPC/ArgumentCoders.h:
  • Scripts/webkit/messages.py:

(headers_for_type):

  • UIProcess/API/C/WKCookieManager.cpp:

(WKCookieManagerDeleteAllCookiesModifiedAfterDate):

  • UIProcess/API/C/WKCookieManager.h:
  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedAfterDate): Deleted.

  • UIProcess/WebCookieManagerProxy.h:
  • WebProcess/Cookies/WebCookieManager.cpp:

(WebKit::WebCookieManager::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManager::deleteAllCookiesModifiedAfterDate): Deleted.

  • WebProcess/Cookies/WebCookieManager.h:
  • WebProcess/Cookies/WebCookieManager.messages.in:
12:34 PM Changeset in webkit [176962] by matthew_hanson@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176596. rdar://problems/19176127

12:23 PM Changeset in webkit [176961] by bshafiei@apple.com
  • 5 edits in branches/safari-600.3-branch/Source

Versioning.

12:07 PM Changeset in webkit [176960] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Move the callback invocation outside of the loop.

Rubber-stamped by Tim Horton.

  • UIProcess/WebKeyValueStorageManager.cpp:

(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):

11:40 AM Changeset in webkit [176959] by timothy_horton@apple.com
  • 4 edits
    4 adds in trunk/Tools

Add action menu tests
https://bugs.webkit.org/show_bug.cgi?id=139156

Reviewed by Dean Jackson.

  • TestWebKitAPI/PlatformWebView.h:
  • TestWebKitAPI/mac/PlatformWebViewMac.mm:

(TestWebKitAPI::PlatformWebView::PlatformWebView):
Add a mechanism allowing tests to provide their own WKView subclass.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/action-menu-targets.html: Added.

Add a file with lots of menu targets.

  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenus.mm: Added.

(-[ActionMenusTestWKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:userData:]):
(-[ActionMenusTestWKView runMenuSequenceAtPoint:preMenuNeedsUpdateHandler:preWillOpenMenuHandler:preDidCloseMenuHandler:]):
(-[ActionMenusTestWKView runMenuSequenceAtPoint:preDidCloseMenuHandler:]):
Run through the normal sequence of callbacks, recording what items and type were returned, and give clients a chance to do work at various points in the process.

(-[ActionMenusTestWKView _setOverrideActionMenuItems:]):

(TestWebKitAPI::didFinishLoadForFrameCallback):
(TestWebKitAPI::didFinishDownloadCallback):
(TestWebKitAPI::didCreateDownloadDestinationCallback):
Watch downloads and ensure that they match the content we expect.

(TestWebKitAPI::watchPasteboardForString):
(TestWebKitAPI::watchPasteboardForImage):
(TestWebKitAPI::JavaScriptStringCallbackContext::JavaScriptStringCallbackContext):
(TestWebKitAPI::JavaScriptBoolCallbackContext::JavaScriptBoolCallbackContext):
(TestWebKitAPI::javaScriptStringCallback):
(TestWebKitAPI::javaScriptBoolCallback):
(TestWebKitAPI::callJavaScriptReturningString):
(TestWebKitAPI::callJavaScriptReturningBool):
(TestWebKitAPI::watchEditableAreaForString):
(TestWebKitAPI::waitForVideoReady):
(TestWebKitAPI::retrieveSelection):
(TestWebKitAPI::retrieveSelectionInElement):
(TestWebKitAPI::performMenuItemAtIndexOfTypeAsync):
(TestWebKitAPI::ensureMenuItemAtIndexOfTypeIsDisabled):
Add many helpers for testing, especially to make asynchronous things synchronous.

(TestWebKitAPI::windowPointForTarget):
(TestWebKitAPI::inset8):
Hard-code points in action-menu-targets.html for hit testing.

(TestWebKitAPI::TEST):
Add a suite of tests for WebKit2 action menus.

  • TestWebKitAPI/Tests/WebKit2ObjC/ActionMenusBundle.mm: Added.

(TestWebKitAPI::createActionContextForPhoneNumber):
(TestWebKitAPI::ActionMenuTest::ActionMenuTest):
(TestWebKitAPI::ActionMenuTest::prepareForActionMenu):
(TestWebKitAPI::ActionMenuTest::actionContextForResultAtPoint):
(TestWebKitAPI::ActionMenuTest::drawRect):
(TestWebKitAPI::ActionMenuTest::didCreatePage):
Add a bundle with a PageOverlay and a actionContextForResultAtPoint override,
so that we can test that infrastructure.

11:30 AM Changeset in webkit [176958] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

URTBF after r176953, add an unreachable return to make GCC happy.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::subresourceCachePolicy):

11:13 AM Changeset in webkit [176957] by jfernandez@igalia.com
  • 10 edits
    4 adds in trunk

[CSS Grid Layout] Grid items must set a new formatting context.
https://bugs.webkit.org/show_bug.cgi?id=139150

Reviewed by David Hyatt.

Source/WebCore:

Grid item's margins must not collapse even when they may be adjoining to
its content's margins. Also, setting a new formatting context prevents any
'float' protruding content on the adjoining grid items.

This patch also renames the expandsToEncloseOverhangingFloats to be more generic now,
determining whether a new formatting context is set or not. This affects not only to
how floats behave, but whether margins should collapse or not.

Tests: fast/css-grid-layout/float-not-protruding-into-next-grid-item.html

fast/css-grid-layout/grid-item-margins-not-collapse.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::avoidsFloats): Using the new createsNewFormattingContext function.
(WebCore::RenderBlock::expandsToEncloseOverhangingFloats): Deleted.

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::MarginInfo::MarginInfo): Using the new createsNewFormattingContext function.
(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats): Using the new createsNewFormattingContext function.
(WebCore::RenderBlockFlow::layoutBlock): Using the new createsNewFormattingContext function.
(WebCore::RenderBlockFlow::computeOverflow): Using the new createsNewFormattingContext function.
(WebCore::RenderBlockFlow::addOverhangingFloats): Using the new createsNewFormattingContext function.
(WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): Using the new createsNewFormattingContext function.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createsNewFormattingContext): Added.
(WebCore::RenderBox::avoidsFloats): Removed checks already defined in the new createsNewFormattingContext function.

  • rendering/RenderBox.h:

(WebCore::RenderBox::isGridItem): Added.

LayoutTests:

Test to verify that grid items's margin don't collapese with its parent's margin
and there is no 'float' protruding content on the adjoining grid items.

I had to rebaseline the form-hides-table.html test because table-caption, which
is supposed to establish a new formatting context, does not allow margins collapsing.

  • fast/css-grid-layout/float-not-protruding-into-next-grid-item-expected.html: Added.
  • fast/css-grid-layout/float-not-protruding-into-next-grid-item.html: Added.
  • fast/css-grid-layout/grid-item-margins-not-collapse-expected.html: Added.
  • fast/css-grid-layout/grid-item-margins-not-collapse.html: Added.
  • platform/gtk/fast/forms/form-hides-table-expected.txt: Rebaseline needed.
  • platform/mac/fast/forms/form-hides-table-expected.txt: Rebaseline needed.
  • platform/efl/TestExpectations: Mark fast/forms/form-hides-table-expected as failure.
10:50 AM Changeset in webkit [176956] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Add a stub implementation of WebsiteDataStore::removeDataModifiedSince
https://bugs.webkit.org/show_bug.cgi?id=139406

Reviewed by Antti Koivisto.

Change _WKWebsiteDataStore to call the newly added function.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(toWebsiteDataTypes):
(toSystemClockTime):
(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeDataModifiedSince):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
10:47 AM Changeset in webkit [176955] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Attempt to fix the public SDK build after <https://trac.webkit.org/r176841>
(https://bugs.webkit.org/show_bug.cgi?id=139227)

  • platform/spi/ios/AVKitSPI.h:
10:46 AM Changeset in webkit [176954] by yoon@igalia.com
  • 14 edits in trunk/Source/WebKit2

[GTK] Let DrawingArea manages setAcceleratedCompositingWindowId
https://bugs.webkit.org/show_bug.cgi?id=117230

Reviewed by Anders Carlsson.

This is a preparation patch for Threaded Coordinated Graphics.

LayerTreeHostGtk uses a native window handle to make glContext for
accelerated compositing. Therefore it is natural for DrawingArea to take
responsibility for the native window handle. And, in Coordinated
Graphics case, WebPage creates LayerTreeHost before receiving a native
window handle from UIProcess. It means we need a method to pass the
native window handle to already created LayerTreeHost.

This patch uses DrawingAreaProxy::setNativeSurfaceHandleForCompositing
instead of WebCoreProxy::setAcceleratedCompositingWindowId to set window
ID for accelerated compositing.

Also, this patch renames the setAcceleratedCompositingWindowId with a
more generic name, setNativeSurfaceHandleForCompositing.

No new tests. No change in functionality.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCreateWebPage):

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing):

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::setAcceleratedCompositingWindowId): Deleted.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::nativeSurfaceHandleForCompositing):

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing):

  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::glContext):
(WebKit::LayerTreeHostGtk::initialize):

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::setAcceleratedCompositingWindowId): Deleted.

10:42 AM Changeset in webkit [176953] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
https://bugs.webkit.org/show_bug.cgi?id=139350

Reviewed by Antti Koivisto.

Stop using ResourceRequest::cachePolicy() in FrameLoader::subresourceCachePolicy()
and use m_loadType instead. ResourceRequest::cachePolicy() is meant to be passed
to the network stack, and isn't supposed to be used as input inside WebCore.

No new tests, no behavior change.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::subresourceCachePolicy):

10:14 AM Changeset in webkit [176952] by Philippe Normand
  • 16 edits
    3 adds in trunk

[GTK] UserMedia Permission Request API
https://bugs.webkit.org/show_bug.cgi?id=136449

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Very basic constraints validation support in the GStreamer
MediaStreamCenter. This is needed so the GTK C API tests using the
getUserMedia() API would not time out.

  • platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:

(WebCore::MediaStreamCenterGStreamer::~MediaStreamCenterGStreamer):
(WebCore::MediaStreamCenterGStreamer::validateRequestConstraints):
(WebCore::MediaStreamCenterGStreamer::createMediaStream):

Source/WebKit2:

  • PlatformGTK.cmake: GTK-specific new files.
  • UIProcess/API/gtk/WebKitUIClient.cpp: DecidePolicy handler

implementation for UserMediaPermissionRequest.

  • UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp: Added,

WebKitGTK API for UserMediaPermissionRequest, very similar to the
one used for Geolocation.
(webkitUserMediaPermissionRequestAllow):
(webkitUserMediaPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitUserMediaPermissionRequestDispose):
(webkit_user_media_permission_get_media_types):
(webkitUserMediaPermissionRequestGetProperty):
(webkit_user_media_permission_request_class_init):
(webkitUserMediaPermissionRequestCreate):

  • UIProcess/API/gtk/WebKitUserMediaPermissionRequest.h: Added.
  • UIProcess/API/gtk/WebKitUserMediaPermissionRequestPrivate.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Expose new API

in documentation.

  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
  • UIProcess/API/gtk/webkit2.h: Expose UserMediaPermissionRequest API.

Tools:

The GTK version of the MiniBrowser has gained UserMedia permission
request support.

  • MiniBrowser/gtk/BrowserWindow.c: Show a popup when the page

requires user permission to access audio/video devices.
(permissionRequestDialogCallback):
(webViewDecidePermissionRequest):
(geolocationRequestDialogCallback): Deleted.

10:05 AM Changeset in webkit [176951] by andersca@apple.com
  • 6 edits in trunk

Add a stubbed out method for clearing out the website data store
https://bugs.webkit.org/show_bug.cgi?id=139404

Reviewed by Antti Koivisto.

Source/WebKit2:

Add stubbed out method that just calls the completion handler.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):

Tools:

Add a debug menu item for testing clearing of website data.

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController clearWebsiteData:]):

9:27 AM Changeset in webkit [176950] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[EFL] Change expectations for two accessibility layout tests.
https://bugs.webkit.org/show_bug.cgi?id=139399

Unreviewed gardening.

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2014-12-08

  • platform/efl/accessibility/roles-exposed-expected.txt:
  • platform/efl/accessibility/table-sections-expected.txt:
8:57 AM Changeset in webkit [176949] by andersca@apple.com
  • 7 edits in trunk/Source/WebCore

Remove ResourceHandle::loadsBlocked()
https://bugs.webkit.org/show_bug.cgi?id=139401

Reviewed by Daniel Bates.

This hasn't returned true since Leopard, so get rid of it.

  • page/Chrome.cpp:

(WebCore::Chrome::canRunModalNow):

  • platform/network/ResourceHandle.h:
  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::loadsBlocked): Deleted.

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::loadsBlocked): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::loadsBlocked): Deleted.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::ResourceHandle::loadsBlocked): Deleted.

8:12 AM Changeset in webkit [176948] by Chris Fleizach
  • 4 edits in trunk/Source/WebCore

AX: iOS: VoiceOver gets hung on some websites consistently.
https://bugs.webkit.org/show_bug.cgi?id=139331

Reviewed by Mario Sanchez Prada.

iFrames are attachments on iOS, but they do not have attachment views. As a result,
WebCore would return incorrect information for the element count and index of children elements.

No tests. Bug only manifests itself when iOS accessibility frameworks call into WebCore.

  • accessibility/AccessibilityMockObject.h:

(WebCore::AccessibilityMockObject::isDetachedFromParent):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isDetachedFromParent):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityElementCount]):
(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
(-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
(-[WebAccessibilityObjectWrapper accessibilityContainer]):

4:59 AM Changeset in webkit [176947] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

REGRESSION (173394): Support for webcam is broken
https://bugs.webkit.org/show_bug.cgi?id=139313

Reviewed by Alexey Proskuryakov.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):

Don't buffer when handling multipart/x-mixed-replace. Multiple calls to didReceiveResponseAsync break assumptions.

4:09 AM Changeset in webkit [176946] by yoon@igalia.com
  • 2 edits
    4 moves in trunk/Source/WebKit2

[CoordinatedGraphics] Move CoordinatedBackingStore and CoordinatedGraphicsScene to Shared
https://bugs.webkit.org/show_bug.cgi?id=139385

Reviewed by Martin Robinson.

For the Threaded Compositor, CoordinatedBackingStore and
CoordinatedGraphicsScene should be placed at the Shared instead of
UIProcess because it can be used in the WebProcess also.

No new tests because there is no behavior change.

  • PlatformEfl.cmake:
  • Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp.
  • Shared/CoordinatedGraphics/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h.
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp.
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h.
3:44 AM WebKitGTK/2.4.x edited by berto@igalia.com
(diff)
3:34 AM Changeset in webkit [176945] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

Webkit using Harfbuzz does not display Arabic script correctly
https://bugs.webkit.org/show_bug.cgi?id=136337

Patch by Doron Wloschowsky <doron_wloschowsky@scee.net> on 2014-12-08
Reviewed by Carlos Garcia Campos.

Using reinterpret_cast to convert hb_codepoint_t* into UChar*
doesn't work on big endian systems.

  • platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:

(WebCore::harfBuzzGetGlyph):

3:33 AM Changeset in webkit [176944] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[as] Updated Assamese translations of WebKitGtk+
https://bugs.webkit.org/show_bug.cgi?id=137487

Patch by Nilamdyuti Goswami <nilamdyuti@gmail.com> on 2014-12-08
Reviewed by Carlos Garcia Campos.

  • as.po:
3:28 AM WebKitGTK/2.6.x edited by berto@igalia.com
(diff)
1:34 AM Changeset in webkit [176943] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GStreamer] Major cleanup of AudioDestination implementation
https://bugs.webkit.org/show_bug.cgi?id=139370

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Philippe Normand.

  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
Add an audioresample element before the audio sink. The audio sink
might not be able to handle our sampling rate.

(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
(WebCore::AudioDestinationGStreamer::stop):
(WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady): Deleted.
Don't use a wavparse element but directly link the raw audio from
the source to the audio sink.

(WebCore::AudioDestinationGStreamer::start):
Catch errors when going to PLAYING early, we might not get an error
message.

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(getGStreamerMonoAudioCaps):
(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcChangeState):
Don't use a WAV encoder but directly output raw audio. Also don't
include a unneeded audioconvert element before the interleave.

(webKitWebAudioSrcLoop):
Add timestamps and durations to the output buffers, map them in
READWRITE mode and actually keep them mapped until we're sure
nothing is actually writing into them.

(webKitWebAudioSrcLoop):
Pause the task on errors instead of continuously calling it again
immediately.

1:28 AM Changeset in webkit [176942] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Use gst_message_parse_buffering()
https://bugs.webkit.org/show_bug.cgi?id=139365

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
Use gst_message_parse_buffering() instead of manually getting
the percentage from the message's structure. While the latter
is supposed to work and part of the ABI stability guarantee,
it's just not nice and overly complicated.

1:26 AM Changeset in webkit [176941] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Minor cleanup of the AudioFileReader implementation
https://bugs.webkit.org/show_bug.cgi?id=139367

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Philippe Normand.

  • platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:

(WebCore::AudioFileReader::~AudioFileReader):
Don't call gst_bus_remove_signal_watch(), the source was already
destroyed together with the main context and doing it again here
will give a g_critical().

(WebCore::AudioFileReader::handleSample):
Calculate the number of samples from the actual buffer size
and the bytes-per-frame instead of the buffer duration. Using
the buffer duration can lead to rounding errors and might cause
too few samples to be copied over later.

(WebCore::AudioFileReader::handleMessage):
Set the pipeline to GST_STATE_NULL immediately when receiving
errors to prevent other follow-up error messages from propagating
through the bus and spamming the user's terminal with g_warnings().

(WebCore::AudioFileReader::handleNewDeinterleavePad):
Sync the state of the queue and sink after deinterleave with
the parent state instead of just setting them to READY. That
way we potentially go to PAUSED state a bit earlier already
and prevent a potential race condition that could cause buffers
to arrive in the new elements in READY state already (which would
fail).

(WebCore::AudioFileReader::plugDeinterleave):
Handle multiple decodebin source pads by ignoring all following
ones just in case there are multiple for whatever reason.

(WebCore::AudioFileReader::decodeAudioForBusCreation):
Catch errors from going to PAUSED state early. We might not
get a error message at all if we're unlucky.

(WebCore::AudioFileReader::plugDeinterleave):
(WebCore::AudioFileReader::createBus):
(WebCore::AudioFileReader::handleSample):
Downmix to mono if required instead of just using the front
left channel and claiming it is mono. Downmixing from stereo
to mono will mix both channels instead of just taking the left.

1:25 AM Changeset in webkit [176940] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Handle CLOCK_LOST and LATENCY messages
https://bugs.webkit.org/show_bug.cgi?id=139341

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
Handle CLOCK_LOST message by shortly going back to PAUSED state
and then to PLAYING again to let the pipeline select a new clock
for us.
This can happen if the stream that ends in a sink that provides
the current clock disappears, for example if the audio sink
provides the clock and the audio stream is disabled. It also
happens relatively often with HTTP adaptive streams when switching
between different variants of a stream.

Also handle the LATENCY message by triggering the default GStreamer
mechanism to update the latency. This can happen if the latency of
live elements changes, or for one reason or another a new live element
is added or removed from the pipeline.

1:23 AM Changeset in webkit [176939] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Use audio-filter property on GStreamer >= 1.4.2
https://bugs.webkit.org/show_bug.cgi?id=139360

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
Since 1.4.0 there is an audio-filter property we can use to place
the pitch-preserving filter at a more canonical position inside
the pipeline. Since 1.4.2 this property also handles all necessary
conversions for us.
This simplifies our sink code a bit because we don't have to create
a custom sink bin anymore.

1:22 AM Changeset in webkit [176938] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Add video/flv to the list of supported mimetypes
https://bugs.webkit.org/show_bug.cgi?id=139344

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Gustavo Noronha Silva.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::mimeTypeCache):
Add video/flv additional to video/x-flv to the list of supported
mimetypes. It's used on some websites, e.g.
http://www.jwplayer.com/html5/formats/

1:19 AM Changeset in webkit [176937] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Remove GStreamer 0.10 #ifdefs.
https://bugs.webkit.org/show_bug.cgi?id=138921

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::initializeGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered):
Remove GStreamer 0.10 #ifdefs, we depend on >= 1.0.3 at least.

1:18 AM Changeset in webkit [176936] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Add application/x-mpegurl to the list of supported mimetypes.
https://bugs.webkit.org/show_bug.cgi?id=139343

Patch by Sebastian Dröge <sebastian@centricular.com> on 2014-12-08
Reviewed by Gustavo Noronha Silva.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::mimeTypeCache):
It's an alternative mimetype for the already supported
application/vnd.apple.mpegurl (aka HLS) and adding it
allows all streams on http://www.jwplayer.com/html5/hls/
to be played.

1:15 AM Changeset in webkit [176935] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix build warning in WebKit2/UIProcess module.
https://bugs.webkit.org/show_bug.cgi?id=139386

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-12-08
Reviewed by Alexey Proskuryakov.

Fix build warning by removing unused parameter name from function

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):

Dec 7, 2014:

7:50 PM Changeset in webkit [176934] by yoon@igalia.com
  • 9 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Change the namespace of CoordinatedBackingStore and CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=139372

Reviewed by Gyuyoung Kim.

CoordinatedBackingStore and CoordinatedGraphicsScene should be declared in the WebKit namespace
instead of WebCore namespace.

  • UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
  • UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
  • UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:

(WebKit::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile):
(WebKit::CoordinatedBackingStore::rect):
(WebCore::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile): Deleted.
(WebCore::CoordinatedBackingStore::rect): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
  • UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h:

(WebKit::CoordinatedGraphicsScene::setViewBackgroundColor):
(WebKit::CoordinatedGraphicsScene::viewBackgroundColor):
(WebKit::CoordinatedGraphicsScene::layerByID):
(WebKit::CoordinatedGraphicsScene::rootLayer):
(WebCore::CoordinatedGraphicsScene::setViewBackgroundColor): Deleted.
(WebCore::CoordinatedGraphicsScene::viewBackgroundColor): Deleted.
(WebCore::CoordinatedGraphicsScene::layerByID): Deleted.
(WebCore::CoordinatedGraphicsScene::rootLayer): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:

(WebKit::CoordinatedLayerTreeHostProxy::coordinatedGraphicsScene):

  • UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h:

(WebKit::toImpl):
(WebKit::toAPI):
(toImpl): Deleted.
(toAPI): Deleted.

  • UIProcess/CoordinatedGraphics/WebView.h:
3:25 PM Changeset in webkit [176933] by akling@apple.com
  • 5 edits in trunk/Source

Use more PassRef in AtomicString.
<https://webkit.org/b/139319>

Reviewed by Antti Koivisto.

Make a pass over AtomicString and convert functions that return PassRefPtr
into returning RefPtr (where it may be null) and PassRef otherwise.
This allows the compiler to skip null checks in many places.

  • wtf/text/AtomicString.cpp:

(WTF::addToStringTable):
(WTF::AtomicString::add):
(WTF::AtomicString::addFromLiteralData):
(WTF::AtomicString::addSlowCase):

  • wtf/text/AtomicString.h:

(WTF::AtomicString::add):
(WTF::AtomicString::addWithStringTableProvider):

  • wtf/text/cf/AtomicStringCF.cpp:

(WTF::AtomicString::add):

2:25 PM Changeset in webkit [176932] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Remove the unused WTF_USE_GCC_COMPUTED_GOTO_WORKAROUND after r129453.
https://bugs.webkit.org/show_bug.cgi?id=139373

Reviewed by Sam Weinig.

  • interpreter/Interpreter.cpp:
2:00 PM Changeset in webkit [176931] by yoon@igalia.com
  • 2 edits in trunk/Source/WebCore

[TextureMapper] Normalize pattern transform for pattern compositing
https://bugs.webkit.org/show_bug.cgi?id=139374

Reviewed by Martin Robinson.

In CoordGfx/TexMapGL, pattern compositing (for background image) uses
the patternTransform shader uniform. However, current implementation
miscalculates its transform matrix. It uses simple rectToRect
transformationMatrix which produces unnormalized garbage term.
This causes unexpected behavior at the fragmentation stage in some
mobile GPUs.

It should calculate its scale based on tileSize and contentSize,
and its position based on tilePhase and contentSize.

No new tests because the bug only occurs on some mobile GPUs.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computePatternTransformIfNeeded):

12:05 PM Changeset in webkit [176930] by commit-queue@webkit.org
  • 6 edits
    4 adds
    2 deletes in trunk

[Soup][Curl] HTTP header values should be treated as latin1, not UTF-8
https://bugs.webkit.org/show_bug.cgi?id=128739

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-12-07
Reviewed by Martin Robinson.
Source/WebCore:

Removed UTF-8 conversion of HTTP header values (SOUP and CURL).
Removed unnecessary UTF-8 conversion of HTTP header names (SOUP).
Changed conversion of HTTP method from UTF-8 to ASCII (SOUP and CURL).
Added explicit UTF-8 conversion of Content-Disposition header to compute download suggested filename.

Test: http/tests/xmlhttprequest/response-special-characters.html

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::headerCallback): Removed header conversion.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::headerCallback): Ditto.
(WebCore::ResourceHandleManager::initializeHandle): Changed HTTP method conversion to ASCI.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateFromSoupMessageHeaders): Removed header conversion.
(WebCore::ResourceRequest::updateSoupMessage): Changed HTTP method conversion to ASCII.
(WebCore::ResourceRequest::toSoupMessage): Ditto.
(WebCore::ResourceRequest::updateFromSoupMessage):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::updateFromSoupMessageHeaders): Rmoved header conversion.
(WebCore::ResourceResponse::platformSuggestedFilename): Added explicit conversion of contentDisposition to UTF-8.

LayoutTests:

Tests that non ascii header & reason phrase values are correctly retrieved by the web application.
headers.php script sends a response that includes non ascii header value.
not-ascii-status.php sends a response that includes non ascii reason phrase.
Removed specific gtk/efl expectations as now aligned with regular expectation.

  • http/tests/xmlhttprequest/resources/headers.php: Added.
  • http/tests/xmlhttprequest/resources/not-ascii-status.php: Added.
  • http/tests/xmlhttprequest/response-special-characters-expected.txt: Added.
  • http/tests/xmlhttprequest/response-special-characters.html: Added.
  • platform/efl/http/tests/security/contentSecurityPolicy/source-list-parsing-nonascii-expected.txt: Removed.
  • platform/gtk/http/tests/security/contentSecurityPolicy/source-list-parsing-nonascii-expected.txt: Removed.
11:58 AM Changeset in webkit [176929] by yoon@igalia.com
  • 3 edits in trunk/Tools

Update style checker to deal with "const override"
https://bugs.webkit.org/show_bug.cgi?id=139371

Reviewed by Csaba Osztrogonác.

check-webkit-style shouldn't complain about an open brace to start a
line after a function definition with const override.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_braces):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_brace_at_begin_of_line):

11:24 AM Changeset in webkit [176928] by berto@igalia.com
  • 2 edits in trunk

[GTK] WebKit has a new required dependency on GnuTLS
https://bugs.webkit.org/show_bug.cgi?id=136158

Reviewed by Martin Robinson.

Detect if GnuTLS is installed and enable or disable subtle crypto
support accordingly.

  • Source/cmake/OptionsGTK.cmake:
10:57 AM Changeset in webkit [176927] by ap@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

fast/borders/mixed-border-style2.html has missing results on Mac Yosemite.

Looking at the bots, Yosemite results are the same as Mavericks, so moving the file.

  • platform/mac-mavericks/fast/borders/mixed-border-style2-expected.txt: Removed.
  • platform/mac/fast/borders/mixed-border-style2-expected.txt: Copied from LayoutTests/platform/mac-mavericks/fast/borders/mixed-border-style2-expected.txt.
10:53 AM Changeset in webkit [176926] by ap@apple.com
  • 2 edits
    1 delete in trunk/LayoutTests

Remove platform/mac-mavericks/TestExpectations file.

We don't need it, we should be using modifiers such as [ Mavericks ].

  1. platform/mac/editing/input/undo-grouping-on-text-insertion.html was already

skipped on all OS versions in platform/mac, so this skip did nothing.

  1. Moved css3/filters/backdrop expectation to platform/mac.
  2. css3/viewport-percentage-lengths tests are now fixed by a configuration change

on a bot.

  • platform/mac-mavericks/TestExpectations: Removed.
  • platform/mac/TestExpectations:
10:11 AM Changeset in webkit [176925] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Fix GObject DOM bindings API break tests after r176920
https://bugs.webkit.org/show_bug.cgi?id=139368

Reviewed by Gustavo Noronha Silva.

Remove the @version from the symbol name before comparing.

  • gtk/check-for-webkitdom-api-breaks:

(read_expected_api):

10:08 AM WebKitGTK/2.4.x edited by berto@igalia.com
(diff)
9:28 AM Changeset in webkit [176924] by mitz@apple.com
  • 34 edits in trunk/Source

Introduce and deploy a function that allocates and returns an instance of a soft-linked class
https://bugs.webkit.org/show_bug.cgi?id=139348

Reviewed by Anders Carlsson.

In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
avoiding the ambiguity.

Source/WebCore:

  • editing/mac/DataDetection.mm:

(WebCore::DataDetection::detectItemAroundHitTestResult):

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(-[WebMediaSessionHelper allocateVolumeView]):
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::createMix):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):

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

(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):

  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
expected class.

  • platform/graphics/mac/FontMac.mm:

(WebCore::showLetterpressedGlyphsWithAdvances):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::createQTMovie):
(WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):

  • platform/graphics/mac/PDFDocumentImageMac.mm:

(WebCore::PDFDocumentImage::createPDFDocument):

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(SOFT_LINK_CONSTANT):
(-[WebSpeechSynthesisWrapper speakUtterance:]):

  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager initializeOnMainThread]):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerController init]):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):

  • platform/mac/ContentFilterMac.mm:

(WebCore::ContentFilter::ContentFilter):

  • platform/mac/SoftLinking.h: Added alloc##className##instance().
  • platform/mac/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController setVideoElement:]):

  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::setupCaptureSession):

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::setupSession):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setupCaptureSession):

  • platform/network/ios/QuickLook.mm:

(WebCore::registerQLPreviewConverterIfNeeded):
(WebCore::QuickLookHandle::QuickLookHandle):

Source/WebKit/ios:

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider createLocationManager]):

Source/WebKit/mac:

  • WebView/WebActionMenuController.mm:

(-[WebActionMenuController _defaultMenuItemsForDataDetectableLink]):

Source/WebKit2:

  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

(-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
(-[WKAirPlayRoutePicker show:fromRect:]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[_WKVideoFileUploadItem displayImage]):

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::clone):

8:23 AM Changeset in webkit [176923] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Remove the option to automatically update the GObject DOM bindings symbols file
https://bugs.webkit.org/show_bug.cgi?id=139366

Reviewed by Martin Robinson.

It's currently broken, because symbols now need to be in a
specific order. Now that the symbols file only contains stable
API, it's not a problem to manually update it every time new API
is added.

  • gtk/check-for-webkitdom-api-breaks:

(read_expected_api):
(check_api):
(write_expected_api): Deleted.

8:19 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
8:11 AM Changeset in webkit [176922] by clopez@igalia.com
  • 2 edits
    4 adds in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Report and mark new failures.
  • platform/gtk/svg/animations/animate-marker-orienttype-1-expected.txt: Added. Rebaseline after r175525.
  • platform/gtk/svg/animations/animate-marker-orienttype-2-expected.txt: Added. Rebaseline after r175525.
  • platform/gtk/svg/animations/animate-marker-orienttype-3-expected.txt: Added. Rebaseline after r175525.
6:08 AM Changeset in webkit [176921] by Carlos Garcia Campos
  • 4 edits in trunk/Tools

[GTK] Use GMainLoopSource in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=138831

Reviewed by Sergio Villar Senin.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::platformInitialize):
(WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
(WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
(WTR::waitToDumpWatchdogTimerCallback): Deleted.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::notifyDone):
(WTR::TestController::platformRunUntil):
(WTR::cancelTimeout): Deleted.

5:40 AM Changeset in webkit [176920] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK] Add Since tags to GObject DOM bindings documentation
https://bugs.webkit.org/show_bug.cgi?id=139356

Reviewed by Gustavo Noronha Silva.

Now that we have a small stable API, and new symbols are added
manually, we can also add the version to the symbols file, that
the code generator can ue to add Since tags to the gtk-doc.

  • bindings/gobject/webkitdom.symbols: Add @2.8 to the new symbols

added for 2.8.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateConstants): Add Since tag to gtk-doc if there's a version
number for the symbol in the .symbols file.
(GenerateFunction): Ditto.
(ReadStableSymbols):

4:00 AM WebKitGTK/2.6.x edited by Ting-Wei Lan
(diff)
3:39 AM WebKitGTK/2.6.x edited by berto@igalia.com
(diff)
2:02 AM Changeset in webkit [176919] by Carlos Garcia Campos
  • 9 edits
    3 adds in trunk

[GTK] Missing API detected in GObject DOM bindings after r176630
https://bugs.webkit.org/show_bug.cgi?id=139201

Reviewed by Gustavo Noronha Silva.

.:

Change GENERATE_BINDINGS macro to receive a list of optional
additional dependencies, so that we can add more dependecies
without having to change the macro.

  • Source/cmake/WebKitMacros.cmake:

Source/WebCore:

Bring back WebKitDOMDeprecated and add custom versions of the
removed symbols as deprecated in favor of the new ones. Also add
the new ones as stable API.

  • CMakeLists.txt: Pass a list of additional dependencies to GENERATE_BINDINGS.
  • PlatformGTK.cmake: Ditto.
  • PlatformMac.cmake: Ditto.
  • bindings/gobject/WebKitDOMDeprecated.cpp: Added.

(webkit_dom_html_element_get_inner_html):
(webkit_dom_html_element_set_inner_html):
(webkit_dom_html_element_get_outer_html):
(webkit_dom_html_element_set_outer_html):

  • bindings/gobject/WebKitDOMDeprecated.h: Added.
  • bindings/gobject/WebKitDOMDeprecated.symbols: Added.
  • bindings/gobject/webkitdom.symbols:

Tools:

Handle deprecated symbols again when generating the GObject DOM
bindings documentation.

  • gtk/webkitdom.py:

(WebKitDOMDocGenerator):
(WebKitDOMDocGenerator.is_deprecated_symbol_file):
(WebKitDOMDocGenerator.generate):
(WebKitDOMDocGeneratorSections.init):
(WebKitDOMDocGeneratorSections._find_deprecated_symbols):
(WebKitDOMDocGeneratorSections.write_section):

1:17 AM Changeset in webkit [176918] by Csaba Osztrogonác
  • 2 edits
    2 adds in trunk/Tools

[EFL][jhbuild] Fix libsoup build with clang
https://bugs.webkit.org/show_bug.cgi?id=139088

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • efl/patches/soup-clang-warning-fix1.patch: Added.
  • efl/patches/soup-clang-warning-fix2.patch: Added.
1:15 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)

Dec 6, 2014:

3:52 PM Changeset in webkit [176917] by ap@apple.com
  • 2 edits in trunk/Tools

[Mac] DumpRenderTree sets storage directory incorrectly
https://bugs.webkit.org/show_bug.cgi?id=139347

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting):

Don't use user defaults to pass per-instance paths, as user defaults are shared
across all instances.

3:35 PM Changeset in webkit [176916] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebCore

URTBF after r176915.

DisplayRefreshMonitorClient is the parent class of GraphicsLayerUpdater
only if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is true, so override
is incorrect if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) is false.

That's why r176915 broke the build on non PLATFORM(COCOA) platforms,
such as GTK, EFL, Apple Windows.

Additionally displayRefreshFired is only used inside USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
guard, so there is no reason to define it for non COCOA platforms.

  • platform/graphics/GraphicsLayerUpdater.cpp:
  • platform/graphics/GraphicsLayerUpdater.h:
1:44 PM Changeset in webkit [176915] by andersca@apple.com
  • 33 edits in trunk/Source

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

Source/WebCore:

Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingStateFixedNode.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingStateOverflowScrollingNode.h:
  • page/scrolling/ScrollingStateStickyNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

(WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll): Deleted.

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
  • platform/graphics/GraphicsLayerUpdater.h:
  • platform/mac/ScrollbarThemeMac.h:

(WebCore::ScrollbarThemeMac::supportsControlTints): Deleted.
(WebCore::ScrollbarThemeMac::maxOverlapBetweenPages): Deleted.

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderSnapshottedPlugIn.h:

Source/WebKit2:

Add missing overrides and casts.

  • NetworkProcess/NetworkProcess.h:
  • Shared/Downloads/DownloadAuthenticationClient.h:

(WebKit::DownloadAuthenticationClient::refAuthenticationClient): Deleted.
(WebKit::DownloadAuthenticationClient::derefAuthenticationClient): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration copyWithZone:]):

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:

(WebKit::WebContentProcessMainDelegate::doPreInitializationWork): Deleted.
(WebKit::WebContentProcessMainDelegate::getConnectionIdentifier): Deleted.
(WebKit::WebContentProcessMainDelegate::getClientIdentifier): Deleted.
(WebKit::WebContentProcessMainDelegate::getClientProcessName): Deleted.

  • WebProcess/IconDatabase/WebIconDatabaseProxy.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebBackForwardListProxy.h:
  • WebProcess/WebPage/WebInspector.h:

(WebKit::WebInspector::didClose): Deleted.
(WebKit::WebInspector::didReceiveInvalidMessage): Deleted.

  • WebProcess/WebPage/WebInspectorUI.h:

(WebKit::WebInspectorUI::didClose): Deleted.
(WebKit::WebInspectorUI::didReceiveInvalidMessage): Deleted.

  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
  • WebProcess/WebProcess.h:
  • WebProcess/ios/WebVideoFullscreenManager.h:
1:43 PM Changeset in webkit [176914] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Only include TUCallSPI on Mac.

  • Platform/mac/MenuUtilities.mm:
1:27 PM Changeset in webkit [176913] by andersca@apple.com
  • 9 edits
    2 copies
    1 add in trunk/Source

Add a stubbed out version of WebStorageNamespaceProvider
https://bugs.webkit.org/show_bug.cgi?id=139213

Reviewed by Sam Weinig.

Source/WebKit:

  • Storage/WebStorageNamespaceProvider.cpp: Added.
  • Storage/WebStorageNamespaceProvider.h: Added.
  • WebKit.vcxproj/WebKit/WebKit.vcxproj:
  • WebKit.vcxproj/WebKit/WebKit.vcxproj.filters:
  • WebKit.xcodeproj/project.pbxproj:

Add new files.

Source/WebKit/mac:

  • WebCoreSupport/WebViewGroup.h:

(WebViewGroup::storageNamespaceProvider):

  • WebCoreSupport/WebViewGroup.mm:

(WebViewGroup::getOrCreate):
(WebViewGroup::WebViewGroup):
Give WebViewGroup a storage namespace provider.

1:23 PM Changeset in webkit [176912] by andersca@apple.com
  • 21 edits in trunk/Source

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

Source/WebCore:

Add a bunch of overrides since we're not disabling the "inconsistent missing override" warning in WebKit.

  • html/HTMLElement.h:
  • html/HTMLMediaElement.h:
  • html/track/VTTCue.h:
  • loader/FrameNetworkingContext.h:

(WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect): Deleted.

  • loader/cache/CachedImage.h:
  • page/SuspendableTimer.h:
  • platform/Scrollbar.h:
  • platform/graphics/InbandTextTrackPrivate.h:
  • rendering/RenderBlockFlow.h:

Source/WebKit/ios:

Cast the result of +alloc to the right type.

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider createLocationManager]):

  • WebCoreSupport/WebSelectionRect.m:

(+[WebSelectionRect selectionRect]):

Source/WebKit/mac:

Add missing overrides and missing casts.

  • Storage/WebDatabaseManagerClient.h:
  • Storage/WebStorageTrackerClient.h:
  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebInspectorClient.h:
  • WebView/WebDataSource.mm:

(-[WebDataSource _makeRepresentation]):

  • WebView/WebFrameView.mm:

(-[WebFrameView _makeDocumentViewForDataSource:]):

1:10 PM Changeset in webkit [176911] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Follow-up build fix.

  • Configurations/Base.xcconfig:
1:04 PM Changeset in webkit [176910] by andersca@apple.com
  • 11 edits in trunk/Source/WebCore

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

Disable the "inconsistent missing override" warning due to our use of macros in SVG where it's hard to
know whether we can add an override or not.

Also, cast return values of +alloc to the right type, and add some casts for vector iterator arithmetic.

  • Configurations/Base.xcconfig:
  • Modules/webdatabase/DatabaseBackendBase.cpp:

(WebCore::guidForOriginAndName):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):

  • editing/cocoa/HTMLConverter.mm:

(_shadowForShadowStyle):
(HTMLConverter::_addTableForElement):

  • platform/graphics/SVGGlyph.cpp:

(WebCore::isCompatibleArabicForm):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::createMix):

  • platform/graphics/mac/FontMac.mm:

(WebCore::showLetterpressedGlyphsWithAdvances):

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(-[WebSpeechSynthesisWrapper speakUtterance:]):

  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager initializeOnMainThread]):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::spannedRows):
(WebCore::RenderTableSection::spannedColumns):

1:04 PM Changeset in webkit [176909] by andersca@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

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

  • ftl/FTLJITCode.h:

Add missing overrides.

11:36 AM Changeset in webkit [176908] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Skipping tests due to regression in r176902.
<https://webkit.org/b/139014>

Not reviewed.

10:26 AM Changeset in webkit [176907] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Compile error, missing guard.
https://bugs.webkit.org/show_bug.cgi?id=139338

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-12-06
Reviewed by Alex Christensen.

There is missing a ENABLE(CSS_SELECTORS_LEVEL4) guard in CSSParser.cpp.

  • css/CSSParser.cpp:

(WebCore::CSSParser::realLex):

3:50 AM Changeset in webkit [176906] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk

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

the test case is failing in bots (Requested by anttik on
#webkit).

Reverted changeset:

"REGRESSION (173394): Support for webcam is broken"
https://bugs.webkit.org/show_bug.cgi?id=139313
http://trac.webkit.org/changeset/176905

2:39 AM Changeset in webkit [176905] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (173394): Support for webcam is broken
https://bugs.webkit.org/show_bug.cgi?id=139313

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):

Don't buffer when handling multipart/x-mixed-replace. Multiple calls to didReceiveResponseAsync break assumptions.

LayoutTests:

We had no coverage for actually rendering multipart content.

  • http/tests/multipart/multipart-image-expected.html: Added.
  • http/tests/multipart/multipart-image.html: Added.

Dec 5, 2014:

9:44 PM Changeset in webkit [176904] by Chris Fleizach
  • 10 edits
    3 adds in trunk

AX: I cannot activate links on the mobile version of news.google.com
https://bugs.webkit.org/show_bug.cgi?id=139330

Reviewed by Simon Fraser.

Source/WebCore:

This website only listens for touch events. VoiceOver normally dispatches click and mouse events,
so on iOS this falls and VoiceOver is not able to activate anything.

The solution here is to dispatch simulated touch down/up events.

Test: platform/ios-simulator/ios-accessibility/press-fires-touch-events.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchTouchEvent):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isDetachedFromParent):

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::dispatchSimulatedTouchEvent):

  • platform/ios/PlatformEventFactoryIOS.h:
  • platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):
(WebCore::PlatformEventFactory::createPlatformSimulatedTouchEvent):

Tools:

Implement press for iOS.

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::press):

LayoutTests:

  • platform/ios-simulator/ios-accessibility: Added.
  • platform/ios-simulator/ios-accessibility/press-fires-touch-events-expected.txt: Added.
  • platform/ios-simulator/ios-accessibility/press-fires-touch-events.html: Added.
9:14 PM Changeset in webkit [176903] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Directional single quotation marks are not rotated in vertical text
https://bugs.webkit.org/show_bug.cgi?id=138526

Source/WebCore:

Reviewed by Darin Adler.

In vertical text, directional single quotation marks are not rotated along with
the rest of the letters.

Test: fast/text/vertical-quotation-marks.html

  • platform/graphics/FontGlyphs.cpp:

(WebCore::shouldIgnoreRotation):

LayoutTests:

Compare vertical and horizontal renderings.

Reviewed by Darin Adler.

  • fast/text/vertical-quotation-marks-expected.html: Added.
  • fast/text/vertical-quotation-marks.html: Added.
9:09 PM Changeset in webkit [176902] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Implement parser for :lang pseudo class selector arguments that contain wildcard '*' subtags
https://bugs.webkit.org/show_bug.cgi?id=139014

Patch by Dhi Aurrahman <diorahman@rockybars.com> on 2014-12-05
Reviewed by Benjamin Poulain.

Source/WebCore:

Consider each language range in :lang() that consists of an asterisk
immediately followed by an identifier beginning with an ASCII hyphen
as a valid input for the selector as specified in [1].

[1] http://dev.w3.org/csswg/selectors4/#the-lang-pseudo

Test: fast/css/parsing-css-lang.html

  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:

(WebCore::CSSParser::realLex):

LayoutTests:

  • fast/css/css-selector-text-expected.txt: Updated for asterisk containing input.
  • fast/css/css-selector-text.html: Updated for asterisk containing input.
  • fast/css/parsing-css-lang-expected.txt: Added.
  • fast/css/parsing-css-lang.html: Added.
6:04 PM Changeset in webkit [176901] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Add a delegate method for didReceiveServerRedirectForProvisionalLoadForFrame.
https://bugs.webkit.org/show_bug.cgi?id=139325

Add delegate method webProcessPlugInBrowserContextController:didReceiveServerRedirectForProvisionalLoadForFrame: into
WKWebProcessPlugInLoadDelegate to listen to server side redirect in injected bundle.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2014-12-05
Reviewed by Dan Bernstein.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(didReceiveServerRedirectForProvisionalLoadForFrame):
(setUpPageLoaderClient):

5:29 PM Changeset in webkit [176900] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.2.5

New tag.

5:25 PM Changeset in webkit [176899] by Simon Fraser
  • 4 edits
    1 add in trunk

Programmatic scrolling and content changes are not always synchronized
https://bugs.webkit.org/show_bug.cgi?id=139245
rdar://problem/18833612

Reviewed by Anders Carlsson.

Manual test that tries to sync layout with programmatic scrolling.

  • ManualTests/programmatic-scroll-flicker.html: Added.

Source/WebCore:

For programmatic scrolls, AsyncScrollingCoordinator::requestScrollPositionUpdate()
calls updateScrollPositionAfterAsyncScroll(), then dispatches the requested
scroll position to the scrolling thread.

Once the scrolling thread commits, it calls back to the main thread via
scheduleUpdateScrollPositionAfterAsyncScroll(), which schedules a second
call to updateScrollPositionAfterAsyncScroll() on a timer. That's a problem,
because some other scroll may have happened in the meantime; when the timer
fires, it can sometimes restore a stale scroll position.

Fix by bailing early from scheduleUpdateScrollPositionAfterAsyncScroll()
for programmatic scrolls, since we know that requestScrollPositionUpdate()
already did the updateScrollPositionAfterAsyncScroll().

Test:

ManualTests/programmatic-scroll-flicker.html

  • page/FrameView.cpp:

(WebCore::FrameView::reset): nullptr.
(WebCore::FrameView::setScrollPosition): Ditto.
(WebCore::FrameView::setWasScrolledByUser): Ditto.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate): Use a local variable for
isProgrammaticScroll just to make sure we use the same value for the duration of this function.
(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll): Do nothing
if this is a programmatic scroll.

5:20 PM Changeset in webkit [176898] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/spi/mac/TUCallSPI.h:
5:09 PM Changeset in webkit [176897] by dbates@webkit.org
  • 2 edits in trunk/Tools

[iOS] Query -[WAKWindow screenScale] instead of using WKGetScreenScaleFactor()
https://bugs.webkit.org/show_bug.cgi?id=139326

Reviewed by Anders Carlsson.

Ask the window for its screen scale factor instead of calling WKGetScreenScaleFactor()
to query the OS for it. This approach will ensure DumpRenderTree takes the snapshot
using the same scale factor as used in WebKit.

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView):

5:09 PM Changeset in webkit [176896] by roger_fong@apple.com
  • 8 edits in trunk/Source

[Win] proj files copying over too many resources..
https://bugs.webkit.org/show_bug.cgi?id=139315.
<rdar://problem/19148278>

Reviewed by Brent Fulgham.

  • WebCore.vcxproj/WebCore.proj: Don't copy over bin32 build output.
  • WebKit.vcxproj/WebKit.proj: Only copy resource folders and WebKit.dll.
  • JavaScriptCore.vcxproj/JavaScriptCore.proj: Only copy resource folders and JavaScriptCore.dll.
  • WTF.vcxproj/WTF.proj: Only copy WTF.dll.
5:07 PM Changeset in webkit [176895] by timothy_horton@apple.com
  • 1 edit
    1 add in trunk/Source/WebCore

Use the system string for telephone number menu
https://bugs.webkit.org/show_bug.cgi?id=139324
<rdar://problem/18726471>

  • platform/spi/mac/TUCallSPI.h: Added.

Actually add the SPI header from the last commit.

5:01 PM Changeset in webkit [176894] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Use the system string for telephone number menu
https://bugs.webkit.org/show_bug.cgi?id=139324
<rdar://problem/18726471>

Reviewed by Anders Carlsson.

  • Platform/mac/MenuUtilities.mm:

(WebKit::menuItemTitleForTelephoneNumberGroup):
Make use of the SPI to retrieve the string if it exists.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/mac/TUCallSPI.h: Added.

Add an SPI header.

4:42 PM Changeset in webkit [176893] by Csaba Osztrogonác
  • 3 edits in trunk/Source/WebKit2

URTBF, EFL is happy now.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::createNonPersistent):

4:33 PM Changeset in webkit [176892] by andersca@apple.com
  • 85 edits in trunk/Source/WebKit/win

Get rid of config.h includes and include config.h in the prefix header instead
https://bugs.webkit.org/show_bug.cgi?id=139323

Reviewed by Brent Fulgham.

This is making it easier to share code between WebKit1 for Mac and WebKit1 for Windows.

  • AccessibleBase.cpp:
  • AccessibleDocument.cpp:
  • AccessibleImage.cpp:
  • AccessibleTextImpl.cpp:
  • CFDictionaryPropertyBag.cpp:
  • DOMCSSClasses.cpp:
  • DOMCoreClasses.cpp:
  • DOMEventsClasses.cpp:
  • DOMHTMLClasses.cpp:
  • DefaultDownloadDelegate.cpp:
  • DefaultPolicyDelegate.cpp:
  • ForEachCoClass.cpp:
  • FullscreenVideoController.cpp:
  • MarshallingHelpers.cpp:
  • MemoryStream.cpp:
  • WebActionPropertyBag.cpp:
  • WebArchive.cpp:
  • WebBackForwardList.cpp:
  • WebCache.cpp:
  • WebCoreStatistics.cpp:
  • WebCoreSupport/AcceleratedCompositingContext.cpp:
  • WebCoreSupport/EmbeddedWidget.cpp:
  • WebCoreSupport/WebChromeClient.cpp:
  • WebCoreSupport/WebContextMenuClient.cpp:
  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
  • WebCoreSupport/WebDragClient.cpp:
  • WebCoreSupport/WebEditorClient.cpp:
  • WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebCoreSupport/WebFrameNetworkingContext.cpp:
  • WebCoreSupport/WebGeolocationClient.cpp:
  • WebCoreSupport/WebInspectorClient.cpp:
  • WebCoreSupport/WebInspectorDelegate.cpp:
  • WebCoreSupport/WebPlatformStrategies.cpp:
  • WebCoreSupport/WebVisitedLinkStore.cpp:
  • WebDataSource.cpp:
  • WebDatabaseManager.cpp:
  • WebDocumentLoader.cpp:
  • WebDownload.cpp:
  • WebDownloadCFNet.cpp:
  • WebDownloadCurl.cpp:
  • WebDropSource.cpp:
  • WebElementPropertyBag.cpp:
  • WebError.cpp:
  • WebFrame.cpp:
  • WebFramePolicyListener.cpp:
  • WebGeolocationPolicyListener.cpp:
  • WebGeolocationPosition.cpp:
  • WebHTMLRepresentation.cpp:
  • WebHistory.cpp:
  • WebHistoryItem.cpp:
  • WebIconDatabase.cpp:
  • WebInspector.cpp:
  • WebJavaScriptCollector.cpp:
  • WebKitCOMAPI.cpp:
  • WebKitClassFactory.cpp:
  • WebKitDLL.cpp:
  • WebKitGraphics.cpp:
  • WebKitLogging.cpp:
  • WebKitPrefix.h:
  • WebKitStatistics.cpp:
  • WebKitSystemBits.cpp:
  • WebLocalizableStrings.cpp:
  • WebMutableURLRequest.cpp:
  • WebNavigationData.cpp:
  • WebNodeHighlight.cpp:
  • WebNotification.cpp:
  • WebNotificationCenter.cpp:
  • WebPreferences.cpp:
  • WebResource.cpp:
  • WebScriptObject.cpp:
  • WebScriptWorld.cpp:
  • WebSecurityOrigin.cpp:
  • WebSerializedJSValue.cpp:
  • WebTextRenderer.cpp:
  • WebURLAuthenticationChallenge.cpp:
  • WebURLAuthenticationChallengeSender.cpp:
  • WebURLAuthenticationChallengeSenderCFNet.cpp:
  • WebURLAuthenticationChallengeSenderCurl.cpp:
  • WebURLCredential.cpp:
  • WebURLProtectionSpace.cpp:
  • WebURLResponse.cpp:
  • WebUserContentURLPattern.cpp:
  • WebView.cpp:
  • WebWorkersPrivate.cpp:
4:31 PM Changeset in webkit [176891] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Gardening: one more build fix for GTK builds.

  • CMakeLists.txt:
4:29 PM Changeset in webkit [176890] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][FTL] Add the data layout to the module and fix the pass order.
https://bugs.webkit.org/show_bug.cgi?id=138748

Patch by Juergen Ributzka <juergen@apple.com> on 2014-12-05
Reviewed by Oliver Hunt.

This adds the data layout to the module, so it can be used by all
optimization passes in the LLVM optimizer pipeline. This also allows
FastISel to select more instructions, because less non-legal types are
generated.

Also fix the order of the alias analysis passes in the optimization
pipeline.

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

4:28 PM Changeset in webkit [176889] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

URTBF, remove duplicated entry due to parallel buildfixing.

  • CMakeLists.txt:
4:26 PM Changeset in webkit [176888] by bshafiei@apple.com
  • 5 edits in branches/safari-600.2-branch/Source

Versioning.

4:25 PM Changeset in webkit [176887] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

URTBF after r176849.

  • CMakeLists.txt: Added WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp.
4:20 PM Changeset in webkit [176886] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Gardening: another build fix for GTK builds.

  • CMakeLists.txt:
4:16 PM Changeset in webkit [176885] by andersca@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r176677): All tests crash on Windows
https://bugs.webkit.org/show_bug.cgi?id=139321

Reviewed by Alexey Proskuryakov.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):
Don't call CFRelease on the url while we have an outstanding pointer to its string,
and use the right number of bytes when allocating the testURL buffer.

4:10 PM Changeset in webkit [176884] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Gardening: more speculative build fix for GTK builds.

  • CMakeLists.txt:
3:59 PM Changeset in webkit [176883] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

If the action menu hit test times out, a menu with a single separator appears
https://bugs.webkit.org/show_bug.cgi?id=139320
<rdar://problem/19158331>

Reviewed by Beth Dakin.

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

(-[WKActionMenuController menuNeedsUpdate:]):
(-[WKActionMenuController _defaultMenuItems]):
Add a new "TimedOut" state, which we get into if the sync wait for
didPerformActionMenuHitTest times out. In this case, we'll drop the
separator item and give up on the menu. This way, the menu will never
have just a single separator item at the end of menuNeedsUpdate:.

3:56 PM Changeset in webkit [176882] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.2.4

New tag.

3:54 PM Changeset in webkit [176881] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebKit2

Gardening: speculative build fix for GTK builds.

  • CMakeLists.txt:
3:33 PM Changeset in webkit [176880] by dbates@webkit.org
  • 3 edits in trunk/Tools

[iOS] DumpRenderTree produces many reference test mismatches
https://bugs.webkit.org/show_bug.cgi?id=139314

Reviewed by Simon Fraser.

Fixes an issue where the scale factor used to render the snapshot taken by
DumpRenderTree may differ from the device scale factor. In particular, the
scale factor used to render a snapshot of a test may differ from the scale
factor used to render the snapshot of its expected result.

Currently DumpRenderTree uses SPI, -[UIView newSnapshotForRect], on iOS to
snapshot the UIWebBrowserView. This SPI always render using a scale factor
of one when the backing store for the LegacyTileLayer objects were out-of-
date regardless of the device scale factor. Instead we should use UIImage
and CALayer API to perform the snapshot with respect to the device scale
factor.

Additionally write iOS pixel dump support logic in terms of existing
DumpRenderTree abstractions so as to support generating and comparing
pixel dump checksums as well as make the iOS code more consistent with
the logic used by other ports.

  • DumpRenderTree/PixelDumpSupport.cpp:

(dumpWebViewAsPixelsAndCompareWithExpected): Removed !PLATFORM(IOS)-guard.

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(BitmapContext::createFromUIImage): Added.
(BitmapContext::pixelData): Added.
(BitmapContext::BitmapContext): Added.
(computeMD5HashStringForBitmapContext): Added.
(dumpBitmap): Added.
(createBitmapContextFromWebView): Moved logic from dumpWebViewAsPixelsAndCompareWithExpected() to here.
(dumpWebViewAsPixelsAndCompareWithExpected): Deleted.

3:25 PM Changeset in webkit [176879] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[MSE][Mac] Return absolute value of error code from CDMSessionMediaSourceAVFObjC::update().
https://bugs.webkit.org/show_bug.cgi?id=139316

Reviewed by Eric Carlson.

Similarly to our asynchronous error reporting, return the absolute value of the error code.

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

(WebCore::systemCodeForError):
(WebCore::CDMSessionMediaSourceAVFObjC::update):

3:11 PM Changeset in webkit [176878] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix build.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultDataStoreConfiguration):

3:01 PM Changeset in webkit [176877] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build on Windows.

  • page/SessionIDHash.h:
3:00 PM Changeset in webkit [176876] by andersca@apple.com
  • 7 edits in trunk

Give all web pages a website data store
https://bugs.webkit.org/show_bug.cgi?id=139317

Reviewed by Tim Horton.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
Set the website data store on the window.

  • UIProcess/WebContext.cpp:

(WebKit::websiteDataStoreConfiguration):
Helper function that will create the default website data store configuration for a context.

(WebKit::WebContext::WebContext):
Create a new, per-context data store.

(WebKit::WebContext::createWebPage):
If we don't have a data store filled in, use the default per-context one.

  • UIProcess/WebContext.h:
  • UIProcess/WebPageProxy.h:

Tools:

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate newPrivateWindow:]):
Don't release the controller - it's implicitly retained by the window.

2:43 PM Changeset in webkit [176875] by andersca@apple.com
  • 5 edits
    2 copies
    1 add in trunk/Source/WebKit2

Move the website data store code to a new file
https://bugs.webkit.org/show_bug.cgi?id=139312

Reviewed by Tim Horton.

It's weird to have all the website data code in the API class, so move it to a new file.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::WebsiteDataStore):
(API::WebsiteDataStore::isNonPersistent):
(API::generateNonPersistentSessionID): Deleted.

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: Copied from Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp.

(WebKit::generateNonPersistentSessionID):
(WebKit::WebsiteDataStore::createNonPersistent):
(WebKit::WebsiteDataStore::create):
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::~WebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.h: Copied from Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h.

(WebKit::WebsiteDataStore::isNonPersistent):
(WebKit::WebsiteDataStore::sessionID):

  • WebKit2.xcodeproj/project.pbxproj:
2:22 PM Changeset in webkit [176874] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Issue repaint at setUnavailablePluginIndicatorIsHidden() only when embedded object's indicator status changes.
https://bugs.webkit.org/show_bug.cgi?id=139311

Reviewed by Tim Horton.

Not testable.

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::setUnavailablePluginIndicatorIsHidden):

2:20 PM Changeset in webkit [176873] by akling@apple.com
  • 5 edits in trunk/Source

PassRef should deref on destruction if pointee was not moved.
<https://webkit.org/b/139309>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove calls to PassRef::dropRef() since it's no longer necessary to manually
notify PassRef that you didn't move the pointee.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):
(WebCore::RenderElement::setStyle):

  • style/StyleResolveTree.cpp:

(WebCore::Style::resolveTree):

Source/WTF:

Let PassRef become nullptr internally after having WTF::move()'d the pointee.
This means that PassRef is now essentially a PassRefPtr that can only be
constructed with a non-null pointee.

This should make it possible for all ::create()-style construction helpers to
return PassRef, removing a branch in each case.

  • wtf/PassRef.h:

(WTF::PassRef<T>::PassRef):
(WTF::PassRef<T>::~PassRef):
(WTF::PassRef<T>::get):
(WTF::PassRef<T>::ptr):
(WTF::PassRef<T>::leakRef):
(WTF::PassRef<T>::dropRef): Deleted.

2:13 PM Changeset in webkit [176872] by dbates@webkit.org
  • 2 edits in trunk/Tools

[iOS] DumpRenderTree fails to render every other test when pixel tests are on
https://bugs.webkit.org/show_bug.cgi?id=137581
<rdar://problem/18642906>

Reviewed by Simon Fraser.

Fixes an issue where the DumpRenderTree snapshot may reflect the rendered content
of the test that proceeded the currently running test.

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(dumpWebViewAsPixelsAndCompareWithExpected): Ensure that UIKit has performed a layout
of the UIWebBrowserView view. Also, remove unnecessary call to -[UIWebDocumentView layoutTilesNow]
as -[UIWebDocumentView newSnapshotWithRect] will layout the tiles.

2:11 PM Changeset in webkit [176871] by ggaren@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

2014-12-05 Geoffrey Garen <ggaren@apple.com>

Removed an unused function.

Reviewed by Michael Saboff.

Broken out from https://bugs.webkit.org/show_bug.cgi?id=139305.

  • parser/ParserArena.h:
1:29 PM Changeset in webkit [176870] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Keyboard input should be disabled in the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139219
<rdar://problem/19052381>

Reviewed by Anders Carlsson.

  • UIProcess/API/mac/WKView.mm:

(-[WKView performKeyEquivalent:]):
(-[WKView keyUp:]):
(-[WKView keyDown:]):
(-[WKView flagsChanged:]):
There are two implementations of each of these methods in this file.
Adjust the ones that the original patch missed.

1:25 PM Changeset in webkit [176869] by dburkart@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176820. rdar://problems/19147218

1:17 PM Changeset in webkit [176868] by dburkart@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merged r176812. rdar://problems/19140827

1:17 PM Changeset in webkit [176867] by dburkart@apple.com
  • 7 edits in branches/safari-600.3-branch/Source

Merged r176811. rdar://problems/19140827

1:16 PM Changeset in webkit [176866] by dburkart@apple.com
  • 12 edits in branches/safari-600.3-branch/Source

Merged r176810. rdar://problems/19140827

1:10 PM Changeset in webkit [176865] by dburkart@apple.com
  • 4 edits
    1 copy in branches/safari-600.3-branch

Merged r173566. rdar://problems/19150984

12:58 PM Changeset in webkit [176864] by benjamin@webkit.org
  • 4 edits
    42 adds in trunk

Fix style sharing with the "type" and "readonly" attributes
https://bugs.webkit.org/show_bug.cgi?id=139283

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-12-05
Reviewed by Antti Koivisto.

Source/WebCore:

There are two bugs adressed with this patch:
1) The attributes "type" and "readonly" where only handled correctly

for input elements. For everything else, they could incorrectly
be ignored for style sharing.

2) The handling of attributes was incorrect for selector lists, leading

to various bugs (incorrect style sharing in some cases, disabling
style sharing on valid cases).

For [1], the problem was that attribute checking had been limited to
StyleResolver::canShareStyleWithControl(). That function is for handling
the special states of input element. For any other element, the attributes
were simply ignored.

For [2], there were a bunch of small problems. First, containsUncommonAttributeSelector()
was not recursive, which caused it to ignored any nested selector list. This used to be
correct but since we have advanced selectors we can no longer assumed selectors are not nested.

A second issue was that any attribute in a selector list was causing us to fall back
to the slow case. Now that we have the fast :matches(), we really don't want that.

The function containsUncommonAttributeSelector() was transformed into a recursive function
tracking where we are in the selector.

At the entry point, we start with the flag "startsOnRightmostElement" set to true. The flag is then
updated on the stack of each recursive call.

For example, "webkit > is:matches(freaking > awesome)". We evalute "is" with the flag to true, then recurse
into evaluating "freaking > awesome" with the flag still set to true. When we evalute ">", the flag
is set to false to evaluate any following selectors.
After evaluating "freaking > awesome", we go back to our previous stack frame, and the flag
is back to true and we can continue evaluating with the curren top level state.

From some logging, I discovered that the attribute handling is way too aggressive.
This is not a regression and I cannot fix that easily so I left a fixme.

Tests: fast/css/data-attribute-style-sharing-1.html

fast/css/data-attribute-style-sharing-2.html
fast/css/data-attribute-style-sharing-3.html
fast/css/data-attribute-style-sharing-4.html
fast/css/data-attribute-style-sharing-5.html
fast/css/data-attribute-style-sharing-6.html
fast/css/data-attribute-style-sharing-7.html
fast/css/readonly-attribute-style-sharing-1.html
fast/css/readonly-attribute-style-sharing-2.html
fast/css/readonly-attribute-style-sharing-3.html
fast/css/readonly-attribute-style-sharing-4.html
fast/css/readonly-attribute-style-sharing-5.html
fast/css/readonly-attribute-style-sharing-6.html
fast/css/readonly-attribute-style-sharing-7.html
fast/css/type-attribute-style-sharing-1.html
fast/css/type-attribute-style-sharing-2.html
fast/css/type-attribute-style-sharing-3.html
fast/css/type-attribute-style-sharing-4.html
fast/css/type-attribute-style-sharing-5.html
fast/css/type-attribute-style-sharing-6.html
fast/css/type-attribute-style-sharing-7.html

  • css/RuleSet.cpp:

(WebCore::containsUncommonAttributeSelector):
(WebCore::RuleData::RuleData):
(WebCore::selectorListContainsAttributeSelector): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::canShareStyleWithElement):

LayoutTests:

  • fast/css/data-attribute-style-sharing-1-expected.html: Added.
  • fast/css/data-attribute-style-sharing-1.html: Added.
  • fast/css/data-attribute-style-sharing-2-expected.html: Added.
  • fast/css/data-attribute-style-sharing-2.html: Added.
  • fast/css/data-attribute-style-sharing-3-expected.html: Added.
  • fast/css/data-attribute-style-sharing-3.html: Added.
  • fast/css/data-attribute-style-sharing-4-expected.html: Added.
  • fast/css/data-attribute-style-sharing-4.html: Added.
  • fast/css/data-attribute-style-sharing-5-expected.html: Added.
  • fast/css/data-attribute-style-sharing-5.html: Added.
  • fast/css/data-attribute-style-sharing-6-expected.html: Added.
  • fast/css/data-attribute-style-sharing-6.html: Added.
  • fast/css/data-attribute-style-sharing-7-expected.html: Added.
  • fast/css/data-attribute-style-sharing-7.html: Added.
  • fast/css/readonly-attribute-style-sharing-1-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-1.html: Added.
  • fast/css/readonly-attribute-style-sharing-2-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-2.html: Added.
  • fast/css/readonly-attribute-style-sharing-3-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-3.html: Added.
  • fast/css/readonly-attribute-style-sharing-4-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-4.html: Added.
  • fast/css/readonly-attribute-style-sharing-5-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-5.html: Added.
  • fast/css/readonly-attribute-style-sharing-6-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-6.html: Added.
  • fast/css/readonly-attribute-style-sharing-7-expected.html: Added.
  • fast/css/readonly-attribute-style-sharing-7.html: Added.
  • fast/css/type-attribute-style-sharing-1-expected.html: Added.
  • fast/css/type-attribute-style-sharing-1.html: Added.
  • fast/css/type-attribute-style-sharing-2-expected.html: Added.
  • fast/css/type-attribute-style-sharing-2.html: Added.
  • fast/css/type-attribute-style-sharing-3-expected.html: Added.
  • fast/css/type-attribute-style-sharing-3.html: Added.
  • fast/css/type-attribute-style-sharing-4-expected.html: Added.
  • fast/css/type-attribute-style-sharing-4.html: Added.
  • fast/css/type-attribute-style-sharing-5-expected.html: Added.
  • fast/css/type-attribute-style-sharing-5.html: Added.
  • fast/css/type-attribute-style-sharing-6-expected.html: Added.
  • fast/css/type-attribute-style-sharing-6.html: Added.
  • fast/css/type-attribute-style-sharing-7-expected.html: Added.
  • fast/css/type-attribute-style-sharing-7.html: Added.
12:51 PM Changeset in webkit [176863] by jer.noble@apple.com
  • 9 edits in trunk

[WTF] MediaTime should support round-tripping from and to doubles.
https://bugs.webkit.org/show_bug.cgi?id=139248

Reviewed by Eric Carlson.

Source/WebCore:

Check whether the MediaTime's underlying data is floating point before converting
to a CMTime or QTTime.

  • platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:

(WebCore::toCMTime):

  • platform/graphics/mac/MediaTimeQTKit.mm:

(WebCore::toQTTime):

Source/WTF:

MediaTimes should be able to return precisely the same double value as was used
when the MediaTime was created, so long as that MediaTime was not modified in a
non-destructive way. This will allow API which accepts floating-point values to
return the exact same value when asked, but still be able to store that value
as a MediaTime.

  • wtf/MediaTime.cpp:

(WTF::MediaTime::createWithFloat): Added; store the floating-point value in a union.
(WTF::MediaTime::createWithDouble): Ditto.
(WTF::MediaTime::toFloat): If the value is a double, just return it.
(WTF::MediaTime::toDouble): Ditto.
(WTF::MediaTime::operator+): Special case when one or both sides are doubles.
(WTF::MediaTime::operator-): Ditto.
(WTF::MediaTime::operator*): Ditto.
(WTF::MediaTime::compare): Ditto.
(WTF::abs): Ditto.
(WTF::MediaTime::setTimeScale): Convert the MediaTime from a double.

Tools:

Add API tests for new features of MediaTime. Update the LLDB python provider to correctly display
the MediaTimes after this change.

  • TestWebKitAPI/Tests/WTF/MediaTime.cpp:

(WTF::operator<<):
(TestWebKitAPI::TEST):

  • lldb/lldb_webkit.py:

(WTFMediaTime_SummaryProvider):
(WTFMediaTimeProvider.timeValueAsDouble):
(WTFMediaTimeProvider.isIndefinite):
(WTFMediaTimeProvider):
(WTFMediaTimeProvider.hasDoubleValue):

12:48 PM Changeset in webkit [176862] by andersca@apple.com
  • 7 edits in trunk

Add a private browsing mode to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=139308

Reviewed by Sam Weinig.

Source/WebCore:

Use -1 instead of -2 for the deleted value.

  • page/SessionIDHash.h:

Tools:

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):
(-[BrowserAppDelegate newWindow:]):
(-[BrowserAppDelegate newPrivateWindow:]):

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK2BrowserWindowController.h:
  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController initWithConfiguration:]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]):

12:27 PM Changeset in webkit [176861] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move 'text-emphasis-style' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=139285

Reviewed by Sam Weinig.

Move 'text-emphasis-style' CSS property to the new StyleBuilder by
using custom code.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue): Deleted.
(WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue): Deleted.
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue): Deleted.
(WebCore::ApplyPropertyTextEmphasisStyle::createHandler): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle):
(WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle):
(WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):

11:47 AM Changeset in webkit [176860] by bshafiei@apple.com
  • 2 edits in tags/Safari-600.3.10.1/Source/WebCore

Merged r176855. rdar://problem/19159480

11:44 AM Changeset in webkit [176859] by bshafiei@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merged r176855. <rdar://problem/19159480>

11:43 AM Changeset in webkit [176858] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

In NetworkResourceLoader always bail out after abort()
https://bugs.webkit.org/show_bug.cgi?id=139299

Reviewed by Alexey Proskuryakov.

Invoking abort() may kill the current object. Take care to bail out after it.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):

Either make sure sendAbortingOnFailure() is called last in callbacks or the results is explicitly tested.

(WebKit::NetworkResourceLoader::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBufferMaybeAborting):

Rename and return a boolean to indicate if load should continue.

(WebKit::NetworkResourceLoader::sendBuffer): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
11:31 AM Changeset in webkit [176857] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] remove "enter optimized fullscreen" gesture
https://bugs.webkit.org/show_bug.cgi?id=139301

Reviewed by Jer Noble.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handleWrapperTouchStart): Remove gesture recognizer.

11:28 AM Changeset in webkit [176856] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Legacy WebKit should set deviceScaleFactor in _commonInitializationWithFrameName, not _initWithFrame
https://bugs.webkit.org/show_bug.cgi?id=139306
<rdar://problem/19157955>

Reviewed by Beth Dakin.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _initWithFrame:frameName:groupName:]):
Move setDeviceScaleFactor to the initialization path that is guaranteed to happen.

11:21 AM Changeset in webkit [176855] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

rdar://problem/19156353 Additional build-fixes needed.

Rubber-stamped by Tim Horton.

This is a bit unfortunate, but we need to always forward-declare this for now.

  • platform/spi/mac/QuickLookMacSPI.h:
11:10 AM Changeset in webkit [176854] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Don't use PLATFORM(IOS) in non-project headers.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _allowsAlternateFullscreen]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
10:48 AM Changeset in webkit [176853] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exceptions when attempting to show Content Flow
https://bugs.webkit.org/show_bug.cgi?id=139276

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-12-05
Reviewed by Brian Burg.

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
LegacyJavaScriptProfileObject no longer exists, these references should be removed.

  • UserInterface/Views/FolderizedTreeElement.js:

(WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
This sort function references "this" and needed to be bound.

10:46 AM Changeset in webkit [176852] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

[WinCairo] WTF project is missing a GStreamer source file.
https://bugs.webkit.org/show_bug.cgi?id=139296

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-12-05
Reviewed by Philippe Normand.

The WTF project file is missing a GStreamer source file,
causing a link error when compiling with GStreamer enabled.

  • WTF.vcxproj/WTF.vcxproj:
  • WTF.vcxproj/WTF.vcxproj.filters:
10:38 AM Changeset in webkit [176851] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.13-branch/Source

Versioning.

10:35 AM Changeset in webkit [176850] by bshafiei@apple.com
  • 1 copy in branches/safari-600.1.4.13-branch

New Branch.

10:30 AM Changeset in webkit [176849] by andersca@apple.com
  • 5 edits
    2 adds in trunk/Source/WebKit2

WKBundleCSSStyleDeclarationRef needs to be a real API::Object
https://bugs.webkit.org/show_bug.cgi?id=139291

Patch by Sam Weinig <sam@webkit.org> on 2014-12-05
Reviewed by Dan Bernstein.

Change WKBundleCSSStyleDeclarationRef from being a WebCore::CSSStyleDeclaration, to
being a real API::Object. WKRetain and WKRelease require this.

  • Shared/APIObject.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
  • WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp: Added.

(WebKit::domHandleCache):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::InjectedBundleCSSStyleDeclarationHandle):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::~InjectedBundleCSSStyleDeclarationHandle):

  • WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.h: Added.
  • WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:

(WebKit::InjectedBundlePageEditorClient::shouldApplyStyle):

10:23 AM Changeset in webkit [176848] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Oops, didn't mean to commit this.

  • Shared/API/Cocoa/WKFoundation.h:
10:20 AM Changeset in webkit [176847] by andersca@apple.com
  • 8 edits
    3 copies in trunk/Source/WebKit2

Add an API::WebsiteDataStore object and use it for _WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=139304

Reviewed by Tim Horton.

  • Shared/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):
Make _WKWebsiteDataStore a wrapper for API::WebsiteDataStore instead of API::Session.

  • UIProcess/API/APIWebsiteDataStore.cpp: Added.

(API::generateNonPersistentSessionID):
(API::WebsiteDataStore::defaultDataStore):
(API::WebsiteDataStore::createNonPersistentDataStore):
(API::WebsiteDataStore::WebsiteDataStore):
(API::WebsiteDataStore::~WebsiteDataStore):
(API::WebsiteDataStore::isNonPersistent):
Add new WebsiteDataStore implementation. Currently it only contains the WebCore Session ID, but more will be
added to it in upcoming commits.

  • UIProcess/API/APIWebsiteDataStore.h:

Add header.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: Added.

(API::WebsiteDataStore::defaultDataStoreConfiguration):
Platform specific file that returns the default data store configuration.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
Set the session ID from the website data store.

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(+[_WKWebsiteDataStore defaultDataStore]):
(+[_WKWebsiteDataStore nonPersistentDataStore]):
(-[_WKWebsiteDataStore dealloc]):
(-[_WKWebsiteDataStore isNonPersistent]):
(-[_WKWebsiteDataStore _apiObject]):
Update now that we wrap an API::WebsiteDataStore instead.

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h:

(WebKit::wrapper):
Update for API::Session -> API::WebsiteDataStore change.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

9:55 AM Changeset in webkit [176846] by ddkilzer@apple.com
  • 8 edits in trunk/Source

FeatureDefines.xcconfig: Workaround bug in Xcode 5.1.1 when defining ENABLE_WEB_REPLAY
<http://webkit.org/b/139286>

Reviewed by Daniel Bates.

  • Configurations/FeatureDefines.xcconfig: Switch back to using

PLATFORM_NAME to workaround a bug in Xcode 5.1.1 on 10.8.

9:33 AM Changeset in webkit [176845] by andersca@apple.com
  • 10 edits in trunk/Source/WebKit2

Make WebPageProxy hold on to a SessionID instead of an API:Session
https://bugs.webkit.org/show_bug.cgi?id=139302

Reviewed by Sam Weinig.

This is in preparation for adding API::WebsiteDataStore. Currently we have to keep the
Session ID and the WebsiteDataStore separate because we still need to support toggling private browsing.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetSession):

  • UIProcess/API/C/WKSessionRef.cpp:

(WKSessionCreate):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:

(+[_WKWebsiteDataStore nonPersistentDataStore]):

  • UIProcess/APISession.cpp:

(API::generateID):
(API::Session::Session):
(API::Session::createEphemeral):
(API::Session::legacyPrivateSession): Deleted.
(API::Session::create): Deleted.

  • UIProcess/APISession.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createWebPage):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setSessionID):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setSession): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::sessionID):

9:26 AM Changeset in webkit [176844] by bshafiei@apple.com
  • 5 edits in tags/Safari-600.3.10.1/Source

Versioning.

9:23 AM Changeset in webkit [176843] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.3.10.1

New tag.

8:34 AM Changeset in webkit [176842] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/win

Follow-up build fix.

  • WebCoreSupport/WebVisitedLinkStore.cpp:

(WebVisitedLinkStore::shared):

5:25 AM Changeset in webkit [176841] by eric.carlson@apple.com
  • 10 edits in trunk/Source

[iOS] allow host application to opt-out of alternate fullscreen pt. 2
https://bugs.webkit.org/show_bug.cgi?id=139227

Source/WebCore:

Reviewed by Jer Noble and Anders Carlsson

  • WebCore.exp.in: Export HTMLMediaSession::allowsAlternateFullscreen, change the signature of

WebVideoFullscreenInterfaceAVKit::setupFullscreen.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(-[WebVideoFullscreenController enterFullscreen:mode:]): Update for

WebVideoFullscreenInterfaceAVKit::setupFullscreen change.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add argument to setupFullscreen.
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Ditto.

Source/WebKit2:

Reviewed by Jer Noble and Anders Carlsson.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.h: Add bool param to setupFullscreenWithID.
  • UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: Ditto.
  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Ditto.

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Pass new parameter

to SetupFullscreenWithID.

2:29 AM Changeset in webkit [176840] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix build warning in WebCore/platform/graphics module
https://bugs.webkit.org/show_bug.cgi?id=139290

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-12-05
Reviewed by Carlos Garcia Campos.

Fix a build warning by removing parameter name from function.

No new tests, no behavior change.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::getFamilyNameStringFromFontDescriptionAndFamily):

12:11 AM Changeset in webkit [176839] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

GraphicsLayerTextureMapper: Rename parameter to be more clear
https://bugs.webkit.org/show_bug.cgi?id=139288

Patch by sungmin cho <sungmin17.cho@lge.com> on 2014-12-05
Reviewed by Martin Robinson.

Rename 'media' to 'platformLayer'.

No new tests, no change in functionality.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):

Dec 4, 2014:

11:46 PM Changeset in webkit [176838] by mrowe@apple.com
  • 3 edits in trunk/Source/WebCore

Fix pre-Yosemite builds.

The #ifs in two SPI wrapper headers were incorrect, resulting in code being included
prior to Yosemite that required Yosemite to compile.

  • platform/spi/mac/NSSharingServicePickerSPI.h:
  • platform/spi/mac/NSSharingServiceSPI.h:
10:58 PM Changeset in webkit [176837] by mrowe@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix after r176836.

Reviewed by Mark Lam.

  • runtime/VM.h:

(JSC::VM::controlFlowProfiler): Don't try to export an inline function.
Doing so results in a weak external symbol being generated.

9:58 PM Changeset in webkit [176836] by saambarati1@gmail.com
  • 47 edits
    4 adds in trunk/Source/JavaScriptCore

JavaScript Control Flow Profiler
https://bugs.webkit.org/show_bug.cgi?id=137785

Reviewed by Filip Pizlo.

This patch introduces a mechanism for JavaScriptCore to profile
which basic blocks have executed. This mechanism will then be
used by the Web Inspector to indicate which basic blocks
have and have not executed.

The profiling works by compiling in an op_profile_control_flow
at the start of every basic block. Then, whenever this op code
executes, we know that a particular basic block has executed.

When we tier up a CodeBlock that contains an op_profile_control_flow
that corresponds to an already executed basic block, we don't
have to emit code for that particular op_profile_control_flow
because the internal data structures used to keep track of
basic block locations has already recorded that the corresponding
op_profile_control_flow has executed.

  • CMakeLists.txt:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):

  • bytecode/Instruction.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addOpProfileControlFlowBytecodeOffset):
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitProfileControlFlow):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ConditionalNode::emitBytecode):
(JSC::IfElseNode::emitBytecode):
(JSC::WhileNode::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ContinueNode::emitBytecode):
(JSC::BreakNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::CaseClauseNode::emitBytecode):
(JSC::SwitchNode::emitBytecode):
(JSC::ThrowNode::emitBytecode):
(JSC::TryNode::emitBytecode):
(JSC::ProgramNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):

  • 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::basicBlockLocation):

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

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

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_control_flow):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_control_flow):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionFindTypeForExpression):
(functionReturnTypeFor):
(functionDumpBasicBlockExecutionRanges):

  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionExpr):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createFuncDeclStatement):
(JSC::ASTBuilder::endOffset):
(JSC::ASTBuilder::setStartOffset):

  • parser/NodeConstructors.h:

(JSC::Node::Node):

  • parser/Nodes.h:

(JSC::CaseClauseNode::setStartOffset):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseSwitchClauses):
(JSC::Parser<LexerType>::parseSwitchDefaultClause):
(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseIfStatement):
(JSC::Parser<LexerType>::parseExpression):
(JSC::Parser<LexerType>::parseConditionalExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createFunctionExpr):
(JSC::SyntaxChecker::createFuncDeclStatement):
(JSC::SyntaxChecker::createGetterOrSetterProperty):
(JSC::SyntaxChecker::operatorStackPop):

  • runtime/BasicBlockLocation.cpp: Added.

(JSC::BasicBlockLocation::BasicBlockLocation):
(JSC::BasicBlockLocation::insertGap):
(JSC::BasicBlockLocation::getExecutedRanges):
(JSC::BasicBlockLocation::dumpData):
(JSC::BasicBlockLocation::emitExecuteCode):

  • runtime/BasicBlockLocation.h: Added.

(JSC::BasicBlockLocation::startOffset):
(JSC::BasicBlockLocation::endOffset):
(JSC::BasicBlockLocation::setStartOffset):
(JSC::BasicBlockLocation::setEndOffset):
(JSC::BasicBlockLocation::hasExecuted):

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):

  • runtime/ControlFlowProfiler.cpp: Added.

(JSC::ControlFlowProfiler::~ControlFlowProfiler):
(JSC::ControlFlowProfiler::getBasicBlockLocation):
(JSC::ControlFlowProfiler::dumpData):
(JSC::ControlFlowProfiler::getBasicBlocksForSourceID):

  • runtime/ControlFlowProfiler.h: Added. This class is in

charge of generating BasicBlockLocations and also
providing an interface that the Web Inspector can use to ping
which basic blocks have executed based on the source id of a script.

(JSC::BasicBlockKey::BasicBlockKey):
(JSC::BasicBlockKey::isHashTableDeletedValue):
(JSC::BasicBlockKey::operator==):
(JSC::BasicBlockKey::hash):
(JSC::BasicBlockKeyHash::hash):
(JSC::BasicBlockKeyHash::equal):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/FunctionHasExecutedCache.cpp:

(JSC::FunctionHasExecutedCache::getUnexecutedFunctionRanges):

  • runtime/FunctionHasExecutedCache.h:
  • runtime/Options.h:
  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::logTypesForTypeLocation):
(JSC::TypeProfiler::typeInformationForExpressionAtOffset):
(JSC::TypeProfiler::findLocation):
(JSC::TypeProfiler::dumpTypeProfilerData):

  • runtime/TypeProfiler.h:

(JSC::TypeProfiler::functionHasExecutedCache): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::enableProfilerWithRespectToCount):
(JSC::disableProfilerWithRespectToCount):
(JSC::VM::enableTypeProfiler):
(JSC::VM::disableTypeProfiler):
(JSC::VM::enableControlFlowProfiler):
(JSC::VM::disableControlFlowProfiler):
(JSC::VM::dumpTypeProfilerData):

  • runtime/VM.h:

(JSC::VM::functionHasExecutedCache):
(JSC::VM::controlFlowProfiler):

9:31 PM Changeset in webkit [176835] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.11.1/Source/WTF

Merged r176832.

9:13 PM Changeset in webkit [176834] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.11.1/Source

Versioning.

9:10 PM Changeset in webkit [176833] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.11.1

New tag.

8:59 PM Changeset in webkit [176832] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r176683): RefCounter.h is installed outside SDKROOT

  • WTF.xcodeproj/project.pbxproj: Don't mark RefCounter.h as a

private header. WTF headers use a special build phase script to
be installed.

5:53 PM Changeset in webkit [176831] by dburkart@apple.com
  • 1 copy in tags/Safari-600.3.10

Tagging.

5:37 PM Changeset in webkit [176830] by ap@apple.com
  • 14 edits in trunk/Tools

Run http tests parallel
https://bugs.webkit.org/show_bug.cgi?id=138958

Reviewed by Daniel Bates.

Remove the concept of "locked shard". Now http tests are just like any other tests.
We start HTTP and WebSocket servers at the start if we need them, and terminate them
when done with all the tests (not when the last http test runs, which is unnecessarily
unpredictable).

This makes debug tests run in 8 minutes and 12 seconds on my Mac Pro. Without the
patch, they used to take over 15 minutes.

As part of the fix, we no longer pass the number of servers to Apache. I don't
think that these parameters did what we wanted them to do; Apache handles the load
just fine without them.

The change applies to all platforms. I fixed everything I could find on Mac, and
Ossy told me that he's been running http tests in parallel for a long time. If
there is increased instability for some ports, it will need to be fixed - there is
generally nothing special about http tests at this point, and most code is
cross-platform in WebKit2.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:

(LayoutTestRunner.init):
(LayoutTestRunner.run_tests):
(LayoutTestRunner.start_servers_with_lock):
(LayoutTestRunner._handle_started_test):
(Worker.handle):
(Sharder.init):
(Sharder.shard_tests):
(Sharder._shard_every_file):
(Sharder._shard_by_directory):
(LayoutTestRunner._handle_finished_test_list): Deleted.
(LayoutTestRunner._handle_finished_test_list.find): Deleted.
(Sharder._shard_in_two): Deleted.
(Sharder): Deleted.
(Sharder._resize_shards): Deleted.
(Sharder._resize_shards.divide_and_round_up): Deleted.
(Sharder._resize_shards.extract_and_flatten): Deleted.
(Sharder._resize_shards.split_at): Deleted.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:

(FakePrinter.print_workers_and_shards):
(LayoutTestRunnerTests.test_servers_started.start_http_server):
(LayoutTestRunnerTests.test_servers_started):
(SharderTests.get_shards):
(SharderTests.test_shard_by_dir):
(SharderTests.test_shard_every_file):
(SharderTests): Deleted.
(SharderTests.test_shard_in_two): Deleted.
(SharderTests.test_shard_in_two_has_no_locked_shards): Deleted.
(SharderTests.test_shard_in_two_has_no_unlocked_shards): Deleted.
(SharderTests.test_multiple_locked_shards): Deleted.

  • Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:

(ManagerTest.test_needs_servers.get_manager):
(ManagerTest.integration_test_needs_servers.get_manager):
(ManagerTest.test_look_for_new_crash_logs.get_manager):
(ManagerTest):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(_set_up_derived_options):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_batch_size):
(RunTest.test_max_locked_shards): Deleted.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init):

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:

(TestLayoutTestApacheHttpd.test_start_cmd):

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd.init):

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase.init):

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer.print_workers_and_shards):

  • Scripts/webkitpy/port/base.py:

(Port.default_child_processes):
(Port.to.start_http_server):
(Port.default_max_locked_shards): Deleted.

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase.make_port):
(PortTestCase.test_default_max_locked_shards): Deleted.

  • Scripts/webkitpy/port/test.py:

(TestPort.start_http_server):

5:23 PM Changeset in webkit [176829] by andersca@apple.com
  • 30 edits in trunk/Source/WebKit2

Add missing includes in preparation for making toAPI require that it's passed an API::Object
https://bugs.webkit.org/show_bug.cgi?id=139278

Reviewed by Tim Horton.

  • UIProcess/API/C/WKAuthenticationChallenge.cpp:
  • UIProcess/API/C/WKAuthenticationDecisionListener.cpp:
  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/API/C/WKDownload.cpp:
  • UIProcess/API/C/WKFrame.cpp:
  • UIProcess/API/C/WKGeolocationManager.cpp:
  • UIProcess/API/C/WKInspector.cpp:
  • UIProcess/API/C/WKPage.cpp:
  • UIProcess/GenericCallback.h:
  • UIProcess/Notifications/WebNotificationProvider.cpp:
  • UIProcess/WebContextConnectionClient.cpp:
  • UIProcess/WebContextInjectedBundleClient.cpp:
  • UIProcess/WebCookieManagerProxyClient.cpp:
  • UIProcess/WebDatabaseManagerProxyClient.cpp:
  • UIProcess/WebFindClient.cpp:
  • UIProcess/WebFormClient.cpp:
  • UIProcess/WebIconDatabaseClient.cpp:
  • UIProcess/WebPageContextMenuClient.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
  • WebProcess/InjectedBundle/InjectedBundleClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
5:06 PM Changeset in webkit [176828] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

printInternal(PrintStream& out, JSC::JITCode::JITType type) ends up dumping a literal %s
https://bugs.webkit.org/show_bug.cgi?id=139274

Reviewed by Geoffrey Garen.

  • jit/JITCode.cpp:

(WTF::printInternal):

5:06 PM Changeset in webkit [176827] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/win

Don't use NeverDestroyed with a RefCounted object.

  • WebCoreSupport/WebVisitedLinkStore.cpp:

(WebVisitedLinkStore::shared):

5:03 PM Changeset in webkit [176826] by andersca@apple.com
  • 6 edits in trunk/Source

Make API::String copy the underlying strings if needed, for thread safety
https://bugs.webkit.org/show_bug.cgi?id=139261

Reviewed by Sam Weinig.

Source/WebKit2:

  • Shared/API/c/WKString.cpp:

(WKStringCreateWithUTF8CString):
(WKStringCreateWithJSString):
(WKStringCopyJSString):
Move the implementations from API::String and directly into the API functions.

  • Shared/APIString.h:

Add a create overload that takes an rvalue reference. Call it from the create overload
that takes an lvalue reference, but explicitly copy the string.
We call isolatedCopy() again on the string in the rvalue reference overload, but that is a no-op
if the string can be sent to another thread. Add assertions in the String constructor that we can
send the string to another thread.

Source/WTF:

  • wtf/RefPtr.h:

(WTF::RefPtr<T>::leakRef):
Add a leakRef() to RefPtr so we don't have to go through PassRefPtr.

  • wtf/text/WTFString.cpp:

(WTF::String::isSafeToSendToAnotherThread):
Check if the string is empty before checking whether it's in an atomic string table.
It's safe to send empty strings to other threads even if they're in the atomic string table
since they will never be deallocated.

4:59 PM Changeset in webkit [176825] by ggaren@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Removed the concept of ParserArenaRefCounted
https://bugs.webkit.org/show_bug.cgi?id=139277

Reviewed by Oliver Hunt.

This is a step toward a parser speedup.

Now that we have a clear root node type for each parse tree, there's no
need to have a concept for "I might be refcounted or arena allocated".
Instead, we can just use unique_ptr to manage the tree as a whole.

  • API/JSScriptRef.cpp:

(parseScript):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createBuiltinExecutable): Updated for type change.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock): Use unique_ptr. No need to call
destroyData() explicitly: the unique_ptr destructor will do everything
we need, as Bjarne intended.

  • parser/NodeConstructors.h:

(JSC::ParserArenaRoot::ParserArenaRoot):
(JSC::ParserArenaRefCounted::ParserArenaRefCounted): Deleted.

  • parser/Nodes.cpp:

(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):
(JSC::ProgramNode::create): Deleted.
(JSC::EvalNode::create): Deleted.
(JSC::FunctionNode::create): Deleted. All special create semantics can
just go away now that we play by C++ constructor / destructor rules.

  • parser/Nodes.h:

(JSC::ParserArenaRoot::parserArena):
(JSC::ParserArenaRoot::~ParserArenaRoot): Just a normal class now, which
holds onto the whole parse tree by virtue of owning the arena in which
all the parsed nodes (except for itself) were allocated.

(JSC::ProgramNode::closedVariables):
(JSC::ParserArenaRefCounted::~ParserArenaRefCounted): Deleted.

(JSC::ScopeNode::destroyData): Deleted. No need to destroy anything
explicitly anymore -- we can just rely on destructors.

(JSC::ScopeNode::parserArena): Deleted.

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse):
(JSC::parse): unique_ptr all the things.

  • parser/ParserArena.cpp:

(JSC::ParserArena::reset):
(JSC::ParserArena::isEmpty):
(JSC::ParserArena::contains): Deleted.
(JSC::ParserArena::last): Deleted.
(JSC::ParserArena::removeLast): Deleted.
(JSC::ParserArena::derefWithArena): Deleted.

  • parser/ParserArena.h:

(JSC::ParserArena::swap): Much delete. Such wow.

  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/Completion.cpp:

(JSC::checkSyntax):

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax): unique_ptr all the things.

4:55 PM Changeset in webkit [176824] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r173188): Text inserted when trying to delete a word from the Twitter message box.
<https://webkit.org/b/139076>

Reviewed by Geoffrey Garen.

The StringImpl* -> Weak<JSString> cache used by the DOM bindings
had a bug where the key could become a stale pointer if the cached
JSString had its internal StringImpl atomicized.

If a new StringImpl was then later constructed at the exact same
address as the stale key, before the Weak<JSString> got booted out
of the string cache, we'd now have a situation where asking the
string cache for that key would return the old JSString.

Solve this by not allowing JSString::toExistingAtomicString() to
change the JSString's internal StringImpl unless it's resolving a
rope string. (The StringImpl nullity determines rope state.)

This means that calling toExistingAtomicString() may now have to
query the AtomicString table on each call rather than just once.
All clients of this API would be forced to do this regardless,
since they return value will be used to key into containers with
AtomicStringImpl* keys.

No test because this relies on malloc putting two StringImpls
at the same address at different points in time and we have no
mechanism to reliably test that.

  • runtime/JSString.h:

(JSC::JSString::toExistingAtomicString):

3:55 PM Changeset in webkit [176823] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2014-12-04 Geoffrey Garen <ggaren@apple.com>

Marked some final things final.

Reviewed by Andreas Kling.

  • parser/Nodes.h:
3:47 PM Changeset in webkit [176822] by ggaren@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

Split out FunctionNode from FunctionBodyNode
https://bugs.webkit.org/show_bug.cgi?id=139273

Reviewed by Andreas Kling.

This is step toward a parser speedup.

We used to use FunctionBodyNode for two different purposes:

(1) "I am the root function you are currently parsing";

(2) "I am a lazy record of a nested function, which you will parse later".

This made for awkward lifetime semantics and interfaces.

Now, case (1) is handled by FunctionBodyNode, and case (2) is handled by
a new node named FunctionNode.

Since case (1) no longer needs to handle being the root of the parse
tree, FunctionBodyNode can be a normal arena-allocated node.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock): Use FunctionNode instead of
FunctionBodyNode, since we are producing the root of the function parse
tree.

(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): Removed
some unused data, and default-initialized other data, which isn't filled
in meaningfully until recordParse() is called. (The previous values were
incorrect / meaningless, since the FunctionBodyNode didn't have
meaningful values in this case.)

  • bytecode/UnlinkedCodeBlock.h: Ditto.

(JSC::UnlinkedFunctionExecutable::forceUsesArguments): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator): Use FunctionNode instead of
FunctionBodyNode, since we are generating code starting at the root of
the parse tree.

(JSC::BytecodeGenerator::resolveCallee):
(JSC::BytecodeGenerator::addCallee):

  • bytecompiler/BytecodeGenerator.h: Ditto.
  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionBodyNode::emitBytecode):
(JSC::FunctionNode::emitBytecode): Moved the emitBytecode implementation
to FunctionNode, since we never generate code for FunctionBodyNode,
since it's just a placeholder in the AST.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createFunctionBody):
(JSC::ASTBuilder::setUsesArguments): Deleted. Updated for interface
changes.

  • parser/Nodes.cpp:

(JSC::FunctionBodyNode::FunctionBodyNode):
(JSC::FunctionBodyNode::finishParsing):
(JSC::FunctionBodyNode::setEndPosition):
(JSC::FunctionNode::FunctionNode):
(JSC::FunctionNode::create):
(JSC::FunctionNode::finishParsing):
(JSC::FunctionBodyNode::create): Deleted.

  • parser/Nodes.h:

(JSC::FunctionBodyNode::parameters):
(JSC::FunctionBodyNode::source):
(JSC::FunctionBodyNode::startStartOffset):
(JSC::FunctionBodyNode::isInStrictContext):
(JSC::FunctionNode::parameters):
(JSC::FunctionNode::ident):
(JSC::FunctionNode::functionMode):
(JSC::FunctionNode::startColumn):
(JSC::FunctionNode::endColumn):
(JSC::ScopeNode::setSource): Deleted.
(JSC::FunctionBodyNode::parameterCount): Deleted. Split out the differences
between FunctionNode and FunctionBodyNode.

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createClauseList):
(JSC::SyntaxChecker::setUsesArguments): Deleted. Removed setUsesArguments
since it wasn't used.

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::checkSyntax): Removed a branch that was always
false.

3:26 PM Changeset in webkit [176821] by dino@apple.com
  • 2 edits in trunk/LayoutTests

css3/viewport-percentage-lengths tests are flakey on WK1 Mavericks Debug
https://bugs.webkit.org/show_bug.cgi?id=139271

Marking as flakey.

  • platform/mac-mavericks/TestExpectations:
2:57 PM Changeset in webkit [176820] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

Clients disabling action menus sometimes still invoke action menu behaviors
https://bugs.webkit.org/show_bug.cgi?id=139270
-and corresponding-
rdar://problem/19147218

Reviewed by Tim Horton.

By default, we will keep a single item in the action menu up until the point where
_state == ActionMenuState::Ready. So by checking _state here, we are preventing
clients from opting out of our choice to wait. Ideally we would always still wait
for the Ready state, but this will get the best behavior in the mean time.

  • UIProcess/mac/WKActionMenuController.mm:

(-[WKActionMenuController _updateActionMenuItems]):

2:56 PM Changeset in webkit [176819] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network Timeline Filter Bar only has "All", missing Resource Type filters
https://bugs.webkit.org/show_bug.cgi?id=139268

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-12-04
Reviewed by Brian Burg.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.createColumnScopeBar):
Users of createColumnScopeBar pass a Map object now instead of a dictionary.
Iterate over the map appropriately.

2:48 PM Changeset in webkit [176818] by Antti Koivisto
  • 5 edits in trunk/Source/WebKit2

REGRESSION (r173468): Cannot step in WebInspector
https://bugs.webkit.org/show_bug.cgi?id=139260

Reviewed by Alexey Proskuryakov.

Inspector defers all loads and starts a nested runloop when it hits a breakpoint. When continuing it undefers the loads.
If the script execution was triggered from the didFinishLoading callback of the main resource then the main resource would
already be in the finished state in the network process side and setDefersLoading(false) message would end up restarting its load.
Since loads are not meant to restart the generated callbacks would assert or crash the web process when handled in the next
nested inspector runloop.

Fix by taking care that cleaned up NetworkResourceLoaders are always removed from the loader map of
the NetworkConnectionToWebProcess and so can't end up handling late messages.

No test, this requires JS debugger to trigger.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):

This is now the only way to remove resource loaders.
It is called from NetworkResourceLoader::cleanup only.

(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier):

Calling abort removes the resource loader (since it calls cleanup) so no need to do it explicitly anymore.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

We are guaranteed to be reffed by NetworkConnectionToWebProcess until cleanup so the explicit ref/deref can be removed.

(WebKit::NetworkResourceLoader::cleanup):

Call to NetworkConnectionToWebProcess::didCleanupResourceLoader to make the loader unreachable.

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::identifier):

2:20 PM Changeset in webkit [176817] by Brian Burg
  • 14 edits in trunk

Web Inspector: timeline probe records have inaccurate per-probe hit counts
https://bugs.webkit.org/show_bug.cgi?id=138976

Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:

Previously, the DebuggerAgent was responsible for assigning unique ids to samples.
However, this makes it impossible for the frontend's Timeline manager to associate
a Probe Sample timeline record with the corresponding probe sample data. The record
only included the probe batchId (misnamed as hitCount in ScriptDebugServer).

This patch moves both the batchId and sampleId counters into ScriptDebugServer, so
any client of ScriptDebugListener will get the correct sampleId for each sample.

  • inspector/ScriptDebugListener.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::ScriptDebugServer):
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe):
(Inspector::ScriptDebugServer::handleBreakpointHit):

  • inspector/ScriptDebugServer.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::InspectorDebuggerAgent):
(Inspector::InspectorDebuggerAgent::breakpointActionProbe):

  • inspector/agents/InspectorDebuggerAgent.h:

Source/WebCore:

Update the signature for breakpointActionProbe to take batchId and sampleId.
Covered by existing test inspector-protocol/debugger/didSampleProbe-multiple-probes.html.

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::breakpointActionProbe):

  • inspector/InspectorTimelineAgent.h:
  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createProbeSampleData):

  • inspector/TimelineRecordFactory.h:

LayoutTests:

Patch by Katie Madonna <madonnk@gmail.com>

Update test to also cover expected probe sampleId behavior.

  • inspector-protocol/debugger/didSampleProbe-multiple-probes-expected.txt:
  • inspector-protocol/debugger/didSampleProbe-multiple-probes.html:
2:01 PM Changeset in webkit [176816] by cavalcantii@gmail.com
  • 4 edits
    4 adds in trunk

Groove/inset/outset borders show solid if the color is black
https://bugs.webkit.org/show_bug.cgi?id=58608

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/borders/mixed-border-style2.html

This patch will lighten/darken the border side colors, handling
border decoration in a similar way as Firefox does.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::drawLineForBoxSide):
(WebCore::RenderObject::calculateBorderStyleColor):

  • rendering/RenderObject.h:

LayoutTests:

  • fast/borders/mixed-border-style2.html: Added.
  • platform/mac-mavericks/fast/borders/mixed-border-style2-expected.png: Added.
  • platform/mac-mavericks/fast/borders/mixed-border-style2-expected.txt: Added.
1:56 PM Changeset in webkit [176815] by Joseph Pecoraro
  • 4 edits in trunk

Web Inspector: LayoutTests/inspector tests fail in Production builds due to missing test resources
https://bugs.webkit.org/show_bug.cgi?id=138898

Reviewed by Mark Rowe.

Source/WebInspectorUI:

In Production builds, if FORCE_TOOL_INSTALL=YES is in the environment
we will copy all resources (for Tests) and still do the combine and
optimize phase for normal Production inspection resources.

  • Scripts/copy-user-interface-resources.pl:

LayoutTests:

  • platform/mac/TestExpectations:
1:49 PM Changeset in webkit [176814] by ap@apple.com
  • 6 edits in trunk/Tools

Don't lock perf tests in run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=139264

Reviewed by Daniel Bates.

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
  • Scripts/webkitpy/layout_tests/controllers/manager.py:
  • Scripts/webkitpy/layout_tests/models/test_input.py:
  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
1:48 PM Changeset in webkit [176813] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move 'webkit-aspect-ratio' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=139250

Reviewed by Sam Weinig.

Move 'aspect-ratio' CSS property to the new StyleBuilder by
using custom code.

No new tests, no behavior change.

  • css/CSSPropertyNames.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyAspectRatio::applyInheritValue): Deleted.
(WebCore::ApplyPropertyAspectRatio::applyInitialValue): Deleted.
(WebCore::ApplyPropertyAspectRatio::applyValue): Deleted.
(WebCore::ApplyPropertyAspectRatio::createHandler): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialWebkitAspectRatio):
(WebCore::StyleBuilderCustom::applyInheritWebkitAspectRatio):
(WebCore::StyleBuilderCustom::applyValueWebkitAspectRatio):

1:32 PM Changeset in webkit [176812] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Further fix the 32-bit build.

  • page/mac/TextIndicatorWindow.mm:

(WebCore::TextIndicatorWindow::setTextIndicator):

1:10 PM Changeset in webkit [176811] by timothy_horton@apple.com
  • 7 edits in trunk/Source

Fix the 32-bit build.

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]):

  • WebView/WebView.mm:

(-[WebView _setTextIndicator:fadeOut:animationCompletionHandler:]):

  • page/mac/TextIndicatorWindow.h:
  • page/mac/TextIndicatorWindow.mm:

(WebCore::TextIndicatorWindow::setTextIndicator):

11:58 AM Changeset in webkit [176810] by timothy_horton@apple.com
  • 12 edits in trunk/Source

TextIndicator::createWithSelectionInFrame does synchronous IPC in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139252
<rdar://problem/19140827>

Reviewed by Anders Carlsson.

It turns out contentsToScreen requires sync IPC in Mac WebKit2, which we
really don't want to be doing here (especially since the UI process will often
be sitting in waitForAndDispatchImmediately waiting for didPerformActionMenuHitTest).

Go back to keeping TextIndicator rects in "window" coordinates and do the conversion
in each of the WebKits instead of trying to share that code.

  • WebCore.exp.in:
  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::TextIndicator::TextIndicator):

  • page/TextIndicator.h:

(WebCore::TextIndicator::selectionRectInWindowCoordinates):
(WebCore::TextIndicator::textBoundingRectInWindowCoordinates):
(WebCore::TextIndicator::selectionRectInScreenCoordinates): Deleted.
(WebCore::TextIndicator::textBoundingRectInScreenCoordinates): Deleted.
Go back to keeping the rects in "window" coordinates.

  • page/mac/TextIndicatorWindow.h:
  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:]):
(WebCore::TextIndicatorWindow::setTextIndicator):
Let callers pass in the contentRect instead of trying to share the code
to compute it, since it needs to be different for legacy and modern WebKit.

  • WebView/WebView.mm:

(-[WebView _setTextIndicator:fadeOut:animationCompletionHandler:]):
Adjust to the WebCore changes.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):
(WebKit::FindController::drawRect):
Adjust to the WebCore changes.

11:57 AM Changeset in webkit [176809] by dburkart@apple.com
  • 4 edits in branches/safari-600.3-branch/Source

Merged r176803. rdar://problems/19034499

11:54 AM Changeset in webkit [176808] by dburkart@apple.com
  • 3 edits in branches/safari-600.3-branch/Source/WebCore

Merge r176682. rdar://problems/18903995

11:47 AM Changeset in webkit [176807] by dburkart@apple.com
  • 11 edits in branches/safari-600.3-branch/Source

Merge r176766. rdar://problems/19072083

11:39 AM Changeset in webkit [176806] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Simplify StorageManager callback functions
https://bugs.webkit.org/show_bug.cgi?id=139257

Reviewed by Antti Koivisto.

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::getOrigins):
(WebKit::StorageManager::getStorageDetailsByOrigin):
(WebKit::callCallbackFunction): Deleted.
(WebKit::StorageManager::getOriginsInternal): Deleted.
(WebKit::StorageManager::getStorageDetailsByOriginInternal): Deleted.

  • UIProcess/Storage/StorageManager.h:
  • UIProcess/WebKeyValueStorageManager.cpp:

(WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
(WebKit::didGetKeyValueStorageOrigins): Deleted.
(WebKit::didGetStorageDetailsByOrigin): Deleted.

11:22 AM Changeset in webkit [176805] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

Fix cast-align warning in StringImpl.h
https://bugs.webkit.org/show_bug.cgi?id=139222

Reviewed by Anders Carlsson.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::tailPointer):

11:21 AM Changeset in webkit [176804] by dburkart@apple.com
  • 24 edits in branches/safari-600.3-branch/Source

Merge r173235. rdar://problems/19072083

10:31 AM Changeset in webkit [176803] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Serialization of MapData object provides unsafe access to internal types
https://bugs.webkit.org/show_bug.cgi?id=138653

Patch by Oliver Hunt <oliver@apple.com> on 2014-12-04
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Converting these ASSERTs into RELEASE_ASSERTs, as it is now obvious
that despite trying hard to be safe in all cases it's simply to easy
to use an iterator in an unsafe state.

  • runtime/MapData.h:

(JSC::MapData::const_iterator::key):
(JSC::MapData::const_iterator::value):

Source/WebCore:

We now keep the value portion of the key/value pair in MapData as a
separate stack. This allows us to maintain the spec semantic of
"atomic" serialisation of the key/value pair without retaining the
use of a potentially invalid iterator.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

9:41 AM Changeset in webkit [176802] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

URTBF after r176794.

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::fileCreationTime):
(WebKit::fileModificationTime):

9:40 AM Changeset in webkit [176801] by dburkart@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebCore

Merge r176697. rdar://problems/19121822

9:18 AM Changeset in webkit [176800] by ap@apple.com
  • 2 edits in trunk/Tools

http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html fails unless certain other tests run before it
https://bugs.webkit.org/show_bug.cgi?id=139243

Reviewed by Anders Carlsson.

We didn't get WKPageLoaderClient calls in secondary windows, so we didn't have a
chance to allow untrusted certificates.

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::createOtherPage):

Set up more client objects for secondary windows. We may be able to share some of the
code with main view creation function, but it's not exactly the same (notably, we
do not focus a secondary window when it's done loading).

9:11 AM Changeset in webkit [176799] by dburkart@apple.com
  • 11 edits in branches/safari-600.3-branch/Source

Rollout r176766. rdar://problems/19072083

9:05 AM Changeset in webkit [176798] by stavila@adobe.com
  • 32 edits
    6 adds in trunk/Source/WebCore

[SVG Masking] Add support for referencing <mask> elements from -webkit-mask-image
https://bugs.webkit.org/show_bug.cgi?id=139092

Reviewed by Simon Fraser.

This patch improves the -webkit-mask-image property by allowing it to reference
a <mask> element defined in an inline or external SVG document.
Up until now, each image to be used as a mask consisted of a FillLayer object
whose m_image member represented the mask. Now, in order to accomodate
<mask> elements referenced by a fragment identifier (e.g. file.svg#mask1)
a new class was created (MaskImageOperation) and added as a member of the
FillLayer. As such, from now on, all FillLayer objects used for masking will
store the masking information in this new member.
When parsing the -webkit-mask-image property (or the -webkit-mask shorthand)
a new MaskImageOperation object is created for each image. If the value represents
an external URL, a pending SVG document will be created which will be loaded
during the phase that loads the pending resources. When the download is complete,
the MaskImageOperation is notified by the CachedSVGDocument class and checks if
the received download is a valid SVG and the requested fragment identifier
actually exists and identifies a <mask> element. If it does, that element's
renderer (of type RenderSVGResourceMasker) will be used when painting the mask layers.
Otherwise, the MaskImageOperation class will use the already downloaded data
buffer to create a CachedImage from it and use that instead, basically emulating
the previous behavior, when only images were accepted. This ensures that all existing
behavior, like painting entire SVGs, painting normal images (e.g. PNG/JPG), painting
generated images (e.g. linear-gradient) works as it did before.

No new tests required, this patch doesn't change any current functionality.
It only adds support for referencing <mask> elements for the -webkit-mask-image
property. This is sub-part 1 of the bigger patch https://bugs.webkit.org/show_bug.cgi?id=129682.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSValue.cpp:

(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isWebKitCSSResourceValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::createMaskImageOperations):

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::maskImagesWithPendingSVGDocuments):

  • css/WebKitCSSResourceValue.cpp: Added.

(WebCore::WebKitCSSResourceValue::WebKitCSSResourceValue):
(WebCore::WebKitCSSResourceValue::customCSSText):
(WebCore::WebKitCSSResourceValue::isCSSValueNone):

  • css/WebKitCSSResourceValue.h: Added.

(WebCore::WebKitCSSResourceValue::create):
(WebCore::WebKitCSSResourceValue::innerValue):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::addCachedResource):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::CachedSVGDocument):
(WebCore::CachedSVGDocument::finishLoading):

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::load):

  • loader/cache/CachedSVGDocumentReference.h:
  • page/FrameView.cpp:

(WebCore::FrameView::isSVGDocument):

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::createPageFromBuffer):

  • page/Page.h:
  • platform/ScrollView.h:

(WebCore::ScrollView::isSVGDocument):

  • platform/graphics/MaskImageOperation.cpp: Added.

(WebCore::MaskImageOperation::create):
(WebCore::MaskImageOperation::MaskImageOperation):
(WebCore::MaskImageOperation::~MaskImageOperation):
(WebCore::MaskImageOperation::isCSSValueNone):
(WebCore::MaskImageOperation::cssValue):
(WebCore::MaskImageOperation::isMaskLoaded):
(WebCore::MaskImageOperation::setRenderLayerImageClient):
(WebCore::MaskImageOperation::addRendererImageClient):
(WebCore::MaskImageOperation::removeRendererImageClient):
(WebCore::MaskImageOperation::getOrCreateCachedSVGDocumentReference):
(WebCore::MaskImageOperation::notifyFinished): This is the method that gets called when the document has finished
downloading and checks if it can find a valid <mask> element.
(WebCore::MaskImageOperation::drawMask):
(WebCore::MaskImageOperation::getSVGMasker):

  • platform/graphics/MaskImageOperation.h: Added.
  • rendering/RenderBoxModelObject.cpp: The BackgroundImageGeometry class was moved out of RenderBoxModelObject in

order to be used as a parameter for other methods. This was necessary to avoid having methods with very many parameters.
(WebCore::BackgroundImageGeometry::setNoRepeatX):
(WebCore::BackgroundImageGeometry::setNoRepeatY):
(WebCore::BackgroundImageGeometry::useFixedAttachment):
(WebCore::BackgroundImageGeometry::clip):
(WebCore::BackgroundImageGeometry::relativePhase):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase): Deleted.

  • rendering/RenderBoxModelObject.h:

(WebCore::BackgroundImageGeometry::BackgroundImageGeometry):
(WebCore::BackgroundImageGeometry::destOrigin):
(WebCore::BackgroundImageGeometry::setDestOrigin):
(WebCore::BackgroundImageGeometry::destRect):
(WebCore::BackgroundImageGeometry::setDestRect):
(WebCore::BackgroundImageGeometry::phase):
(WebCore::BackgroundImageGeometry::setPhase):
(WebCore::BackgroundImageGeometry::tileSize):
(WebCore::BackgroundImageGeometry::setTileSize):
(WebCore::BackgroundImageGeometry::spaceSize):
(WebCore::BackgroundImageGeometry::setSpaceSize):
(WebCore::BackgroundImageGeometry::setPhaseX):
(WebCore::BackgroundImageGeometry::setPhaseY):
(WebCore::BackgroundImageGeometry::setHasNonLocalGeometry):
(WebCore::BackgroundImageGeometry::hasNonLocalGeometry):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::BackgroundImageGeometry): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setHasNonLocalGeometry): Deleted.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::hasNonLocalGeometry): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerMaskImageInfo.cpp: Added.

(WebCore::RenderLayer::MaskImageInfo::layerToMaskMap): Returns a static map that links MaskImageInfo objects to RenderLayers.
(WebCore::RenderLayer::MaskImageInfo::getIfExists): Returns the MaskImageInfo associated with a specific RenderLayer.
(WebCore::RenderLayer::MaskImageInfo::get): Returns the MaskImageInfo associated with a specific RenderLayer (creates it if necessary).
(WebCore::RenderLayer::MaskImageInfo::remove): Removes the MaskImageInfo associated with a specific RenderLayer.
(WebCore::RenderLayer::MaskImageInfo::MaskImageInfo):
(WebCore::RenderLayer::MaskImageInfo::~MaskImageInfo):
(WebCore::RenderLayer::MaskImageInfo::notifyFinished): Gets called when the SVG document finished loading, triggers repaint.
(WebCore::RenderLayer::MaskImageInfo::imageChanged): Gets called when the image object changed, triggers repaint.
(WebCore::RenderLayer::MaskImageInfo::updateMaskImageClients): Goes through all mask layers and sets image/SVG clients.
Updates list of internal and external SVG references.
(WebCore::RenderLayer::MaskImageInfo::removeMaskImageClients): Removes all image/SVG clients and clears lists of internal and external SVG references.

  • rendering/RenderLayerMaskImageInfo.h: Added.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderSVGResourceMasker):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator==):
(WebCore::FillLayer::cullEmptyLayers):
(WebCore::FillLayer::hasNonEmptyMaskImage):
(WebCore::FillLayer::imagesAreLoaded):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::maskImage):
(WebCore::FillLayer::imageOrMaskImage):
(WebCore::FillLayer::setMaskImage):
(WebCore::FillLayer::clearMaskImage):
(WebCore::FillLayer::hasMaskImage):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applySVGMask):
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawMaskForRenderer):

  • rendering/svg/RenderSVGResourceMasker.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::createElementRenderer):
(WebCore::SVGMaskElement::addClientRenderLayer):
(WebCore::SVGMaskElement::removeClientRenderLayer):

  • svg/SVGMaskElement.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::setCachedDocument):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

8:36 AM Changeset in webkit [176797] by dburkart@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r176777. rdar://problems/19115662

8:35 AM Changeset in webkit [176796] by dburkart@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit/mac

Merged r176775. rdar://problems/19115662

8:35 AM Changeset in webkit [176795] by dburkart@apple.com
  • 11 edits in branches/safari-600.3-branch/Source

Merged r176766. rdar://problems/19072083

8:35 AM Changeset in webkit [176794] by andersca@apple.com
  • 7 edits in trunk/Source/WebKit2

Add a way to delete local storage origins modified after a given date
https://bugs.webkit.org/show_bug.cgi?id=139249

Reviewed by Tim Horton.

Also change LocalStorageDatabaseTracker to hold on to WTF::Optional time_t values
instead of treating missing values as zero.

  • UIProcess/LocalStorageDetails.h:
  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::fileCreationTime):
(WebKit::fileModificationTime):
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::details):

  • UIProcess/Storage/LocalStorageDatabaseTracker.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):

  • UIProcess/Storage/StorageManager.h:
  • UIProcess/WebKeyValueStorageManager.cpp:

(WebKit::didGetStorageDetailsByOrigin):

8:35 AM Changeset in webkit [176793] by dburkart@apple.com
  • 6 edits in branches/safari-600.3-branch/Source

Merged r176763. rdar://problems/19115662

7:54 AM Changeset in webkit [176792] by dburkart@apple.com
  • 18 edits in branches/safari-600.3-branch/Source

Merge r176753. rdar://problems/19052381

7:42 AM Changeset in webkit [176791] by dburkart@apple.com
  • 2 edits in branches/safari-600.3-branch/Source/WebKit2

Merged r176707. rdar://problems/19037590

6:09 AM Changeset in webkit [176790] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

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

Broke the non Mac-WK2 builds (Requested by stavila on
#webkit).

Reverted changeset:

"Remove isSpecifiedFont boolean from FontDescription"
https://bugs.webkit.org/show_bug.cgi?id=139233
http://trac.webkit.org/changeset/176789

3:50 AM Changeset in webkit [176789] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Remove isSpecifiedFont boolean from FontDescription
https://bugs.webkit.org/show_bug.cgi?id=139233

Reviewed by Andreas Kling.

It is barely used.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInheritFontFamily):
(WebCore::StyleBuilderCustom::applyValueFontFamily):

  • platform/graphics/FontDescription.cpp:

(WebCore::genericFamiliesSet):
(WebCore::FontDescription::hasGenericFirstFamily):

Add a function to test for generic families.

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::FontDescription):
(WebCore::FontDescription::setTextRenderingMode):
(WebCore::FontDescription::operator==):
(WebCore::FontDescription::isSpecifiedFont): Deleted.
(WebCore::FontDescription::setIsSpecifiedFont): Deleted.

  • rendering/RenderText.cpp:

(WebCore::RenderText::computeUseBackslashAsYenSymbol):

This is the only client.
Figure out the equivalent information dynamically if needed.

2:18 AM Changeset in webkit [176788] by evab.u-szeged@partner.samsung.com
  • 2 edits in trunk/LayoutTests

[EFL][WebGL] Remove junk webgl layout tests from TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=139253

Reviewed by Gyuyoung Kim.

  • platform/efl/TestExpectations:
2:10 AM Changeset in webkit [176787] by berto@igalia.com
  • 2 edits in trunk

can not find cairo-gl.h when build webkit with gtk on ubuntu 14.04
https://bugs.webkit.org/show_bug.cgi?id=136576

Reviewed by Carlos Garcia Campos.

CMake should complain if Accelerated 2D Canvas is explicitly
enabled but cairo-gl is not found.

  • Source/cmake/OptionsGTK.cmake:
1:23 AM Changeset in webkit [176786] by pmolnar.u-szeged@partner.samsung.com
  • 5 edits in trunk/Source/WebKit2

[EFL][WK2] Add ewk API to allow accepting a specific TLS certificate for a specific host
https://bugs.webkit.org/show_bug.cgi?id=131160

Reviewed by Gyuyoung Kim.

  • UIProcess/API/efl/ewk_context.cpp:

(EwkContext::allowSpecificHTTPSCertificateForHost):
(ewk_context_tls_certificate_for_host_allow):

  • UIProcess/API/efl/ewk_context.h:
  • UIProcess/API/efl/ewk_context_private.h:
  • UIProcess/API/efl/tests/test_ewk2_ssl.cpp:
Note: See TracTimeline for information about the timeline view.