(JSC::DateInstance::gregorianDateTime):
(JSC::DateInstance::gregorianDateTimeUTC): Split gregorianDateTime into
a UTC and non-UTC variant, and split each variant into a fast inline
case and a slow out-of-line case.

Replace fromDictionaryTransition with flattenDictionaryObject and
flattenDictionaryStructure. This change is necessary as we need to
guarantee that our attempt to convert away from a dictionary structure
will definitely succeed, and in some cases this requires mutating the
object storage itself.

Prepended $$PWD to GENERATED_SOURCES_DIR to avoid potential ambiguities when included from WebCore.pro.
Some preprocessors consider this GENERATED_SOURCES_DIR relative to current invoking dir (e.g., ./WebCore),
and not the working dir of JavaCriptCore.pri (i.e., ../JavaScriptCore/).

Moved macro MMP_RULES (LINKEROPTION) into symbian instead of symbian-sbsv2,
since adjustment of RW-section base address will be needed for all new symbian
tool chains, specifically for arm and gcc compilation targets.
Also, change target address to 0xE00000 to be sufficient for all targets.

There are clearly use-cases for this feature, but it will require
more work to make this fully work with an enum to have fine-grained
control over the interactivity levels. For now it is easy to achieve
in user-code what the boolean property did.

XMLTokenizer::doEnd() uses an additional logic to report a parse failure in
documents that end prematurely but are not considered invalid by QXmlStream.
This is to stay compatible with the libxml2 implementation.
However, that code path would be also hit in situations when it should not,
i.e. the error would have already been caught and handled. As a result, the
same error would be reported twice.

No new tests, because the problem is already covered by
fast/parser/xml-declaration-missing-ending-mark.html.

bindings/v8/WorkerContextExecutionProxy.cpp:
(WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
Now generates the right type of DOMWrapper for SharedWorkerContexts.
(WebCore::WorkerContextExecutionProxy::convertToV8Object):
Added support for SHAREDWORKERCONTEXT.
(WebCore::WorkerContextExecutionProxy::convertEventTargetToV8Object):
Added support for SharedWorker and SharedWorkerContext.

Made the full-screen video HUD appear when playback stops, such as when
the end of the video is reached.

Reviewed by Eric Carlson.

WebView/WebVideoFullscreenHUDWindowController.h: Cleaned up.

WebView/WebVideoFullscreenHUDWindowController.mm:

(-[WebVideoFullscreenHUDWindowController scheduleTimeUpdate]): Updated
for the renaming of -updateRate to -updatePlayButton.
(-[WebVideoFullscreenHUDWindowController updatePlayButton]): Renamed
-updateRate to this.
(-[WebVideoFullscreenHUDWindowController updateRate]): This method now
responds to changes to the playback rate by updating the play button
and showing or hiding the HUD as necessary.
(-[WebVideoFullscreenHUDWindowController togglePlaying:]): Now only
toggles playing. UI updates are driven by -updateRate being called.
(-[WebVideoFullscreenHUDWindowController playing]): Cleaned up.

JavaScriptGlue: Added the use jsc define for files that use
this config file and DateMath.h. This should
be able to go away when DateMath is properly
split into wtf and jsc portions which is this bug:​https://bugs.webkit.org/show_bug.cgi?id=31246

Reviewed by NOBODY (chromium build fix).

config.h:

WebCore: * platform/network/HTTPParsers.cpp:
(WebCore::parseDate): Changed this to not
use a date parser that needs ExecState passed.

Started as a compilation fix for Symbian where the compiler makes a distinction between
class and struct in function argument signatures.
Changed all forward declarations of ResourceRequest to have class in the forward
declaration instead of struct and changed the definition of ResourceRequest to be class
and added access qualifiers where missing. Additionally two references of friend
struct ResourceRequestBase changed to class instead.

Started as a compilation fix for Symbian where the compiler makes a distinction between
class and struct in function argument signatures.
Changed forward declaration of ResourceRequest to have class in the forward
declaration instead of struct.

In <​http://trac.webkit.org/changeset/19148>, setStaticY() was changed
to mark the object for layout, doing so without marking its ancestors.
However, RenderBlock::skipLeadingWhitespace and
RenderBlock::skipTrailingWhitespace() call setStaticY() on a relative-
positioned inline container, causing it to be marked for layout without
ever going back to give it layout, and thus layout could end with a
dirty object still in the tree, leading to all sorts of badness.

The fix is to revert setStaticY() to not marking the object dirty, and
instead do it in the call sites that require it, which are in
RenderBlock and RenderFlexibleBox.

By invoking a script queue'd by queueScript(), 'true' was beeing returned
always, which from WorkQueue prospective means that a load has been started
and the queue processing should stop and wait for the load to finish.
Spinning it off into a loading and a non-loading variants was the solution
adopted by Mac's DRT to work around this problem. The former keeps returning
'true' while the later executes the script synchronously and returns 'false'
making it possible to the WorkQueue to proceed right away.

Move logic for determining the name and email address to use in a ChangeLog entry from
prepare-ChangeLog to VCSUtils so that commit-log-editor can use it. It wants to check
whether the author of the patch matches committer, and therefore needs access to the
email address that would be used in a ChangeLog entry.

Refactor editing code from DOMStorageDataGrid to DataGrid, so other
places in the inspector can use editing in DataGrid (added a FIXME for
some stuff that needs to be generalized).

Also added deleting functionality to DataGrid, and implemented it for
Cookies and DOM Storage. The reason this patch is so big is because of
the refactoring of editing code, which won't be used yet in a cross-datagrid
way, but should be able to.

Additionally, moved the callbacks members from DOMStorageDataGrid to
DOMStorageItemsView, which allowed us to delete DOMStorageDataGrid, to
make the architecture of DOM Storage look a lot more like the Cookies view.

Lastly, added a preventDefault call in ElementsTreeOutline to prevent the
inspector from beeping at you when you delete an element.

The HTMLDocumentOpen function would cause a crash in Chromium if
there was no calling javascript context. We now check for this case
and pass in NULL to the HTMLDocument::open function which can handle
a NULL document parameter.

The other functions like HTMLDocumentWrite, HTMLDocumentWriteln, etc
had ASSERTS for a NULL caller frame, which was bogus as it would crash
anyway. We now check for this case and return a failure.

Changes to V8DOMWindowCustom.cpp are as below:-

Instead of failing the window.open call made by NPAPI for lack of a
calling javascript context, we now use the entered context as the calling
context.

Added functionality to the layout test plugin to invoke document.open and
window.open with default arguments. The associated webkit bug is​https://bugs.webkit.org/show_bug.cgi?id=31067, which affects Chromium. Basically
window.open and document.open calls issued by NPAPI plugins via NPN_Invoke don't
work in Chromium (V8) if there is no calling javascript context. To achieve this
effect we invoke these functions in the layout test plugin in the NPP_SetWindow
for the window.open test case and in NPP_DestroyStream for the document.open test case.

Currently behaviour of shifts of a magnitude > 0x1f is undefined.
Instead defined that all shifts are masked to this range. This makes a lot of
practical sense, both since having undefined behaviour is not particularly
desirable, and because this behaviour is commonly required (particularly since
it is required bt ECMA-262 for shifts).

Update the ARM assemblers to provide this behaviour. Remove (now) redundant
masks from JITArithmetic, and remove rshiftPtr (this was used in case that
could be rewritten in a simpler form using rshift32, only optimized JSVALUE32
on x86-64, which uses JSVALUE64!)

If the VM calculates the local timezone offset from UTC, it caches the
result until the end of the current VM invocation. (We don't want to cache
forever, because the user's timezone may change over time.)

This removes notify_* overhead on Mac, and, more significantly, removes
OS time and date call overhead on non-Mac platforms.

~8% speedup on Date microbenchmark on Mac. SunSpider reports maybe a tiny
speedup on Mac. (Speedup on non-Mac platforms should be even more noticeable.)

(JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): Made the
DynamicGlobalObjectScope constructor responsible for checking whether a
dynamicGlobalObject has already been set. This eliminated some duplicate
client code, and allowed me to avoid adding even more duplicate client
code. Made DynamicGlobalObjectScope responsible for resetting the
local timezone cache upon first entry to the VM.

(WTF::getCurrentUTCTime):
(WTF::getCurrentUTCTimeWithMicroseconds):
(WTF::getLocalTime):
(JSC::getUTCOffset): Use the new cache. Also, see below.
(JSC::gregorianDateTimeToMS):
(JSC::msToGregorianDateTime):
(JSC::initializeDates):
(JSC::parseDateFromNullTerminatedCharacters): Simplified the way this function
accounts for the local timezone offset, to accomodate our new caching API,
and a (possibly misguided) caller in WebCore. Also, see below.

wtf/DateMath.h:

(JSC::GregorianDateTime::GregorianDateTime): Moved most of the code in
DateMath.* into the JSC namespace. The code needed to move so it could
naturally interact with ExecState and JSGlobalData to support caching.
Logically, it seemed right to move it, too, since this code is not really
as low-level as the WTF namespace might imply -- it implements a set of
date parsing and conversion quirks that are finely tuned to the JavaScript
language. Also removed the Mac OS X notify_* infrastructure.

Removed obsolete test case which was included in the patch for bug #30107.
This test case is already covered by the test case fast/events/drag-and-drop.html,
which was included in the patch for bug #24731.

Check whether whether the current document can read the cssRules from
the style sheet. Firefox throws a security error here, but we return
null instead because that's what we usually do in these cases.

page/Geolocation.cpp:
(WebCore::Geolocation::getCurrentPosition): Modified. Asserts that startRequest returned a notifier.
(WebCore::Geolocation::watchPosition): Modified. Asserts that startRequest returned a notifier.
(WebCore::Geolocation::startRequest): Modified. If the Geolocation service fails to start, set a fatal error on the notifier.

Adding a resource that seems to be missing. Without it, several tests in
fast/dom/beforeload aren't really testing if the default event handling is
prevented, but instead are only testing if the beforeload event fires.

Instead of having StorageAreaSync's constructor (which is called in the
constructor for StorageAreaImpl) calling a method on StoargeAreaImpl to get the
database identifier, simply have StorageAreaImpl pass the identifier into
StorageAreaSync.

The number of selected lines in textarea after a shift-PageDown
may differ. The test case is modified so that it will not depend
on the exact number of lines selected. This should resolve regression
on platforms like Qt and GTK.​https://bugs.webkit.org/show_bug.cgi?id=31122

(postDidAddIconNotification):
Updated for change to CFDictionaryPropertyBag::createInstance.

WebKitClassFactory.cpp:

(releaseRefFromCreateInstance): Added this overloaded function
template to abstract away the difference between createInstance
functions that return a ref'd pointer and createInstance functions
that return a COMPtr.
(WebKitClassFactory::CreateInstance): Changed to use
releaseRefFromCreateInstance.

(CreateBug): else clauses are only hit if no exception is raised, so
it makes no sense to try to re-raise the exception in an else clause.
The exception will automatically be re-raised if it doesn't match any
of the except clauses, so we don't have to do anything special here at
all to get the desired behavior.

This is a re-submit of 50519. LocalStorageTask should have never been ref
counted. I've removed that and switched a PassRefPtr over to a PassOwnPtr.

On LocalStoragethread: Remove reference counting. Get rid of locking. Make some
of the method names a bit more clear. Assert proper thread usage. Join rather
than detaching the thread and doing an ad-hoc form of join. Avoid touching
variables on the background thread when simple to do so. Also create a generic
scheduleTask function rather than one for each task.

Calling SecurityOrigin::databaseIdentifier on LocalStorage's background thread
is not safe. databaseIdentifier does a bunch of string concatenation which
ref-counts StringImpls in some cases. This was caught by valgrind thread
sanitizer: ​http://code.google.com/p/chromium/issues/detail?id=25645

Major fixes: Break the ref count cycle for StorageArea on the main
thread, not the background thread since the latter is not safe.
Length() needs to block on the import completing.

Small fixes: setItem needs to handle the copy on write case even if it
has an exception. setItem and removeItem should just bail from the
the function if the value hasn't changed rather than wrapping the end
in an if block. Clear should only send an event if it wasn't already
cleared. StorageAreaSync should assert that the final sync was
scheduled.

storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::length):
Forgot to block on the import.
(WebCore::StorageAreaImpl::key):
(WebCore::StorageAreaImpl::setItem):
Handle the copy on write case even when there's an exception.
(WebCore::StorageAreaImpl::removeItem):
(WebCore::StorageAreaImpl::clear):

(JSC::ARMAssembler::getOp2): Use INVALID_IMM
(JSC::ARMAssembler::getImm): Use encodeComplexImm for complex immediate
(JSC::ARMAssembler::moveImm): Ditto.
(JSC::ARMAssembler::encodeComplexImm): Encode a constant by one or two
instructions or a PC relative load.