PDFPlugin: "Show Definition" context menu item should be implemented
https://bugs.webkit.org/show_bug.cgi?id=103389
<rdar://problem/12710751>

Reviewed by Dan Bernstein.

Call existing dictionary popup code when the context menu "Show Definition" item is selected.

* WebProcess/Plugins/PDF/PDFPlugin.h:
(PDFPlugin): Add showDefinitionForAttributedString and convertFromPDFViewToRootView.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate showDefinitionForAttributedString:atPoint:]): Forward this call to PDFPlugin.
(WebKit::PDFPlugin::showDefinitionForAttributedString): Create a DictionaryPopupInfo with the necessary information.
Ask WebPageProxy to show the dictionary popup.
(WebKit::PDFPlugin::convertFromPDFViewToRootView): Convert a point from PDFLayerController space to the root view space.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add direct string->function code cache
https://bugs.webkit.org/show_bug.cgi?id=103764

Reviewed by Michael Saboff.

A fairly logically simple patch.  We now track the start of the
unique portion of a functions body, and use that as our key for
unlinked function code.  This allows us to cache identical code
in different contexts, leading to a small but consistent improvement
on the benchmarks we track.

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedFunctionExecutable::functionStartOffset):
(UnlinkedFunctionExecutable):
* parser/ASTBuilder.h:
(ASTBuilder):
(JSC::ASTBuilder::setFunctionStart):
* parser/Nodes.cpp:
* parser/Nodes.h:
(JSC::FunctionBodyNode::setFunctionStart):
(JSC::FunctionBodyNode::functionStart):
(FunctionBodyNode):
* parser/Parser.cpp:
(JSC::::parseFunctionInfo):
* parser/Parser.h:
(JSC::Parser::findCachedFunctionInfo):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::setFunctionStart):
* runtime/CodeCache.cpp:
(JSC::CodeCache::generateFunctionCodeBlock):
(JSC::CodeCache::getFunctionCodeBlock):
(JSC::CodeCache::usedFunctionCode):
* runtime/CodeCache.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136261 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Animation updates fail when using a canvas as a CSS backround-image style with -webkit-canvas
https://bugs.webkit.org/show_bug.cgi?id=103643

Reviewed by Stephen White.

.:

New test to verify that elements using a canvas as a style image
source are redrawn when the canvas is animated.  Added as a manual test
because the bug was not reproducible in DumpRenderTree.

* ManualTests/animated-canvas-as-background.html: Added.

Source/WebCore:

CanvasRenderingContext2D::didDraw was not propagating the change
notification to observers in the accelerated compositing case.
Problem fixed by adding observer notifications.

New manual test: animated-canvas-as-background.html

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::didDraw):
The observer notification was factored out into a separate method
so that it can be invoked directly for accelerated compositing.
(WebCore):
(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):
* html/HTMLCanvasElement.h:
(HTMLCanvasElement):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::didDraw):
Added observer notification call to trigger repainting of elements that
use this canvas for their style.


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