Currently, IDLParser.pm initializes global variables in a global scope,
which means that the global variables are initialized just once at the beginning.
On the other hand, implementing [Supplemental] IDL (bug 72138) requires a change
on generate-bindings.pl that initializes the global variables whenever a new IDLParser
object is created. Thus, this patch initializes the global variables during
the IDLParser object creation.

Currently, the stdout and stderr of the child processes of run-bindings-tests
are mixed (or even gone away) with the stdout and stderr of run-bindings-tests itself.
This is the problem of subprocess.call(), which does not synchronize the stdout and stderr
between a parent process and a child process. This patch replaces subprocess.call() with
subprocess.Popen() and synchronizes the stdout and stderr between them.
This patch also makes output messages of run-bindings-tests more readable.

With this patch, the output messages of run-bindings-tests look like as follows:

Currently, run-bindings-tests outputs the following error
(although it outputs "all tests passed!" in the end):

Testing the ObjC generator on TestObj.idl
gcc: WebCore/bindings/objc/PublicDOMInterfaces.h: No such file or directory
gcc: warning: '-x objective-c' after last input file has no effect
gcc: no input files

This is because CodeGeneratorObjC.pm assumes that the current working directory
is WebKit/Source/, but run-bindings-tests sets the current working directory to WebKit/.
Thus, this patch changes it to WebKit/Source/.

(WebCore::compareTreeOrder):
(WebCore::HTMLPropertiesCollection::create):
(WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::~HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::findPropetiesOfAnItem): Finds the properties of an item.
(WebCore::HTMLPropertiesCollection::length): Returns the number of elements in the properties collection.
(WebCore::HTMLPropertiesCollection::item): Returns the element with index 'index' from the collection. The items are sorted in tree order.
(WebCore::HTMLPropertiesCollection::names): Returns a DOMStringList with the property names of the elements in the collection with the order preserved but with duplicates removed.

Implemented by adding the primary key (i.e. unique key in the
object store) to the IndexDataKey (i.e. the composite key used
in the index. Previously, non-unique entries in the index were
stored with a unique (and hidden) sequenceNumber, so ordering was
not predictable by scripts (or per spec). The sequenceNumber
is now deprecated but still present in the LevelDB backing store
to avoid having to do a data migration.

(WebCore::onGStreamerWavparsePadAddedCallback): Function called
when the playback pipeline successfully parsed the audio source
into a WAV stream.
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
Configure the initial playback pipeline up to the WAV parser. The
audio sink is added only after the WAV parser was configured.
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
Reset the playback pipeline and delete it.
(WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady):
Method to add the audio sink to the pipeline and link it to the
WAV parser.
(WebCore::AudioDestinationGStreamer::start): Set pipeline to
PLAYING, at the first run it will trigger the WAV parser and hence
the audio-sink plugging.
(WebCore::AudioDestinationGStreamer::stop): Pause the pipeline.

platform/audio/gstreamer/AudioDestinationGStreamer.h:

platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: Added.

(getGStreamerMonoAudioCaps): Utility function to generate
GStreamer caps representing a single audio channel for a given
sample rate.
(webKitWebAudioGStreamerChannelPosition): Utility function to
convert AudioBus channel representations to GStreamer positional
audio channel values.
(webkit_web_audio_src_class_init): GObject configuration of the
GStreamer source element.
(webkit_web_audio_src_init): Initialization of the private data of
the element.
(webKitWebAudioSourceConstructed): Configure the GstBin elements
depending on the AudioBus layout.
(webKitWebAudioSourceFinalize): Clean up the GstBin and free private
data of the element.
(webKitWebAudioSourceSetProperty): GObject property setter.
(webKitWebAudioSourceGetProperty): GObject property getter.
(webKitWebAudioSourceLoop): GstTask used to pull data from the
AudioBus and push it as GstBuffers to the src pad of the element.
(webKitWebAudioSourceChangeState): Start or stop the above GstTask
depending on the asked state transition.

platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.h: Added.

platform/graphics/gstreamer/GRefPtrGStreamer.cpp: GstTask support in GRefPtr.

WKRef API pointers don't adopt the implementation pointers by default and the implementation pointers
stay alive after destroying the API pointers.
This patch adopts the implementation pointers correctly by using adoptWK that returns a WKRetainPtr
that will be around temporarily and correctly release the object.

We must make sure that the MainThreadInvoker object lives in the gui thread. There are a few
ways of doing that and this fix seems like the least intrusive one by simply pushing the
invoker to the gui thread if it's not there already.

At some point the plan was to allow for running qmake on sub-trees
of the sources, into the top level build directory, but this is no
longer possible, so no reason to keep the convenience function around.

According to section "4.7 Runtime script errors" of Web Workers spec "For shared
workers, if the error is still not handled afterwards, or if the error occurred
while handling a previous script error, the error may be reported to the user."

This patch creates a new subdirectory in the Chromium WebKit API to
house "platform" header files. As with the other Platform directories
in WebKit, the platform directory cannot depend on headers outside of
platform, but headers outside of platform can depend on platform.

This patch moves WebKitPlatformSupport and its dependencies into this
new directory and creates forwarding headers to easy migration for
embedders of this API. Over time, we will migrate more headers into
this folder, as appropriate.

[Chromium] Prevent DrawingBuffer instances from corrupting the active
texture state of the WebGL contexts. The DrawingBuffer now tracks the
state of texture unit 0, and the active texture unit, so that state can
be restored.​https://bugs.webkit.org/show_bug.cgi?id=73033

This patch adds a private AttributesMutationScope mechanism to CSSMutableStyleDeclaration (which uses
the RAII pattern similar to the public ChildListMutationScope). This manages the (sometimes conditional)
pre-change serialization of the style attribute (if an observer has requested oldValue), creation of
the mutation record, and dispatch if the declaration was actual affected.

The forwarding headers are generated by syncqt, and syncqt is run by qmake,
so we need sync.profile to live in the same directory as the project file
that will be touched when adding/removing API (api.pri in our case).

Since the WebKit2 APIs live in a separate static library, we have to
add the project file for WebKit2 as a dependency of the api.pri file
as well, so that any changes to the WebKit2 API will still trigger a
run of qmake (and then syncqt).

Lastly, we use the new QMAKE_SYNCQT_OUTDIR variable in Qt 5 to ensure
that the forwarding headers are still generated in the root build dir,
not in the Source dir along with the internal forwarding headers.

Expecting slots/methods to be implemented in QML isn't very idiomatic in
comparison with the alternative of having a signal. So we now use a signal
for handling navigation requests, and expose a 'request' object with relevant
metadata. There's also a settable property 'action' used to indicate whether
the navigation should be ignored or trigger a download.

The pattern signal with an object parameter that can keep the reply is common in QML,
and used for example for mouse signals.

(WTF::adoptGRef): Ensure this is called with non-floating GstObjects.
(WTF::GstElement): Replace gst_object_ref_sink with
gst_object_ref+gst_object_sink like advised in the GstObject documentation.
(WTF::GstPad): Ditto.

(WebCore::PageRuntimeAgent::PageRuntimeAgent): PageRuntimeAgent was moved into its own file.
(WebCore::PageRuntimeAgent::~PageRuntimeAgent):
(WebCore::PageRuntimeAgent::scriptStateForFrameId):
(WebCore::PageRuntimeAgent::getDefaultInspectedState):

(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent): WorkerRuntimeAgent was moved into its own file.
(WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::scriptStateForFrameId):
(WebCore::WorkerRuntimeAgent::getDefaultInspectedState):

The list of effects wasn't cleared when the FilterOperations were changed.

The sourceImage was going to be 0, because the m_sourceGraphicBuffer.release()

was also clearing the reference to m_sourceGraphicBuffer. Next time the build() method
was called m_graphicsBufferAttached was set to false, but the m_sourceGraphicBuffer was
not regenerated, because the size was not invalidated.

Split PagePolicyClient related code from QtWebPageProxy/ClientImpl. The new
QtWebPagePolicyClient registers itself with WKPageRef and it's owned by the
QQuickWebViewPrivate. This is a move to clean up QtWebPageProxy object.

QtPolicyInterface abstraction was not helping us as much as the separation of
the client code will. It was more useful when we had multiple WebViews.

This is a first iteration at supporting AUDIO failures in
garden-o-matic. We'll probably need to iterate a bit when we have a
real audio failure in the tree to play with. For example, we'll
probably want to add and <audio> element to the "Examine" view to hear
the differences, but that all can be done in a subsequent patch.

For some reason the Script functions on Windows sometimes return
E_PENDING even with a non-NULL DC, so we must handle that case.
Also, we should not use the screen DC to select font since this
refreshes the whole desktop, so I added a cached compatible DC.

Note that this doesn't reproduce with WebKit alone, it only reproduces
within Chrome, so we can't write a WebKit test for it. A chromium
browser test will be added once this change gets rolled in the
chromium DEPS file.

This replaces textTrackReadyStateChanged() because only LoadableTextTrack
needs to notify HTMLTrackElement of readyState changes (i.e.
textTrackReadyStateChanged() is no longer required of TextTrackClient).

html/HTMLTrackElement.h:

ReadyState enum and m_readyState member variable moved from TextTrack.

(WebCore::HTMLTrackElement::readyState):

New: readyState() getter.

html/HTMLTrackElement.idl:

Add readyState attribute and associated constants.

html/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::loadTimerFired): Set readyState on HTMLTrackElement.
(WebCore::LoadableTextTrack::cueLoadingStarted): Ditto.
(WebCore::LoadableTextTrack::cueLoadingCompleted): Move code to set readyState

This new code will be used in follow-up patches to replace the String::format("%.2f") usage in
platform/text/TextStream.cpp, and String::format("%.6lg") usage in svg/SVGPathStringBuilder.cpp.

The String::number(double) currently calls String::format("%.6lg") in trunk. In order to replace
this by a variant that properly rounds to six significant figures, JSC code could be refactored.
JSCs Number.toPrecision/toFixed uses wtf/dtoa/double-conversion which provides all features we need,
except truncating trailing zeros, needed to mimic the "g" format, which is either f or e but with
trailing zeros removed, producing shorter results. Changed the default signature to:

The default parameters for precison & flags exactly match the format of the string produced now, except that the result
is rounded according to the rounding mode / formatting mode and precision. This paves the way towards reliable results
in the d="" attribute dumps of SVG paths across platforms. The dtoa rounding code enforces a unique zero, resolving
all 0.0 vs. -0.0 issues currently seen on Windows, and some Gtk/Qt bots.

This patch needs a rebaseline of svg/dom/length-list-parser.html as we don't perfecly mimic the String::format() "lg" mode
result for exponentials, we used to return eg. "e-7" and now return "e-07" - the trailing zero truncation hasn't been
implemented for exponentials, as this really affects only this test and thus wasn't worth the trouble - in contrary the
trailing zero truncation is needed for thousands of other results in "f" notation, and thus needed to match the DRT results.

Here's a performance comparision using a JSC release build and some arbitary numbers:
Converting 123.456 using old approach took 95.527100ms. avg 0.000955ms/call.
Converting 123.456 using new approach took 28.126953ms. avg 0.000281ms/call.

Converting 123 using old approach took 85.411133ms. avg 0.000854ms/call.
Converting 123 using new approach took 24.190186ms. avg 0.000242ms/call.

Converting 0.1 using old approach took 92.622803ms. avg 0.000926ms/call.
Converting 0.1 using new approach took 23.317871ms. avg 0.000233ms/call.

Converting 1/i using old approach took 106.893066ms. avg 0.001069ms/call.
Converting 1/i using new approach took 27.164062ms. avg 0.000272ms/call.

For all numbers I've tested in RoundingSignificantFigures mode and 6 digit precision the speedup was at least 250%.

to make it possible to use them to generate strings that match the output from String::format("%6.lg"), while using our dtoas rounding facilities.

wtf/dtoa.h:

wtf/dtoa/utils.h: Expose new helper method, which allows us to truncate the result, before generating the output const char*.

(WTF::double_conversion::StringBuilder::SetPosition):

wtf/text/WTFString.cpp:

(WTF::String::number): Remove String::format("%6.lg") usage! Switch to rounding to six significant figures, while matching the output of String::format.

wtf/text/WTFString.h:

LayoutTests:

Rebaseline one test result, after the String::number(double) changes. Trailing zeros are no longer removed
in the exponential form of the string: e-07 is reported instead of e-7 now. It was decided to leave it as-is
and not introduce trailing zero removal for the exponential formatting, as it only affects this test.

Move most of the top-level code in Source/CMakeLists.txt to
CMakeLists.txt. This allows us to replace some INCLUDE() hacks with
proper ADD_SUBDIRECTORY() calls, and actually moves non-Source related
to a non-Source directory.

Change remaining scrollTop/Left/Width/Height, setScrollLeft/Top and
verticalScrollbarWidth, horizontalScrollbarHeight methods back to int as
scrolling will remain int based to line up with device pixels.

Added support to PluginLayerChromium and CCPluginLayerImpl for
using an IOSurface as the backing store for a plugin. Added minimal
ARB_texture_rectangle support to Extensions3D.h and a Chromium-
specific extension for binding an IOSurface to a texture.

These changes themselves do not have any effect. A follow-on
Chromium CL will make the switch to this new code path.

Tested manually both with and without the Chromium side changes;
Chromium's DumpRenderTree port does not support Core Animation
plugins. Ran video and Stage3D in Flash, and Unity 3D content, to
verify.

Rebaseline video-zoom-controls: it had already been
partially-rebaselined for WinXP, so the options were to remove those
baselines and let the test fail as expected, mark it as passing on
only XP, or rebaseline with what seem to be reasonable visual changes
(along with some extra noise in the render tree).

(get_function_line_ranges): Call get_function_line_ranges_for_python for files ending in .py
or that use python as their interpreter. Modified the code that extracts the interpreter to
ignore a leading "/usr/bin/env " in the interpreter line, as is common for our Python
scripts.
(get_function_line_ranges_for_python): Added. Does simple parsing of Python files to look
for class/def lines and generate ranges based on them.

Split PageLoadClient related code from QtWebPageProxy/ClientImpl. The new
QtWebPageLoadClient registers itself with WKPageRef and it's owned by the
QQuickWebViewPrivate. This is a move to clean up QtWebPageProxy object.

Split PageUIClient related code from QtWebPageProxy/ClientImpl. The new
QtWebPageUIClient registers itself with WKPageRef and it's owned by the
QQuickWebViewPrivate. This is a move to clean up QtWebPageProxy object.

(WTF::ParallelEnvironment::ParallelEnvironment):
(WTF::ParallelEnvironment::execute):
Deinline these to avoid exporting a lot of symbols.
These are non-trivial and called only once on a given object
so it doesn't seems to be worthwile to inline them.
Additionally fix a signed-unsigned comparison in the constructor.

wtf/ParallelJobsGeneric.h:

wtf/Platform.h:

Source/WebCore:

Covered by existing tests.

According to measurements on Mac and Linux it is a
considerable speedup for SVG on multicore.

Remove the ENABLE(PARALLEL_JOBS) guard. Fix the Windows build
by qualifying ParallelJobs with the WTF namespace (otherwise
MSVC believes it belongs to WebCore which is likely a compiler bug).

This is a follow up to the ​https://bugs.webkit.org/show_bug.cgi?id=63009.
I am now able to remove following InspectorController methods:
::startUserInitiatedProfiling,
::isRecordingUserInitiatedProfile,
::stopUserInitiatedProfiling,
::showAndEnableDebugger,
::debuggerEnabled,
::disableDebugger,
::startTimelineProfiler,
::stopTimelineProfiler,
::timelineProfilerEnabled,
::showConsole.

This allows CCInputFilter and CCLayerTreeHostImpl to
perform requestAnimationFrame-style animations. The bulk of
work here is to make the scheduler recover gracefully when you
call setNeedsRedraw inside scheduledActionDraw.

Implemented a combination of grayed text for the first/only completion and hid
the suggest box for a single suggestion (the grayed text is displayed instead.)
Drive-by fix for the "trailing spaces in the prompt" issue
(got regressed when the suggest box was introduced for the first time.)

In the default verbose mode, we now print information about variable
state at the bottom of basic blocks in addition to the top, and we
also print local variable linking. In the verbose propagation mode,
the state of phi processing is dumped more richly and CFA merging (the
most subtle part of CFA) is traced as well.

It turns out that we were corrupting phi nodes in case of overflow. The bug is
really obvious, but producing a test case that causes the badness is hard. Even
when the phi nodes do get corrupt, there's more that has to happen before it
causes incorrect execution - and I wasn't able to reproduce in any kind of
sensible reduced case.

Setting the tile size or tiling option after the tiler is created invalidates it, and by default the newly
created tiler will have border texels so the test doesn't pass. Switch things around in the test so the tiler
is created only after all the options are set, which is closer to what the real code does.

Support multi-author change log entries in ChangeLogEntry. Split author names using
the same logic as splitting reviewer names. _authors now stores list of dictionaries
with "name" and "email" as keys. Unlike reviewers, we can't always resolve authors to
accounts because some contributors are never listed in committers.py.

Scripts/webkitpy/common/checkout/changelog.py:

Scripts/webkitpy/common/checkout/changelog_unittest.py:

Scripts/webkitpy/common/config/committers.py: Fixed a bug that *_by_{name|email}

If a tile has invalidations at pushPropertiesTo, then we know the contents of that tile are no longer valid even
if they still have valid backing textures. This avoids pushing that texture to the impl side so it is not
displayed to the user. The texture is still kept around (managed by the TextureManager) so that when we later do
decide to update the contents for that tile we can use partial results if they are still valid.

Target.pri: Make BUILDING_JavaScriptCore available earlier, so it can be

used by the build system.

Source/WebCore:

Target.pri: Make BUILDING_WebCore available earlier, so it can be

used by the build system.

Source/WebKit2:

Target.pri: Make BUILDING_WebKit2 available, so it can be

used by the build system.

Tools:

Introduce a special type of build that replaces the static jsc/wc/wk2
static libraries with shared libraries, that individually are much faster
to link and don't require relinking into the big library when changing just
one file in one module. It can be enabled with
--qmakearg="CONFIG+=force_static_libs_as_shared"

qmake/mkspecs/features/force_static_libs_as_shared.prf: Added. With this configuration,

disable symbol visibility, static linkage and enable rpath.

qmake/mkspecs/features/functions.prf: Add a helper function to determine if

we need to link the convenience libraries together or not and renamed linkStaticLibrary
to just linkLibrary (because linkage is not necessarily static).

qmake/mkspecs/features/qtwebkit.prf: When using the trick, make sure to also

(WebCore::inlineFlowRequiresLineBox): In strict mode, add a LineBox for an empty element if it is
going to affect the line-height.
(WebCore::requiresLineBox): Pass LineInfo to inlineFlowRequiresLineBox
(WebCore::RenderBlock::LineBreaker::nextLineBreak): Pass LineInfo to inlineFlowRequiresLineBox

LayoutTests:

css2.1/20110323/empty-inline-001.htm: Added.

css2.1/20110323/empty-inline-002.htm: Added.

css2.1/20110323/empty-inline-003.htm: Added.

fast/css/empty-inline-003-quirksmode-expected.png: Result can
cover all platforms as there is no text apart from the period.

fast/css/empty-inline-003-quirksmode-expected.txt: ditto

fast/css/empty-inline-003-quirksmode.htm: empty-inline-003.htm should only pass in
strict mode, this ensures it 'fails' in quirks mode.

These asserts are incorrect, because it's valid for the default render
surface to be created but to have a root layer that doesn't draw. It
won't get added to the single render surface and it'll have an empty
layer list.

Currently, all the accelerated compositing animations are applied in WebProcess and
for each frame generated, WebProcess needs to sync with UIProcess.

This patch moves the accelerated compositing animations to UIProcess reducing the
amount of synchronization messages between WebProcess and UIProcess, this is done
sending animations information to UIProcess.

(WTF::ParallelEnvironment::ParallelEnvironment):
(WTF::ParallelEnvironment::execute):
Deinline these to avoid exporting a lot of symbols.
These are non-trivial and called only once on a given object
so it doesn't seems to be worthwile to inline them.
Additionally fix a signed-unsigned comparison in the constructor.

wtf/ParallelJobsGeneric.h:

wtf/Platform.h:

Source/WebCore:

Covered by existing tests.

According to measurements on Mac and Linux it is a
considerable speedup for SVG on multicore.

Remove the ENABLE(PARALLEL_JOBS) guard. Fix the Windows build
by qualifying ParallelJobs with the WTF namespace (otherwise
MSVC believes it belongs to WebCore which is likely a compiler bug).

When creating new dialogs, fill their WebView.view attached property
with the WebView that's creating them. This follows the same pattern
as QtQuick's ListView, enabling the usage of the same dialog component
for different WebViews.

Both: inspector protocol and WebCore/InspectorController have a number of unnecessary
methods for plumbing the menu action handlers through the WebKit and WebCore.
I intend to remove this menu support from the protocol and WebCore/InspectorController API.
I am starting with exposing the new front-end API in the WebCore and using it in the WebKit/mac port.
WebKit/win and WebKit2 to follow.

Both: inspector protocol and WebCore/InspectorController have a number of unnecessary
methods for plumbing the menu action handlers through the WebKit and WebCore.
I intend to remove this menu support from the protocol and WebCore/InspectorController API.
I am starting with exposing the new front-end API in the WebCore and using it in the WebKit/mac port.
WebKit/win and WebKit2 to follow.

Both: inspector protocol and WebCore/InspectorController have a number of unnecessary
methods for plumbing the menu action handlers through the WebKit and WebCore.
I intend to remove this menu support from the protocol and WebCore/InspectorController API.
I am starting with exposing the new front-end API in the WebCore and using it in the WebKit/mac port.
WebKit/win and WebKit2 to follow.

DFG code blocks now participate in the weak reference harvester fixpoint
so that they only consider themselves to be live if either they are
currently executing, or their owner is live and all of their weak references
are live. If not, the relevant code blocks are jettisoned.

Inline caches in both the old JIT and the DFG are now cleared if any of
their references are not marked at the end of a GC.

This is performance-neutral on SunSpider, V8, and Kraken. With the clear-
all-code-on-GC policy that we currently have, it shows a slight reduction
in memory usage. If we turn that policy off, it's pretty easy to come up
with an example program that will cause ToT to experience linear heap
growth, while with this patch, the heap stays small and remains at a
constant size.

This patch removes a (minor) security mitigation. Previously, we tried
sequester "directory listings" into unique origins to make it more
difficult for an attacker to crawl the user's local file system.
Unfortunately, this mitigation doesn't really buy us much security
because if the attacker has access to local files, we've probably lost
anyway.

The larger problem, however, is that this condition is overly
complicated and has broken in sublte ways several times in its
(relatively short) lifetime. In the cases reported in this bug, we see
that this check affects error pages in Safari and Growl notifications,
even those have nothing to do with directory listings.

If we have our heart set on this directory listing mitigation, we'll
need a more robust way of triggering the behavior than examining URLs
and guess whether they contain directory listings. For example, if we
implement Allow-From or Access-Control-Deny-Origin, then the embedder
can supply those policies along with the directory listings. Those
seem like much better solutions than the in-engine hack this patch
removes.

page/SecurityOrigin.cpp:

(WebCore::shouldTreatAsUniqueOrigin):

LayoutTests:

Update test results to show that XMLHttpRequets for directory listings
aren't blocked.

Most of the port specific implementations of EditorClient::respondToChangedSelection
(like EditorClient{Qt,Gtk,etc}) are wrongly relying on FocusController::focusedOrMainFrame
method to get the Frame where the selection is happening on.

It is not right, since a selection can be easily triggered in an inner
frame that is not focused.

No new tests since it is a hard thing to test without
to hook into editor client in layout tests. We could
change the "Dumped Delegate" messages, but it would
require a rebasile of +1200 for a minor change.

No new tests since it is a hard thing to test without
to hook into editor client in layout tests. We could
change the "Dumped Delegate" messages, but it would
require a rebasile of +1200 for a minor change.

Source/WebCore:

editing/Editor.cpp: Pass the Frame on where the selection is changing to the client.
(WebCore::Editor::respondToChangedSelection): Ditto.
(WebCore::Editor::changeSelectionAfterCommand): Ditto.
(WebCore::EmptyEditorClient::respondToChangedSelection):

page/EditorClient.h: Pass Frame* to indicate where the selection is happening.

loader/EmptyClients.h: Changed signature as per base class change.

Source/WebKit/chromium:

src/EditorClientImpl.cpp: Make use of the newly added Frame* parameter.
(WebKit::EditorClientImpl::respondToChangedSelection):

src/EditorClientImpl.h:

Source/WebKit/efl:

WebCoreSupport/EditorClientEfl.cpp: Make use of the newly added Frame* parameter.
(WebCore::EditorClientEfl::respondToChangedSelection):

WebCoreSupport/EditorClientEfl.h:

Source/WebKit/gtk:

WebCoreSupport/EditorClientGtk.cpp: Make use of the newly added Frame* parameter.
(WebKit::EditorClient::respondToChangedSelection):

WebCoreSupport/EditorClientGtk.h:

Source/WebKit/mac:

WebCoreSupport/WebEditorClient.h: Make use of the newly added Frame* parameter.