Update .gitignore for vim swap files.
https://bugs.webkit.org/show_bug.cgi?id=109252

Patch by Seulgi Kim <seulgikim@company100.net> on 2013-02-08
Reviewed by Dirk Pranke.

When opening the same files multiple with vim, vim creates a .*.sw[a-p]
file as the swap file.

* .gitignore:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Do not register autostart for plugins from file:// (or nowhere)
https://bugs.webkit.org/show_bug.cgi?id=108271

Reviewed by Tim Horton.

Source/WebCore:

If the page url origin is treated as a local URL, don't attempt
to add it to the auto-start list.

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot):

Source/WebKit2:

If the pageOrigin is the empty string don't add
it to the auto-start origin list for snapshotting.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::addPlugInAutoStartOrigin):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Put snapshotting label text into localizable strings
https://bugs.webkit.org/show_bug.cgi?id=108268

Reviewed by Simon Fraser.

In preparation for a snapshotted plug-in using a ShadowRoot, allow
its label to be localized.

* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::snapshottedPlugInLabelTitle): New method for returning title.
(WebCore::snapshottedPlugInLabelSubtitle): New method for returning subtitle.
* platform/LocalizedStrings.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 13. Last of the fast tests. Too many to list. Still listing efl changes.

* platform/chromium/TestExpectations:
* platform/chromium/fast/repaint/gradients-em-stops-repaint-expected.png: Removed.
* platform/efl-wk2/fast/repaint/shadow-multiple-horizontal-expected.png: Added.
* platform/efl-wk2/fast/repaint/shadow-multiple-strict-horizontal-expected.png: Added.
* platform/efl-wk2/fast/repaint/shadow-multiple-strict-vertical-expected.png: Added.
* platform/efl-wk2/fast/repaint/shadow-multiple-vertical-expected.png: Added.
* platform/efl-wk2/fast/text: Added.
* platform/efl-wk2/fast/text/stroking-decorations-expected.png: Added.
* platform/efl-wk2/fast/text/stroking-expected.png: Added.
* platform/efl-wk2/fast/transforms: Added.
* platform/efl-wk2/fast/transforms/shadows-expected.png: Added.
* platform/efl-wk2/fast/transforms/transformed-focused-text-input-expected.png: Added.
* platform/efl/fast/repaint/shadow-multiple-horizontal-expected.png: Removed.
* platform/efl/fast/repaint/shadow-multiple-strict-horizontal-expected.png: Removed.
* platform/efl/fast/repaint/shadow-multiple-strict-vertical-expected.png: Removed.
* platform/efl/fast/repaint/shadow-multiple-vertical-expected.png: Removed.
* platform/efl/fast/text/stroking-decorations-expected.png: Removed.
* platform/efl/fast/text/stroking-expected.png: Removed.
* platform/efl/fast/transforms/shadows-expected.png: Removed.
* platform/efl/fast/transforms/transformed-focused-text-input-expected.png: Removed.
* platform/mac/fast/replaced/three-selects-break-expected.png: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142312 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 14. Remaining tests up to platform in sorted order. Too many to list.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Work around a bug in Flash where NSException objects can be released too early
https://bugs.webkit.org/show_bug.cgi?id=109242
<rdar://problem/13003470>

Reviewed by Darin Adler.

* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::NetscapePluginModule::determineQuirks):
Set the new plug-in quirk.

* Shared/Plugins/PluginQuirks.h:
Add a new plug-in quirk.

* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::initialize):
Call platformPreInitialize.

* WebProcess/Plugins/Netscape/NetscapePlugin.h:
(NetscapePlugin):
Add platformPreInitialize.

* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
(WebKit::NSException_release):
Add new empty function.

(WebKit::NetscapePlugin::platformPreInitialize):
Patch -[NSException release] to be a no-op.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 15. platform/. Too many to list.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 16. Everything done but SVG, and cleanup.

* platform/chromium-linux-x86/tables/mozilla/bugs/bug138725-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug18359-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug2479-2-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug2479-3-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug26178-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug28928-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug29326-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug33855-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug39209-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug4382-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug4429-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug44505-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug4527-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug46368-1-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug46368-2-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug51037-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug51727-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug52505-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug52506-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug60749-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug68912-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug7342-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug92647-2-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/bugs/bug96334-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/collapsing_borders: Removed.
* platform/chromium-linux-x86/tables/mozilla/collapsing_borders/bug41262-4-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/core: Removed.
* platform/chromium-linux-x86/tables/mozilla/core/margins-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/dom: Removed.
* platform/chromium-linux-x86/tables/mozilla/dom/tableDom-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla/other: Removed.
* platform/chromium-linux-x86/tables/mozilla/other/move_row-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug1725-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/collapsing_borders: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/core: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/core/captions1-expected.png: Removed.
* platform/chromium-linux-x86/tables/mozilla_expected_failures/core/captions2-expected.png: Removed.
* platform/chromium-linux-x86/transforms/2d/zoom-menulist-expected.png: Removed.
* platform/chromium-linux/tables/mozilla/bugs/bug138725-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug18359-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug2479-2-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug2479-3-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug26178-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug28928-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug29326-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug33855-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug39209-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug4382-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug4429-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug44505-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug46368-1-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug46368-2-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug51037-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug51727-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug52505-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug52506-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug60749-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug68912-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug7342-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug92647-2-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug96334-expected.png:
* platform/chromium-linux/tables/mozilla/collapsing_borders/bug41262-4-expected.png:
* platform/chromium-linux/tables/mozilla/core/margins-expected.png:
* platform/chromium-linux/tables/mozilla/dom/tableDom-expected.png:
* platform/chromium-linux/tables/mozilla/other/move_row-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug1725-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/core/captions1-expected.png:
* platform/chromium-linux/tables/mozilla_expected_failures/core/captions2-expected.png:
* platform/chromium-linux/transforms/2d/zoom-menulist-expected.png:
* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Unreviewed, fix test expectation for a test only crashing in debug mode

* platform/mac/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 17. SVG W3C tests. List omitted.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Objective-C API for JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=105889

Reviewed by Joseph Pecoraro

Following up on review comments, mostly typos.

* API/JSBlockAdaptor.h:
* API/JSBlockAdaptor.mm:
(-[JSBlockAdaptor blockFromValue:inContext:withException:]):
* API/JSContext.h:
* API/JSExport.h:
* API/JSValue.h:
* API/JSValue.mm:
* API/JSWrapperMap.mm:
(selectorToPropertyName):
(-[JSWrapperMap classInfoForClass:]):
(-[JSWrapperMap wrapperForObject:]):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142319 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactor platform-specific code in SpeechSynthesis
https://bugs.webkit.org/show_bug.cgi?id=107414

Reviewed by Sam Weinig.

Refactor WebSpeech code to use a platform mechanism to provide access to platform resources.

* Modules/speech/DOMWindowSpeechSynthesis.cpp:
(WebCore::DOMWindowSpeechSynthesis::from):
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore):
(WebCore::SpeechSynthesis::voicesDidChange):
(WebCore::SpeechSynthesis::getVoices):
(WebCore::SpeechSynthesis::pending):
(WebCore::SpeechSynthesis::speaking):
(WebCore::SpeechSynthesis::paused):
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::pause):
(WebCore::SpeechSynthesis::resume):
* Modules/speech/SpeechSynthesis.h:
(WebCore):
(SpeechSynthesis):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
* Modules/speech/SpeechSynthesisUtterance.h:
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::voiceURI):
(WebCore::SpeechSynthesisUtterance::setVoiceURI):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
* Modules/speech/SpeechSynthesisVoice.cpp:
(WebCore::SpeechSynthesisVoice::create):
(WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
* Modules/speech/SpeechSynthesisVoice.h:
(SpeechSynthesisVoice):
(WebCore::SpeechSynthesisVoice::voiceURI):
(WebCore::SpeechSynthesisVoice::name):
(WebCore::SpeechSynthesisVoice::lang):
(WebCore::SpeechSynthesisVoice::localService):
(WebCore::SpeechSynthesisVoice::isDefault):
* Modules/speech/mac/SpeechSynthesisMac.mm:
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformSpeechSynthesis.h: Added.
(WebCore):
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisUtterance.h: Added.
(WebCore):
(PlatformSpeechSynthesisUtteranceClient):
(WebCore::PlatformSpeechSynthesisUtteranceClient::~PlatformSpeechSynthesisUtteranceClient):
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::text):
(WebCore::PlatformSpeechSynthesisUtterance::setText):
(WebCore::PlatformSpeechSynthesisUtterance::lang):
(WebCore::PlatformSpeechSynthesisUtterance::setLang):
(WebCore::PlatformSpeechSynthesisUtterance::voiceURI):
(WebCore::PlatformSpeechSynthesisUtterance::setVoiceURI):
(WebCore::PlatformSpeechSynthesisUtterance::volume):
(WebCore::PlatformSpeechSynthesisUtterance::setVolume):
(WebCore::PlatformSpeechSynthesisUtterance::rate):
(WebCore::PlatformSpeechSynthesisUtterance::setRate):
(WebCore::PlatformSpeechSynthesisUtterance::pitch):
(WebCore::PlatformSpeechSynthesisUtterance::setPitch):
* platform/PlatformSpeechSynthesisVoice.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h: Added.
(WebCore):
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::voiceURI):
(WebCore::PlatformSpeechSynthesisVoice::name):
(WebCore::PlatformSpeechSynthesisVoice::lang):
(WebCore::PlatformSpeechSynthesisVoice::localService):
(WebCore::PlatformSpeechSynthesisVoice::isDefault):
* platform/PlatformSpeechSynthesizer.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
* platform/PlatformSpeechSynthesizer.h: Added.
(WebCore):
(PlatformSpeechSynthesizerClient):
(WebCore::PlatformSpeechSynthesizerClient::~PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::voiceList):
* platform/mac/PlatformSpeechSynthesisMac.mm: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesis::create):
(WebCore::PlatformSpeechSynthesis::PlatformSpeechSynthesis):
(WebCore::PlatformSpeechSynthesis::platformSpeak):
* platform/mac/PlatformSpeechSynthesizerMac.mm: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 18. SVG all but dynamic-updates and custom tests. List omitted
except for changes touching other ports.

* platform/chromium/TestExpectations:
* platform/efl-wk2/svg/css/circle-in-mask-with-shadow-expected.png: Added.
* platform/efl-wk2/svg/css/group-with-shadow-expected.png: Added.
* platform/efl-wk2/svg/css/text-gradient-shadow-expected.png: Added.
* platform/efl/svg/batik/text/textEffect-expected.png: Removed.
* platform/efl/svg/batik/text/textEffect2-expected.png: Removed.
* platform/efl/svg/batik/text/textProperties2-expected.png: Removed.
* platform/efl/svg/css/circle-in-mask-with-shadow-expected.png: Removed.
* platform/efl/svg/css/group-with-shadow-expected.png: Removed.
* platform/efl/svg/css/text-gradient-shadow-expected.png: Removed.
* platform/mac/svg/batik/text/textPosition2-expected.txt: Removed.
* platform/win-future/svg/batik/text/textPosition2-expected.txt: Added.
* svg/batik/text/textPosition2-expected.txt: Replaced.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142321 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Round 19. The last, except for cleanup. Too many to list.

* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142322 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Cleaning up the remaining failures. With luck this is it, although probably not.

* platform/chromium-linux-x86/fast/backgrounds/size/contain-and-cover-expected.png: Removed.
* platform/chromium-linux/fast/hidpi/video-controls-in-hidpi-expected.png:
* platform/chromium-linux/fast/writing-mode/Kusa-Makura-background-canvas-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-ruby-vertical-lr-expected.png:
* platform/chromium-linux/fast/writing-mode/japanese-ruby-vertical-rl-expected.png:
* platform/chromium-linux/platform/chromium/virtual/gpu/fast/hidpi/gradient-with-scaled-ancestor-expected.png: Added.
* platform/chromium-mac-lion/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png:
* platform/chromium-mac-lion/fast/backgrounds/size/contain-and-cover-expected.png: Removed.
* platform/chromium-mac-snowleopard/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png:
* platform/chromium-mac-snowleopard/fast/backgrounds/size/contain-and-cover-expected.png: Removed.
* platform/chromium-mac/fast/backgrounds/size/contain-and-cover-expected.png:
* platform/chromium-win-xp/media/video-zoom-controls-expected.png: Removed.
* platform/chromium-win/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png:
* platform/chromium-win/fast/backgrounds/size/contain-and-cover-expected.png:
* platform/chromium-win/media/video-zoom-controls-expected.png:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142323 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: De-flake open-during-transaction layout test
https://bugs.webkit.org/show_bug.cgi?id=109072

Reviewed by Tony Chang.

This test was observed to be flaky in local runs; sometimes the transaction
would terminate after the third open() call rather than the second, resulting
in a TEXT difference. Added code to keep the transaction alive until all of
the open() calls are complete, and changed expectations to match.

* storage/indexeddb/open-during-transaction-expected.txt:
* storage/indexeddb/resources/open-during-transaction.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142324 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Expectations as a result of removing Skia code suppressions

Unreviewed expectations update.

Why does this test always fail to be correctly rebaselined during mass updates?

* platform/chromium-mac-snowleopard/svg/custom/foreign-object-skew-expected.png:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Fix the build on !Mac after r142314.
https://bugs.webkit.org/show_bug.cgi?id=109327

Reviewed by Benjamin Poulain.

* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPreInitialize): Add a stub for
the newly-added function.

* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformPreInitialize):
(WebKit):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Bring WebKit up to speed with latest Encrypted Media spec.
https://bugs.webkit.org/show_bug.cgi?id=97037

Reviewed by Eric Carlson.

Source/JavaScriptCore:

Define the ENABLE_ENCRYPTED_MEDIA_V2 setting.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

The most recent version of the Encrypted Media Extensions spec breaks functionality out of the
HTMLMediaElement and into new MediaKeys and MediaKeySession classes. Since the CDM functionality
has been pulled out of the media element, we create a proxy CDM class and factory system for
creating specific CDM key system implementations. The spec also breaks out MediaKeyEvent
into distinct event classes, MediaKeyNeededEvent and MediaKeyMessageEvent, for needkey and
keymessage events, respectively.

Tests: media/encrypted-media/encrypted-media-v2-events.html
       media/encrypted-media/encrypted-media-v2-syntax.html

CDM is a proxy class (a la MediaPlayer) for a specific CDMPrivateInterface implementation. A CDM
implementation is registered with the CDMFactory and will be created if that implementation supports
the key system passed into the MediaKeys constructor. CDMSession is a pure-virtual interface exposed
by concrete CDMPrivate subclasses.  Its lifetime is owned by MediaKeySession.
* Modules/encryptedmedia/CDM.cpp: Added.
(WebCore::installedCDMFactories): Initialize all the known CDM subtypes. Ports will add CDM implementations here.
(WebCore::CDM::registerCDMFactory): Registers a new CDMFactory using the passed in function pointers.
(WebCore::CDMFactoryForKeySystem): Return the first CDM factory which supports the requested key system.
(WebCore::CDM::supportsKeySystem): Walk the installed CDMs and ask if the given key system is supported.
(WebCore::CDM::supportsKeySystemMIMETypeAndCodec): Ditto, with an additional MIME type and codec string.
(WebCore::CDM::create): Simple constructor wrapper.
(WebCore::CDM::CDM): Simple constructor; calls bestCDMForKeySystem() to create it's private implementation.
(WebCore::CDM::~CDM): Simple destructor.
(WebCore::CDM::createSession): Creates a new CDMSession.
* Modules/encryptedmedia/CDM.h: Added.
(WebCore::CDM::keySystem): Simple accessor for m_keySystem.
(WebCore::CDMSession::CDMSession): Simple constructor.
(WebCore::CDMSession::~CDMSession): Simple destructor.
* Modules/encryptedmedia/CDMPrivate.h: Added.
(WebCore::CDMPrivateInterface::CDMPrivateInterface): Simple constructor.
(WebCore::CDMPrivateInterface::~CDMPrivateInterface): Simple destructor.

The new classes, MediaKeyMessageEvent and MediaKeyNeededEvent, take distinct subsets of the initializers of
the original MediaKeyMessageEvent.
* Modules/encryptedmedia/MediaKeyMessageEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.cpp.
(WebCore::MediaKeyMessageEventInit::MediaKeyMessageEventInit): Initializer now only takes message and destinationURL
    parameters.
(WebCore::MediaKeyMessageEvent::MediaKeyMessageEvent): Simple constructor.
(WebCore::MediaKeyMessageEvent::~MediaKeyMessageEvent): Simple destructor.
(WebCore::MediaKeyMessageEvent::interfaceName): Standard interfaceName.
* Modules/encryptedmedia/MediaKeyMessageEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
(WebCore::MediaKeyMessageEvent::create): Simple construction wrapper.
(WebCore::MediaKeyMessageEvent::message): Simple accessor for m_message.
(WebCore::MediaKeyMessageEvent::destinationURL): Simple accessor for m_destinationURL.
* Modules/encryptedmedia/MediaKeyMessageEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
* Modules/encryptedmedia/MediaKeyNeededEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.h.
(WebCore::MediaKeyNeededEventInit::MediaKeyNeededEventInit): Initializer now only takes initData parameter.
(WebCore::MediaKeyNeededEvent::MediaKeyNeededEvent): Simple constructor.
(WebCore::MediaKeyNeededEvent::~MediaKeyNeededEvent): Simple destructor.
(WebCore::MediaKeyNeededEvent::interfaceName): Standard interfaceName.
* Modules/encryptedmedia/MediaKeyNeededEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
(WebCore::MediaKeyNeededEvent::create): Simple construction wrapper.
(WebCore::MediaKeyNeededEvent::initData): Simple accessor for m_initData.
* Modules/encryptedmedia/MediaKeyNeededEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.

MediaKeySession is a new class that maps keys and key requests to a given session ID:
* Modules/encryptedmedia/MediaKeySession.cpp: Added.
(WebCore::MediaKeySession::create): Simple construction wrapper.
(WebCore::MediaKeySession::MediaKeySession): Simple constructor.
(WebCore::MediaKeySession::~MediaKeySession): Simple destructor; calls close().
(WebCore::MediaKeySession::setError): Simple setter for m_error;
(WebCore::MediaKeySession::close): Tell the CDM to clear any saved session keys.
(WebCore::MediaKeySession::generateKeyRequest): Start a one-shot timer, handled in keyRequestTimerFired.
(WebCore::MediaKeySession::keyRequestTimerFired): Follow the steps in the spec; ask the CDM to generate a key request.
(WebCore::MediaKeySession::addKey): Start a one-shot timer, handled in addKeyTimerFired.
(WebCore::MediaKeySession::addKeyTimerFired): Follow the steps in the spec; provide the key data to the CDM.
* Modules/encryptedmedia/MediaKeySession.h: Added.
(WebCore::MediaKeySession::keySystem): Simple accessor for m_keySystem.
(WebCore::MediaKeySession::sessionId): Simple accessor for m_sessionId.
(WebCore::MediaKeySession::error): Simple accessor for m_error;
* Modules/encryptedmedia/MediaKeySession.idl:

MediaKeySession inherits from EventTarget, and must override the pure virtual functions in that class:
* Modules/encryptedmedia/MediaKeySession.cpp: Added.
(WebCore::MediaKeySession::interfaceName):
* Modules/encryptedmedia/MediaKeySession.h: Added.
(WebCore::MediaKeySession::refEventTarget):
(WebCore::MediaKeySession::derefEventTarget):
(WebCore::MediaKeySession::eventTargetData):
(WebCore::MediaKeySession::ensureEventTargetData):
(WebCore::MediaKeySession::scriptExecutionContext):

MediaKeys is a new class that encapsulates a CDM and a number of key sessions:
* Modules/encryptedmedia/MediaKeys.cpp: Added.
(WebCore::MediaKeys::create): Throw an exception if the key system parameter is unsupported; create a CDM object
    and a new MediaKeys session.
(WebCore::MediaKeys::MediaKeys): Simple constructor.
(WebCore::MediaKeys::~MediaKeys): Simple destructor.
(WebCore::MediaKeys::createSession): Follow the spec and create a new key session.
* Modules/encryptedmedia/MediaKeys.h: Added.
* Modules/encryptedmedia/MediaKeys.idl: Copied from Source/WebCore/html/MediaError.idl.

Provide a new interface to HTMLMediaElement for MediaPlayer which does not require a sessionId or a key system:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::keyNeeded):

MediaKeyError now has a systemCode parameter and member variable.
* html/MediaKeyError.h:
(WebCore::MediaKeyError::create): Take a systemCode parameter with a default (0) value.
(WebCore::MediaKeyError::MediaKeyError): Ditto.
(WebCore::MediaKeyError::systemCode): Simple accessor for m_systemCode.
* html/MediaKeyError.idl:

Add new methods to HTMLMediaElement to support MediaKeys. Support different initializer
for the MediaKeyNeededEvent.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setMediaKeys): Simple setter for m_mediaKeys.
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): This version takes fewer parameters
    than the deprecated version.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::mediaKeys): Simple accessor for m_mediaKeys.
* html/HTMLMediaElement.idl: Add the mediaKeys attribute.

Add an ENABLE(ENCRYPTED_MEDIA_V2) check to the existing ENABLE(ENCRYPTED_MEDIA) one:
* html/MediaError.h:
* html/MediaError.idl:
* platform/graphics/MediaPlayer.cpp:
(WebCore::bestMediaEngineForTypeAndCodecs):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayer::keyNeeded): This version takes fewer parameters than the
    deprecated version.

Support the new version of canPlayType which takes an extra parameter:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
(WebCore::MediaPlayerPrivateQTKit::extendedSupportsType):

Add a mock CDM for use within DRT and WKTR to test the MediaKeys and MediaKeySession
APIs and events:
* testing/Internals.cpp:
(WebCore::Internals::initializeMockCDM): Add the MockCDM class to the CDM factories.
* testing/Internals.h:
* testing/Internals.idl: Add the initializeMockCDM() method.
* testing/MockCDM.cpp: Added.
(WebCore::MockCDM::supportsKeySystem): Only supports the 'com.webcore.mock' key system.
(WebCore::MockCDM::supportsMIMEType): Only supports the 'video/mock' mime type.
(WebCore::initDataPrefix): Static method which returns a Uint8Array containing 'mock'.
(WebCore::keyPrefix): Static method which returns a Uint8Array containing 'key'.
(WebCore::keyRequest): Static method which returns a Uint8Array containing 'request'.
(WebCore::generateSessionId): Return a monotonically increasing number.
(WebCore::MockCDMSession::MockCDMSession): Simple constructor.
(WebCore::MockCDMSession::generateKeyRequest): Ignores the parameters and returns a keyRequest() array.
(WebCore::MockCDMSession::releaseKeys): No-op.
(WebCore::MockCDMSession::addKey): Checks that the key starts with the keyPrefix() array.
* testing/MockCDM.h: Added.
(WebCore::MockCDM::create):
(WebCore::MockCDM::~MockCDM): Simple destructor.
(WebCore::MockCDM::MockCDM): Simple constructor.

Add the new classes to the built system:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:

Miscelaneous changes:
* dom/EventNames.in: Add the two new event types, MediaKeyMessageEvent and MediaKeyNeededEvent.
* dom/EventTargetFactory.in: Add the new EventTarget, MediaKeySession.
* page/DOMWindow.idl: Add constructors for the new classes to the window object.

Source/WTF:

Define the ENABLE_ENCRYPTED_MEDIA_V2 setting.

* wtf/Platform.h:

LayoutTests:

Added new tests for the updated Encrypted Media Extensions spec.

* media/encrypted-media/encrypted-media-v2-events-expected.txt: Added.
* media/encrypted-media/encrypted-media-v2-events.html: Added.
* media/encrypted-media/encrypted-media-v2-syntax-expected.txt: Added.
* media/encrypted-media/encrypted-media-v2-syntax.html: Added.
* platform/Chromium/TestExpectations: Skip the new media/encrypted-media/ v2 tests.
* platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed build fix. MSVC (and other compilers) need a default: case in switch statement.

* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::notificationName):

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