Source/JavaScriptCore/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add option for HTML Media Capture.
 9
 10 * Configurations/FeatureDefines.xcconfig:
 11
1122012-02-16 Yuqiang Xian <yuqiang.xian@intel.com>
213
314 Add JSC code profiling support on Linux x86

Source/WebCore/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add "capture" attribute for HTML Media Capture.
 9
 10 Implement the interface "runCapturePanel()" to run the specific picker for camera, camcorder
 11 and microphone. Each platform can run the capture panel implementing runCapturePanel() in
 12 ChromeClient.
 13
 14 Implement MediaCaptureChooser that inherits from FileChooser. It is used for media capture
 15 interface "runCapturePanel()". Each platform will decide what to launch using "captureType()"
 16 in MediaCaptureChooser class.
 17
 18 FileChooserClient::determineCaptureType is used to define the operation for the interactions
 19 between the capture attribute and the accept attribute.
 20
 21 No new tests because it is expected just to launch the specific capture panel and other behavior for input element is unchanged.
 22
 23 * Configurations/FeatureDefines.xcconfig:
 24 * GNUmakefile.am:
 25 * html/FileInputType.cpp:
 26 (WebCore::FileInputType::handleDOMActivateEvent):
 27 * html/HTMLAttributeNames.in:
 28 * html/HTMLInputElement.cpp:
 29 (WebCore):
 30 (WebCore::HTMLInputElement::capture):
 31 * html/HTMLInputElement.h:
 32 (HTMLInputElement):
 33 * html/HTMLInputElement.idl:
 34 * loader/EmptyClients.h:
 35 (EmptyChromeClient):
 36 (WebCore::EmptyChromeClient::runCapturePanel):
 37 * page/Chrome.cpp:
 38 (WebCore):
 39 (WebCore::Chrome::runCapturePanel):
 40 * page/Chrome.h:
 41 (WebCore):
 42 (Chrome):
 43 * page/ChromeClient.h:
 44 (WebCore):
 45 (ChromeClient):
 46 * platform/FileChooser.cpp:
 47 (WebCore):
 48 (WebCore::FileChooserClient::newMediaCaptureChooser):
 49 (WebCore::FileChooserClient::determineCaptureType):
 50 (WebCore::MediaCaptureChooser::create):
 51 (WebCore::MediaCaptureChooser::~MediaCaptureChooser):
 52 (MediaCaptureNames):
 53 (WebCore::MediaCaptureNames::camera):
 54 (WebCore::MediaCaptureNames::camcorder):
 55 (WebCore::MediaCaptureNames::microphone):
 56 (WebCore::MediaCaptureNames::filesystem):
 57 * platform/FileChooser.h:
 58 (WebCore):
 59 (FileChooserClient):
 60 (FileChooser):
 61 (WebCore::FileChooser::FileChooser):
 62 (MediaCaptureChooser):
 63 (WebCore::MediaCaptureChooser::captureType):
 64 (WebCore::MediaCaptureChooser::MediaCaptureChooser):
 65 (MediaCaptureNames):
 66 * platform/MIMETypeRegistry.cpp:
 67 (WebCore::initializeSupportedImageMIMETypes):
 68 (WebCore):
 69 (WebCore::initializeSupportedCaptureMIMETypes):
 70 (WebCore::MIMETypeRegistry::isSupportedCaptureMIMEType):
 71 * platform/MIMETypeRegistry.h:
 72 (MIMETypeRegistry):
 73
1742012-02-16 Cris Neckar <cdn@chromium.org>
275
376 Correct a misleading comment regarding string delimiters in CSS parsing.

Source/WebKit/chromium/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * src/ChromeClientImpl.cpp:
 11 (WebKit):
 12 (WebKit::ChromeClientImpl::runCapturePanel):
 13 * src/ChromeClientImpl.h:
 14 (ChromeClientImpl):
 15
1162012-02-16 Alexandre Elias <aelias@google.com>
217
318 [chromium] Bundle page scale factor and limits in CCLayerTreeHost

Source/WebKit/efl/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * WebCoreSupport/ChromeClientEfl.cpp:
 11 (WebCore):
 12 (WebCore::ChromeClientEfl::runCapturePanel):
 13 * WebCoreSupport/ChromeClientEfl.h:
 14 (ChromeClientEfl):
 15
1162012-01-31 Raphael Kubo da Costa <kubo@profusion.mobi>
217
318 [soup] Add support for multiple SoupSessions.

Source/WebKit/gtk/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * WebCoreSupport/ChromeClientGtk.cpp:
 11 (WebKit):
 12 (WebKit::ChromeClient::runCapturePanel):
 13 * WebCoreSupport/ChromeClientGtk.h:
 14 (ChromeClient):
 15
1162012-02-16 Adam Barth <abarth@webkit.org>
217
318 Attempt to fix the GTK build.

Source/WebKit/mac/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * Configurations/FeatureDefines.xcconfig:
 11 * WebCoreSupport/WebChromeClient.h:
 12 * WebCoreSupport/WebChromeClient.mm:
 13 (WebChromeClient::runCapturePanel):
 14
1152012-02-16 Brady Eidson <beidson@apple.com>
216
317 <rdar://problem/10616280> and https://bugs.webkit.org/show_bug.cgi?id=78767

Source/WebKit/qt/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * WebCoreSupport/ChromeClientQt.cpp:
 11 (WebCore):
 12 (WebCore::ChromeClientQt::runCapturePanel):
 13 * WebCoreSupport/ChromeClientQt.h:
 14 (ChromeClientQt):
 15
1162012-02-16 Simon Hausmann <simon.hausmann@nokia.com>
217
318 Unreviewed brown-paper bag build fix.

Source/WebKit/win/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * WebCoreSupport/WebChromeClient.cpp:
 11 (WebChromeClient::runCapturePanel):
 12 * WebCoreSupport/WebChromeClient.h:
 13 (WebChromeClient):
 14
1152012-02-15 Sadrul Habib Chowdhury <sadrul@chromium.org>
216
317 Notify ChromeClient when touch-event handlers are installed/removed.

Source/WebKit/wince/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * WebCoreSupport/ChromeClientWinCE.cpp:
 11 (WebKit):
 12 (WebKit::ChromeClientWinCE::runCapturePanel):
 13 * WebCoreSupport/ChromeClientWinCE.h:
 14 (ChromeClientWinCE):
 15
1162012-02-15 Patrick Gansterer <paroga@webkit.org>
217
318 Unreviewed WinCE build fix after r107606.

Source/WebKit/wx/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add runCapturePanel() to run the capture panel for HTML Media Capture.
 9
 10 * WebKitSupport/ChromeClientWx.cpp:
 11 (WebCore):
 12 (WebCore::ChromeClientWx::runCapturePanel):
 13 * WebKitSupport/ChromeClientWx.h:
 14 (ChromeClientWx):
 15
1162012-02-15 Sadrul Habib Chowdhury <sadrul@chromium.org>
217
318 Notify ChromeClient when touch-event handlers are installed/removed.

Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_FILE_SYSTEM = ;
8686ENABLE_FULLSCREEN_API = ENABLE_FULLSCREEN_API;
8787ENABLE_GAMEPAD = ;
8888ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 89ENABLE_HTML_MEDIA_CAPTURE = ;
8990ENABLE_INDEXED_DATABASE = ;
9091ENABLE_INPUT_COLOR = ;
9192ENABLE_INPUT_SPEECH = ;

@@ENABLE_WEB_TIMING = ;
126127ENABLE_WORKERS = ENABLE_WORKERS;
127128ENABLE_XSLT = ENABLE_XSLT;
128129
129 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_SHADERS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);
 130FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_SHADERS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HTML_MEDIA_CAPTURE) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);

Source/WebCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_FILE_SYSTEM = ;
8686ENABLE_FULLSCREEN_API = ENABLE_FULLSCREEN_API;
8787ENABLE_GAMEPAD = ;
8888ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 89ENABLE_HTML_MEDIA_CAPTURE = ;
8990ENABLE_INDEXED_DATABASE = ;
9091ENABLE_INPUT_COLOR = ;
9192ENABLE_INPUT_SPEECH = ;

@@ENABLE_WEB_TIMING = ;
126127ENABLE_WORKERS = ENABLE_WORKERS;
127128ENABLE_XSLT = ENABLE_XSLT;
128129
129 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_SHADERS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);
 130FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_SHADERS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HTML_MEDIA_CAPTURE) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);

Source/WebCore/GNUmakefile.am

@@webcore_cppflags += -DENABLE_GEOLOCATION=1 -DENABLE_CLIENT_BASED_GEOLOCATION=1
445445endif # END ENABLE_GEOLOCATION
446446
447447# ----
 448# HTML Media Capture
 449# ----
 450if ENABLE_HTML_MEDIA_CAPTURE
 451FEATURE_DEFINES += ENABLE_HTML_MEDIA_CAPTURE=1
 452webcore_cppflags += -DENABLE_HTML_MEDIA_CAPTURE=1
 453endif # END ENABLE_HTML_MEDIA_CAPTURE
 454
 455# ----
448456# MathML support
449457# ----
450458if ENABLE_MATHML

Source/WebCore/html/FileInputType.cpp

@@void FileInputType::handleDOMActivateEvent(Event* event)
157157#endif
158158 settings.acceptMIMETypes = input->acceptMIMETypes();
159159 settings.selectedFiles = m_fileList->paths();
 160#if ENABLE(HTML_MEDIA_CAPTURE)
 161 MediaCaptureType type = determineCaptureType(input);
 162 if (type == FileSystem)
 163 chrome->runOpenPanel(input->document()->frame(), newFileChooser(settings));
 164 else
 165 chrome->runCapturePanel(input->document()->frame(), newMediaCaptureChooser(settings, type));
 166#else
160167 chrome->runOpenPanel(input->document()->frame(), newFileChooser(settings));
 168#endif
161169 }
162170 event->setDefaultHandled();
163171}

Source/WebCore/html/HTMLAttributeNames.in

@@bgcolor
5858bgproperties
5959border
6060bordercolor
 61capture
6162cellpadding
6263cellspacing
6364char

Source/WebCore/html/HTMLInputElement.cpp

@@String HTMLInputElement::alt() const
13011301 return fastGetAttribute(altAttr);
13021302}
13031303
 1304#if ENABLE(HTML_MEDIA_CAPTURE)
 1305String HTMLInputElement::capture() const
 1306{
 1307 return fastGetAttribute(captureAttr);
 1308}
 1309#endif
 1310
13041311int HTMLInputElement::maxLength() const
13051312{
13061313 return m_maxLength;

Source/WebCore/html/HTMLInputElement.h

@@public:
192192 String accept() const;
193193 String alt() const;
194194
 195#if ENABLE(HTML_MEDIA_CAPTURE)
 196 String capture() const;
 197#endif
 198
195199 void setSize(unsigned);
196200
197201 KURL src() const;

Source/WebCore/html/HTMLInputElement.idl

@@module html {
3434 attribute [Reflect] DOMString accept;
3535 attribute [Reflect] DOMString align;
3636 attribute [Reflect] DOMString alt;
 37#if defined(ENABLE_HTML_MEDIA_CAPTURE) && ENABLE_HTML_MEDIA_CAPTURE
 38 attribute [Reflect] DOMString capture;
 39#endif
3740 attribute boolean checked;
3841 attribute [Reflect] boolean disabled;
3942 attribute [Reflect] boolean autofocus;

Source/WebCore/loader/EmptyClients.h

@@public:
205205#endif
206206
207207 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { }
 208#if ENABLE(HTML_MEDIA_CAPTURE)
 209 virtual void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>) { }
 210#endif
208211 virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*) { }
209212
210213 virtual void formStateDidChange(const Node*) { }

Source/WebCore/page/Chrome.cpp

@@void Chrome::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileChooser)
464464 m_client->runOpenPanel(frame, fileChooser);
465465}
466466
 467#if ENABLE(HTML_MEDIA_CAPTURE)
 468void Chrome::runCapturePanel(Frame* frame, PassRefPtr<MediaCaptureChooser> mediaFileChooser)
 469{
 470 m_client->runCapturePanel(frame, mediaFileChooser);
 471}
 472#endif
 473
467474void Chrome::loadIconForFiles(const Vector<String>& filenames, FileIconLoader* loader)
468475{
469476 m_client->loadIconForFiles(filenames, loader);

Source/WebCore/page/Chrome.h

@@namespace WebCore {
4747 class Geolocation;
4848 class HitTestResult;
4949 class IntRect;
 50#if ENABLE(HTML_MEDIA_CAPTURE)
 51 class MediaCaptureChooser;
 52#endif
5053 class NavigationAction;
5154 class Node;
5255 class Page;

@@namespace WebCore {
154157#endif
155158
156159 void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
 160#if ENABLE(HTML_MEDIA_CAPTURE)
 161 void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>);
 162#endif
157163 void loadIconForFiles(const Vector<String>&, FileIconLoader*);
158164#if ENABLE(DIRECTORY_UPLOAD)
159165 void enumerateChosenDirectory(FileChooser*);

Source/WebCore/page/ChromeClient.h

@@namespace WebCore {
5555 class GraphicsLayer;
5656 class HitTestResult;
5757 class IntRect;
 58#if ENABLE(HTML_MEDIA_CAPTURE)
 59 class MediaCaptureChooser;
 60#endif
5861 class NavigationAction;
5962 class Node;
6063 class Page;

@@namespace WebCore {
224227#endif
225228
226229 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) = 0;
 230#if ENABLE(HTML_MEDIA_CAPTURE)
 231 virtual void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>) = 0;
 232#endif
227233 // Asynchronous request to load an icon for specified filenames.
228234 virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*) = 0;
229235

Source/WebCore/platform/FileChooser.cpp

2929#include "config.h"
3030#include "FileChooser.h"
3131
 32#include "HTMLNames.h"
 33#include "MIMETypeRegistry.h"
 34
3235namespace WebCore {
3336
 37using namespace HTMLNames;
 38
3439FileChooserClient::~FileChooserClient()
3540{
3641 discardChooser();

@@void FileChooserClient::discardChooser()
5055 m_chooser->disconnectClient();
5156}
5257
53 inline FileChooser::FileChooser(FileChooserClient* client, const FileChooserSettings& settings)
54  : m_client(client)
55  , m_settings(settings)
 58#if ENABLE(HTML_MEDIA_CAPTURE)
 59MediaCaptureChooser* FileChooserClient::newMediaCaptureChooser(const FileChooserSettings& settings, MediaCaptureType device)
 60{
 61 discardChooser();
 62
 63 m_chooser = MediaCaptureChooser::create(this, settings, device);
 64 return static_cast<MediaCaptureChooser*>(m_chooser.get());
 65}
 66
 67MediaCaptureType FileChooserClient::determineCaptureType(HTMLInputElement* input)
5668{
 69 if (!input)
 70 return FileSystem;
 71
 72 if (equalIgnoringCase(input->capture(), MediaCaptureNames::camera())) {
 73 for (Vector<String>::const_iterator iterator = input->acceptMIMETypes().begin(); iterator != input->acceptMIMETypes().end(); ++iterator)
 74 if ((*iterator).startsWith("image/") && MIMETypeRegistry::isSupportedCaptureMIMEType(*iterator))
 75 return Camera;
 76 } else if (equalIgnoringCase(input->capture(), MediaCaptureNames::camcorder())) {
 77 for (Vector<String>::const_iterator iterator = input->acceptMIMETypes().begin(); iterator != input->acceptMIMETypes().end(); ++iterator)
 78 if ((*iterator).startsWith("video/") && MIMETypeRegistry::isSupportedCaptureMIMEType(*iterator))
 79 return Camcorder;
 80 } else if (equalIgnoringCase(input->capture(), MediaCaptureNames::microphone())) {
 81 for (Vector<String>::const_iterator iterator = input->acceptMIMETypes().begin(); iterator != input->acceptMIMETypes().end(); ++iterator)
 82 if ((*iterator).startsWith("audio/") && MIMETypeRegistry::isSupportedCaptureMIMEType(*iterator))
 83 return Microphone;
 84 }
 85 return FileSystem;
5786}
 87#endif
5888
5989PassRefPtr<FileChooser> FileChooser::create(FileChooserClient* client, const FileChooserSettings& settings)
6090{

@@void FileChooser::chooseFiles(const Vector<String>& filenames)
82112 m_client->filesChosen(filenames);
83113}
84114
 115#if ENABLE(HTML_MEDIA_CAPTURE)
 116
 117PassRefPtr<MediaCaptureChooser> MediaCaptureChooser::create(FileChooserClient* client, const FileChooserSettings& settings, MediaCaptureType type)
 118{
 119 return adoptRef(new MediaCaptureChooser(client, settings, type));
 120}
 121
 122MediaCaptureChooser::~MediaCaptureChooser()
 123{
 124}
 125
 126namespace MediaCaptureNames {
 127
 128const AtomicString& camera()
 129{
 130 DEFINE_STATIC_LOCAL(AtomicString, name, ("camera"));
 131 return name;
 132}
 133
 134const AtomicString& camcorder()
 135{
 136 DEFINE_STATIC_LOCAL(AtomicString, name, ("camcorder"));
 137 return name;
 138}
 139
 140const AtomicString& microphone()
 141{
 142 DEFINE_STATIC_LOCAL(AtomicString, name, ("microphone"));
 143 return name;
 144}
 145
 146const AtomicString& filesystem()
 147{
 148 DEFINE_STATIC_LOCAL(AtomicString, name, ("filesystem"));
 149 return name;
 150}
 151
 152} // namespace WebCore::MediaCaptureNames
 153
 154#endif
 155
85156}

Source/WebCore/platform/FileChooser.h

3030#ifndef FileChooser_h
3131#define FileChooser_h
3232
 33#include "HTMLInputElement.h"
3334#include "PlatformString.h"
3435#include <wtf/RefCounted.h>
3536#include <wtf/Vector.h>

3738namespace WebCore {
3839
3940class FileChooser;
 41class HTMLInputElement;
 42#if ENABLE(HTML_MEDIA_CAPTURE)
 43class MediaCaptureChooser;
 44#endif
 45
 46#if ENABLE(HTML_MEDIA_CAPTURE)
 47enum MediaCaptureType {
 48 FileSystem,
 49 Camera,
 50 Camcorder,
 51 Microphone,
 52};
 53#endif
4054
4155struct FileChooserSettings {
4256 bool allowsMultipleFiles;

@@public:
5569protected:
5670 FileChooser* newFileChooser(const FileChooserSettings&);
5771
 72#if ENABLE(HTML_MEDIA_CAPTURE)
 73 MediaCaptureChooser* newMediaCaptureChooser(const FileChooserSettings&, MediaCaptureType);
 74 MediaCaptureType determineCaptureType(HTMLInputElement*);
 75#endif
 76
5877private:
5978 void discardChooser();
6079

@@public:
7392
7493 const FileChooserSettings& settings() const { return m_settings; }
7594
76 private:
77  FileChooser(FileChooserClient*, const FileChooserSettings&);
 95protected:
 96 FileChooser(FileChooserClient* client, const FileChooserSettings& settings)
 97 : m_client(client)
 98 , m_settings(settings)
 99 {
 100 }
78101
 102private:
79103 FileChooserClient* m_client;
80104 FileChooserSettings m_settings;
81105};
82106
 107#if ENABLE(HTML_MEDIA_CAPTURE)
 108
 109class MediaCaptureChooser : public FileChooser {
 110public:
 111 static PassRefPtr<MediaCaptureChooser> create(FileChooserClient*, const FileChooserSettings&, MediaCaptureType);
 112 ~MediaCaptureChooser();
 113
 114 MediaCaptureType captureType() { return m_captureType; }
 115
 116private:
 117 MediaCaptureChooser(FileChooserClient* client, const FileChooserSettings& settings, MediaCaptureType type)
 118 : FileChooser(client, settings)
 119 , m_captureType(type)
 120 {
 121 }
 122
 123 MediaCaptureType m_captureType;
 124};
 125
 126namespace MediaCaptureNames {
 127
 128const AtomicString& camera();
 129const AtomicString& camcorder();
 130const AtomicString& microphone();
 131const AtomicString& filesystem();
 132
 133} // namespace WebCore::MediaCaptureNames
 134
 135#endif
 136
83137} // namespace WebCore
84138
85139#endif // FileChooser_h

Source/WebCore/platform/MIMETypeRegistry.cpp

@@static HashSet<String>* supportedImageMIMETypesForEncoding;
189189static HashSet<String>* supportedJavaScriptMIMETypes;
190190static HashSet<String>* supportedNonImageMIMETypes;
191191static HashSet<String>* supportedMediaMIMETypes;
 192#if ENABLE(HTML_MEDIA_CAPTURE)
 193static HashSet<String>* supportedCaptureMIMETypes;
 194#endif
192195static HashSet<String>* unsupportedTextMIMETypes;
193196
194197typedef HashMap<String, Vector<String>*, CaseFoldingHash> MediaMIMETypeMap;

@@static void initializeSupportedMediaMIMETypes()
437440#endif
438441}
439442
 443#if ENABLE(HTML_MEDIA_CAPTURE)
 444static void initializeSupportedCaptureMIMETypes()
 445{
 446 supportedCaptureMIMETypes = new HashSet<String>;
 447 supportedCaptureMIMETypes->add("image/*");
 448 supportedCaptureMIMETypes->add("audio/*");
 449 supportedCaptureMIMETypes->add("video/*");
 450}
 451#endif
 452
440453static void initializeUnsupportedTextMIMETypes()
441454{
442455 static const char* types[] = {

@@bool MIMETypeRegistry::isUnsupportedTextMIMEType(const String& mimeType)
573586 return unsupportedTextMIMETypes->contains(mimeType);
574587}
575588
 589#if ENABLE(HTML_MEDIA_CAPTURE)
 590bool MIMETypeRegistry::isSupportedCaptureMIMEType(const String& mimeType)
 591{
 592 if (mimeType.isEmpty())
 593 return false;
 594 if (!supportedCaptureMIMETypes)
 595 initializeSupportedCaptureMIMETypes();
 596 return supportedCaptureMIMETypes->contains(mimeType);
 597}
 598#endif
 599
576600bool MIMETypeRegistry::isJavaAppletMIMEType(const String& mimeType)
577601{
578602 // Since this set is very limited and is likely to remain so we won't bother with the overhead

Source/WebCore/platform/MIMETypeRegistry.h

@@public:
8080 // browser (e.g. a Qt Plugin).
8181 static bool isApplicationPluginMIMEType(const String& mimeType);
8282
 83#if ENABLE(HTML_MEDIA_CAPTURE)
 84 // Check to see if a mime type is suitable for being operated as html media capture.
 85 static bool isSupportedCaptureMIMEType(const String& mimeType);
 86#endif
 87
8388 static HashSet<String>& getSupportedImageMIMETypes();
8489 static HashSet<String>& getSupportedImageResourceMIMETypes();
8590 static HashSet<String>& getSupportedImageMIMETypesForEncoding();

Source/WebKit/chromium/src/ChromeClientImpl.cpp

@@void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileCh
726726 chooserCompletion->didChooseFile(WebVector<WebString>());
727727}
728728
 729#if ENABLE(HTML_MEDIA_CAPTURE)
 730void ChromeClientImpl::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 731{
 732 notImplemented();
 733}
 734#endif
 735
729736void ChromeClientImpl::loadIconForFiles(const Vector<String>& filenames, FileIconLoader* loader)
730737{
731738 if (!m_webView->client())

Source/WebKit/chromium/src/ChromeClientImpl.h

@@public:
142142 virtual PassOwnPtr<WebCore::ColorChooser> createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&) OVERRIDE;
143143#endif
144144 virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
 145#if ENABLE(HTML_MEDIA_CAPTURE)
 146 virtual void runCapturePanel(WebCore::Frame*, PassRefPtr<WebCore::MediaCaptureChooser>);
 147#endif
145148 virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
146149#if ENABLE(DIRECTORY_UPLOAD)
147150 virtual void enumerateChosenDirectory(WebCore::FileChooser*);

Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp

@@void ChromeClientEfl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFile
449449 chooser->chooseFile(filenames[0]);
450450}
451451
 452#if ENABLE(HTML_MEDIA_CAPTURE)
 453void ChromeClientEfl::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 454{
 455 notImplemented();
 456}
 457#endif
 458
452459void ChromeClientEfl::formStateDidChange(const Node*)
453460{
454461 notImplemented();

Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h

@@public:
143143#endif
144144
145145 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
 146#if ENABLE(HTML_MEDIA_CAPTURE)
 147 virtual void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>);
 148#endif
146149 virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*);
147150 virtual void formStateDidChange(const Node*);
148151

Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp

@@void ChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser)
843843 gtk_widget_destroy(dialog);
844844}
845845
 846#if ENABLE(HTML_MEDIA_CAPTURE)
 847void ChromeClient::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 848{
 849 notImplemented();
 850}
 851#endif
 852
846853void ChromeClient::loadIconForFiles(const Vector<WTF::String>& filenames, WebCore::FileIconLoader* loader)
847854{
848855 loader->notifyFinished(Icon::createIconForFiles(filenames));

Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h

@@namespace WebKit {
129129 virtual void showContextMenu() { }
130130#endif
131131 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
 132#if ENABLE(HTML_MEDIA_CAPTURE)
 133 virtual void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>);
 134#endif
132135 virtual void loadIconForFiles(const Vector<WTF::String>&, FileIconLoader*);
133136
134137 virtual void formStateDidChange(const Node*) { }

Source/WebKit/mac/Configurations/FeatureDefines.xcconfig

@@ENABLE_FILE_SYSTEM = ;
8686ENABLE_FULLSCREEN_API = ENABLE_FULLSCREEN_API;
8787ENABLE_GAMEPAD = ;
8888ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 89ENABLE_HTML_MEDIA_CAPTURE = ;
8990ENABLE_INDEXED_DATABASE = ;
9091ENABLE_INPUT_COLOR = ;
9192ENABLE_INPUT_SPEECH = ;

@@ENABLE_WEB_TIMING = ;
126127ENABLE_WORKERS = ENABLE_WORKERS;
127128ENABLE_XSLT = ENABLE_XSLT;
128129
129 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_SHADERS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);
 130FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CLIENT_BASED_GEOLOCATION) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_SHADERS) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HTML_MEDIA_CAPTURE) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_COLOR) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_TAG) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_TAG) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WORKERS) $(ENABLE_XSLT);

Source/WebKit/mac/WebCoreSupport/WebChromeClient.h

@@public:
121121#endif
122122
123123 virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>) OVERRIDE;
 124#if ENABLE(HTML_MEDIA_CAPTURE)
 125 virtual void runCapturePanel(WebCore::Frame*, PassRefPtr<WebCore::MediaCaptureChooser>) OVERRIDE;
 126#endif
124127 virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*) OVERRIDE;
125128
126129 virtual void setCursor(const WebCore::Cursor&) OVERRIDE;

Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm

@@void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> chooser)
746746 END_BLOCK_OBJC_EXCEPTIONS;
747747}
748748
 749#if ENABLE(HTML_MEDIA_CAPTURE)
 750void WebChromeClient::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 751{
 752 notImplemented();
 753}
 754#endif
 755
749756void WebChromeClient::loadIconForFiles(const Vector<String>& filenames, FileIconLoader* iconLoader)
750757{
751758 iconLoader->notifyFinished(Icon::createIconForFiles(filenames));

Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp

@@void ChromeClientQt::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileC
588588 }
589589}
590590
 591#if ENABLE(HTML_MEDIA_CAPTURE)
 592void ChromeClientQt::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 593{
 594 notImplemented();
 595}
 596#endif
 597
591598void ChromeClientQt::loadIconForFiles(const Vector<String>& filenames, FileIconLoader* loader)
592599{
593600 loader->notifyFinished(Icon::createIconForFiles(filenames));

Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h

@@public:
167167 FullScreenVideoQt* fullScreenVideo();
168168#endif
169169 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
 170#if ENABLE(HTML_MEDIA_CAPTURE)
 171 virtual void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>);
 172#endif
170173 virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*);
171174
172175 virtual void formStateDidChange(const Node*) { }

Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp

@@void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
701701 // FIXME: Show some sort of error if too many files are selected and the buffer is too small. For now, this will fail silently.
702702}
703703
 704#if ENABLE(HTML_MEDIA_CAPTURE)
 705void WebChromeClient::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 706{
 707 notImplemented();
 708}
 709#endif
 710
704711void WebChromeClient::loadIconForFiles(const Vector<WTF::String>& filenames, WebCore::FileIconLoader* loader)
705712{
706713 loader->notifyFinished(Icon::createIconForFiles(filenames));

Source/WebKit/win/WebCoreSupport/WebChromeClient.h

@@public:
127127 virtual void populateVisitedLinks();
128128
129129 virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
 130#if ENABLE(HTML_MEDIA_CAPTURE)
 131 virtual void runCapturePanel(WebCore::Frame*, PassRefPtr<WebCore::MediaCaptureChooser>);
 132#endif
130133 virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
131134
132135 virtual void setCursor(const WebCore::Cursor&);

Source/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp

@@void ChromeClientWinCE::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoo
344344 notImplemented();
345345}
346346
 347#if ENABLE(HTML_MEDIA_CAPTURE)
 348void ChromeClientWinCE::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 349{
 350 notImplemented();
 351}
 352#endif
 353
347354void ChromeClientWinCE::loadIconForFiles(const Vector<String>& filenames, FileIconLoader* loader)
348355{
349356 loader->notifyFinished(Icon::createIconForFiles(filenames));

Source/WebKit/wince/WebCoreSupport/ChromeClientWinCE.h

@@public:
145145 virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*);
146146
147147 virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
 148#if ENABLE(HTML_MEDIA_CAPTURE)
 149 virtual void runCapturePanel(WebCore::Frame*, PassRefPtr<WebCore::MediaCaptureChooser>);
 150#endif
148151 // Asynchronous request to load an icon for specified filenames.
149152 virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
150153

Source/WebKit/wx/WebKitSupport/ChromeClientWx.cpp

@@void ChromeClientWx::runOpenPanel(Frame*, PassRefPtr<FileChooser>)
454454 notImplemented();
455455}
456456
 457#if ENABLE(HTML_MEDIA_CAPTURE)
 458void ChromeClientWx::runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>)
 459{
 460 notImplemented();
 461}
 462#endif
 463
457464void ChromeClientWx::loadIconForFiles(const Vector<String>& filenames, FileIconLoader* loader)
458465{
459466 loader->notifyFinished(Icon::createIconForFiles(filenames));

Source/WebKit/wx/WebKitSupport/ChromeClientWx.h

@@public:
132132#endif
133133
134134 virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
 135#if ENABLE(HTML_MEDIA_CAPTURE)
 136 virtual void runCapturePanel(Frame*, PassRefPtr<MediaCaptureChooser>);
 137#endif
135138 virtual void loadIconForFiles(const Vector<String>&, FileIconLoader*);
136139
137140 virtual void formStateDidChange(const Node*) { }

Source/cmake/OptionsEfl.cmake

@@WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON)
7575WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory support" DEFAULT ON)
7676WEBKIT_FEATURE(ENABLE_FULLSCREEN_API "Enable Fullscreen API support" DEFAULT OFF)
7777WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT OFF)
 78WEBKIT_FEATURE(ENABLE_HTML_MEDIA_CAPTURE "Enable HTML Media Capture" DEFAULT ON)
7879WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON)
7980WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON)
8081WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON)

Source/cmakeconfig.h.cmake

1919#cmakedefine01 ENABLE_FULLSCREEN_API
2020#cmakedefine01 ENABLE_GEOLOCATION
2121#cmakedefine01 ENABLE_GLIB_SUPPORT
 22#cmakedefine01 ENABLE_HTML_MEDIA_CAPTURE
2223#cmakedefine01 ENABLE_ICONDATABASE
2324#cmakedefine01 ENABLE_INDEXED_DATABASE
2425#cmakedefine01 ENABLE_INSPECTOR

Tools/ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add option for HTML Media Capture.
 9
 10 * Scripts/build-webkit:
 11 * qmake/mkspecs/features/features.prf:
 12
1132012-02-16 Carlos Garcia Campos <cgarcia@igalia.com>
214
315 [GTK] Make install is broken when building without --enable-gtk-doc

Tools/Scripts/build-webkit

@@my (
9090 $fullscreenAPISupport,
9191 $gamepadSupport,
9292 $geolocationSupport,
 93 $htmlMediaCaptureSupport,
9394 $iconDatabaseSupport,
9495 $imageResizerSupport,
9596 $indexedDatabaseSupport,

@@my @features = (
215216 { option => "geolocation", desc => "Toggle Geolocation support",
216217 define => "ENABLE_GEOLOCATION", default => (isAppleWebKit() || isGtk() || isBlackBerry()), value => \$geolocationSupport },
217218
 219 { option => "html-media-capture", desc => "Toggle HTML Media Capture support",
 220 define => "ENABLE_HTML_MEDIA_CAPTURE", default => isEfl(), value => \$htmlMediaCaptureSupport },
 221
218222 { option => "icon-database", desc => "Toggle Icon database support",
219223 define => "ENABLE_ICONDATABASE", default => 1, value => \$iconDatabaseSupport },
220224

Tools/qmake/mkspecs/features/features.prf

@@haveQt(4):unix:!mac:!embedded {
8585!contains(DEFINES, ENABLE_MEDIA_STREAM=.): DEFINES += ENABLE_MEDIA_STREAM=0
8686!contains(DEFINES, ENABLE_VIDEO_TRACK=.): DEFINES += ENABLE_VIDEO_TRACK=0
8787!contains(DEFINES, ENABLE_TOUCH_ICON_LOADING=.): DEFINES += ENABLE_TOUCH_ICON_LOADING=0
 88!contains(DEFINES, ENABLE_HTML_MEDIA_CAPTURE=.): DEFINES += ENABLE_HTML_MEDIA_CAPTURE=0
8889!contains(DEFINES, ENABLE_ANIMATION_API=.): DEFINES += ENABLE_ANIMATION_API=0
8990
9091# Enabled in Source/JavaScriptCore/wtf/Platform.h if not set

ChangeLog

 12012-02-16 Jongseok Yang <js45.yang@samsung.com>
 2
 3 Implement the interface for media capture panel to support HTML Media Capture
 4 https://bugs.webkit.org/show_bug.cgi?id=63062
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add option for HTML Media Capture.
 9
 10 * Source/cmake/OptionsEfl.cmake:
 11 * Source/cmakeconfig.h.cmake:
 12 * configure.ac:
 13
1142012-02-16 Simon Hausmann <simon.hausmann@nokia.com>
215
316 [Qt] Move event conversion functions from WebCore to WebKit

configure.ac

@@AC_ARG_ENABLE(device_orientation,
10631063 [],[enable_device_orientation="no"])
10641064AC_MSG_RESULT([$enable_device_orientation])
10651065
 1066# check whether to enable HTML Media Capture
 1067AC_MSG_CHECKING([whether to enable HTML Media Capture])
 1068AC_ARG_ENABLE(html_media_capture,
 1069 AC_HELP_STRING([--enable-html-media-capture],
 1070 [enable support for HTML Media Capture [default=no]]),
 1071 [], [enable_html_media_capture="no"])
 1072AC_MSG_RESULT([$enable_html_media_capture])
 1073
10661074G_IR_SCANNER=
10671075G_IR_COMPILER=
10681076G_IR_GENERATE=

@@AM_CONDITIONAL([ENABLE_INPUT_SPEECH],[test "$enable_input_speech" = "yes"])
13411349AM_CONDITIONAL([ENABLE_XSLT],[test "$enable_xslt" = "yes"])
13421350AM_CONDITIONAL([ENABLE_FILTERS],[test "$enable_filters" = "yes"])
13431351AM_CONDITIONAL([ENABLE_GEOLOCATION], [test "$enable_geolocation" = "yes"])
 1352AM_CONDITIONAL([ENABLE_HTML_MEDIA_CAPTURE], [test "$enable_html_media_capture" = "yes"])
13441353AM_CONDITIONAL([ENABLE_MATHML], [test "$enable_mathml" = "yes"])
13451354AM_CONDITIONAL([ENABLE_MHTML], [test "$enable_mhtml" = "yes"])
13461355AM_CONDITIONAL([ENABLE_VIDEO],[test "$enable_video" = "yes"])

@@Features:
14361445 Media source : $enable_media_source
14371446 Media statistics : $enable_media_statistics
14381447 MHTML support : $enable_mhtml
 1448 HTML Media Capture : $enable_html_media_capture
14391449 HTML5 channel messaging support : $enable_channel_messaging
14401450 HTML5 meter element support : $enable_meter_tag
14411451 HTML5 microdata support : $enable_microdata