Title: [103215] trunk/Source
Revision
103215
Author
kei...@webkit.org
Date
2011-12-18 21:22:52 -0800 (Sun, 18 Dec 2011)

Log Message

Implement <input type=color> UI WebKit chromium part
https://bugs.webkit.org/show_bug.cgi?id=65897

Reviewed by Darin Fisher.

Source/WebCore:

* GNUmakefile.list.am: Removed ColorChooser.cpp and added ColorChooserClient.h
* WebCore.gypi: Added ColorChooser.h and ColorChooserClient.h
* WebCore.xcodeproj/project.pbxproj: Removed ColorChooser.cpp and added ColorChooserClient.h

Source/WebKit/chromium:

* WebKit.gyp: Added new files.
* features.gypi: Added ENABLE_INPUT_COLOR.
* public/WebColorChooser.h: Added. Interface for ColorChooserProxy to call.
(WebKit::WebColorChooser::~WebColorChooser):
(WebKit::WebColorChooser::setSelectedColor):
(WebKit::WebColorChooser::endChooser):
* public/WebColorChooserClient.h: Added.
(WebKit::WebColorChooserClient::~WebColorChooserClient):
(WebKit::WebColorChooserClient::didChooseColor): Only called when user changes the color.
(WebKit::WebColorChooserClient::didEndChooser): Called when WebColorChooser::endChooser is called.
* public/WebViewClient.h:
(WebKit::WebViewClient::createColorChooser): Creates a new color chooser. If there is an old color chooser, this will end it.
* src/ChromeClientImpl.cpp:
(WebKit::ChromeClientImpl::createColorChooser): Calls WebViewClient::createColorChooser.
* src/ChromeClientImpl.h:
* src/ColorChooserProxy.cpp: Proxies calls to WebCore::ColorChooser to WebKit::WebColorChooser.
(WebKit::ColorChooserProxy::ColorChooserProxy):
(WebKit::ColorChooserProxy::~ColorChooserProxy):
(WebKit::ColorChooserProxy::setSelectedColor):
(WebKit::ColorChooserProxy::endChooser):
* src/ColorChooserProxy.h:
* src/WebColorChooserClientImpl.cpp: Proxies calls to WebKit::WebColorChooserClient to WebCore::ColorChooserClient.
(WebKit::WebColorChooserClientImpl::WebColorChooserClientImpl):
(WebKit::WebColorChooserClientImpl::~WebColorChooserClientImpl):
(WebKit::WebColorChooserClientImpl::didChooseColor):
(WebKit::WebColorChooserClientImpl::didEndChooser):
* src/WebColorChooserClientImpl.h: Added.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (103214 => 103215)


--- trunk/Source/WebCore/ChangeLog	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebCore/ChangeLog	2011-12-19 05:22:52 UTC (rev 103215)
@@ -1,3 +1,14 @@
+2011-12-18  Keishi Hattori  <kei...@webkit.org>
+
+        Implement <input type=color> UI WebKit chromium part
+        https://bugs.webkit.org/show_bug.cgi?id=65897
+
+        Reviewed by Darin Fisher.
+
+        * GNUmakefile.list.am: Removed ColorChooser.cpp and added ColorChooserClient.h
+        * WebCore.gypi: Added ColorChooser.h and ColorChooserClient.h
+        * WebCore.xcodeproj/project.pbxproj: Removed ColorChooser.cpp and added ColorChooserClient.h
+
 2011-12-18  David Barton  <dbar...@mathscribe.com>
 
         <msup>, <munder>, <mover>, and <munderover> baseline positions are wrong

Modified: trunk/Source/WebCore/GNUmakefile.list.am (103214 => 103215)


--- trunk/Source/WebCore/GNUmakefile.list.am	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebCore/GNUmakefile.list.am	2011-12-19 05:22:52 UTC (rev 103215)
@@ -2475,8 +2475,8 @@
 	Source/WebCore/platform/Clock.h \
 	Source/WebCore/platform/ClockGeneric.cpp \
 	Source/WebCore/platform/ClockGeneric.h \
-	Source/WebCore/platform/ColorChooser.cpp \
 	Source/WebCore/platform/ColorChooser.h \
+	Source/WebCore/platform/ColorChooserClient.h \
 	Source/WebCore/platform/ContentType.cpp \
 	Source/WebCore/platform/ContentType.h \
 	Source/WebCore/platform/ContextMenu.h \

Modified: trunk/Source/WebCore/WebCore.gypi (103214 => 103215)


--- trunk/Source/WebCore/WebCore.gypi	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebCore/WebCore.gypi	2011-12-19 05:22:52 UTC (rev 103215)
@@ -667,6 +667,8 @@
             'page/mac/WebCoreFrameView.h',
             'platform/AsyncFileStream.h',
             'platform/Clock.h',
+            'platform/ColorChooser.h',
+            'platform/ColorChooserClient.h',
             'platform/ContextMenu.h',
             'platform/ContextMenuItem.h',
             'platform/Cookie.h',

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (103214 => 103215)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2011-12-19 05:22:52 UTC (rev 103215)
@@ -5437,8 +5437,8 @@
 		C0F2A44113869AAB0066C534 /* preprocessor.pm in Headers */ = {isa = PBXBuildFile; fileRef = C0F2A43F13869A280066C534 /* preprocessor.pm */; settings = {ATTRIBUTES = (Private, ); }; };
 		C105DA620F3AA68F001DD44F /* TextEncodingDetectorICU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */; };
 		C105DA640F3AA6B8001DD44F /* TextEncodingDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */; };
-		C330A22213EC196B0000B45B /* ColorChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C330A22013EC196B0000B45B /* ColorChooser.cpp */; };
 		C330A22313EC196B0000B45B /* ColorChooser.h in Headers */ = {isa = PBXBuildFile; fileRef = C330A22113EC196B0000B45B /* ColorChooser.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		C37CDEBD149EF2030042090D /* ColorChooserClient.h in Headers */ = {isa = PBXBuildFile; fileRef = C37CDEBC149EF2030042090D /* ColorChooserClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		C50B561612119D23008B46E0 /* GroupSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C50B561412119D23008B46E0 /* GroupSettings.cpp */; };
 		C50B561712119D23008B46E0 /* GroupSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = C50B561512119D23008B46E0 /* GroupSettings.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		C50D0E820FF4272900AC2644 /* StorageNamespace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C50D0E800FF4272900AC2644 /* StorageNamespace.cpp */; };
@@ -12811,8 +12811,8 @@
 		C0F2A43F13869A280066C534 /* preprocessor.pm */ = {isa = PBXFileReference; lastKnownFileType = text.script.perl; name = preprocessor.pm; path = scripts/preprocessor.pm; sourceTree = "<group>"; };
 		C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextEncodingDetectorICU.cpp; sourceTree = "<group>"; };
 		C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextEncodingDetector.h; sourceTree = "<group>"; };
-		C330A22013EC196B0000B45B /* ColorChooser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ColorChooser.cpp; sourceTree = "<group>"; };
 		C330A22113EC196B0000B45B /* ColorChooser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorChooser.h; sourceTree = "<group>"; };
+		C37CDEBC149EF2030042090D /* ColorChooserClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorChooserClient.h; sourceTree = "<group>"; };
 		C50B561412119D23008B46E0 /* GroupSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GroupSettings.cpp; sourceTree = "<group>"; };
 		C50B561512119D23008B46E0 /* GroupSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupSettings.h; sourceTree = "<group>"; };
 		C50D0E800FF4272900AC2644 /* StorageNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StorageNamespace.cpp; sourceTree = "<group>"; };
@@ -20233,8 +20233,8 @@
 				89D08D9D12228451001241DF /* AsyncFileSystem.h */,
 				89D08D9E12228451001241DF /* AsyncFileSystemCallbacks.h */,
 				51E1ECB10C91C55600DC255B /* AutodrainedPool.h */,
-				C330A22013EC196B0000B45B /* ColorChooser.cpp */,
 				C330A22113EC196B0000B45B /* ColorChooser.h */,
+				C37CDEBC149EF2030042090D /* ColorChooserClient.h */,
 				BCC8CFCA0986CD2400140BF2 /* ColorData.gperf */,
 				41D015C90F4B5C71004A662F /* ContentType.cpp */,
 				41D015C80F4B5C71004A662F /* ContentType.h */,
@@ -24940,6 +24940,7 @@
 				49ECEB6C1499790D00CDD3A4 /* FELightingNEON.h in Headers */,
 				1A2F9D7A14968C740065AC63 /* ScrollingCoordinator.h in Headers */,
 				1AA7160B149BC4DB0016EC19 /* TileCache.h in Headers */,
+				C37CDEBD149EF2030042090D /* ColorChooserClient.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -25433,7 +25434,6 @@
 				93C441EF0F813A1A00C1A634 /* CollectionCache.cpp in Sources */,
 				B27535660B053814002CE64F /* Color.cpp in Sources */,
 				0FCF33240F2B9715004B6795 /* ColorCG.cpp in Sources */,
-				C330A22213EC196B0000B45B /* ColorChooser.cpp in Sources */,
 				1ABA76C911D20E47004C201C /* ColorData.cpp in Sources */,
 				B22279620D00BF220071B782 /* ColorDistance.cpp in Sources */,
 				F55B3DB31251F12D003EF269 /* ColorInputType.cpp in Sources */,

Deleted: trunk/Source/WebCore/platform/ColorChooser.cpp (103214 => 103215)


--- trunk/Source/WebCore/platform/ColorChooser.cpp	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebCore/platform/ColorChooser.cpp	2011-12-19 05:22:52 UTC (rev 103215)
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution. 
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "config.h"
-#include "ColorChooser.h"
-
-#include <wtf/PassOwnPtr.h>
-
-#if ENABLE(INPUT_COLOR)
-
-namespace WebCore {
-
-ColorChooserClient::~ColorChooserClient()
-{
-    discardChooser();
-}
-
-ColorChooser* ColorChooserClient::newColorChooser()
-{
-    discardChooser();
-
-    m_chooser = ColorChooser::create(this);
-    return m_chooser.get();
-}
-
-void ColorChooserClient::discardChooser()
-{
-    if (m_chooser)
-        m_chooser->disconnectClient();
-    m_chooser.clear();
-}
-
-inline ColorChooser::ColorChooser(ColorChooserClient* client)
-    : m_client(client)
-{
-}
-
-PassRefPtr<ColorChooser> ColorChooser::create(ColorChooserClient* client)
-{
-    return adoptRef(new ColorChooser(client));
-}
-
-ColorChooser::~ColorChooser()
-{
-}
-
-void ColorChooser::didChooseColor(const Color& color)
-{
-    if (m_client)
-        m_client->didChooseColor(color);
-}
-
-void ColorChooser::didCleanup()
-{
-    if (m_client)
-        m_client->didCleanup();
-}
-
-}
-
-#endif // ENABLE(INPUT_COLOR)

Modified: trunk/Source/WebKit/chromium/ChangeLog (103214 => 103215)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-12-19 05:22:52 UTC (rev 103215)
@@ -1,3 +1,38 @@
+2011-12-18  Keishi Hattori  <kei...@webkit.org>
+
+        Implement <input type=color> UI WebKit chromium part
+        https://bugs.webkit.org/show_bug.cgi?id=65897
+
+        Reviewed by Darin Fisher.
+
+        * WebKit.gyp: Added new files.
+        * features.gypi: Added ENABLE_INPUT_COLOR.
+        * public/WebColorChooser.h: Added. Interface for ColorChooserProxy to call.
+        (WebKit::WebColorChooser::~WebColorChooser):
+        (WebKit::WebColorChooser::setSelectedColor):
+        (WebKit::WebColorChooser::endChooser):
+        * public/WebColorChooserClient.h: Added.
+        (WebKit::WebColorChooserClient::~WebColorChooserClient):
+        (WebKit::WebColorChooserClient::didChooseColor): Only called when user changes the color.
+        (WebKit::WebColorChooserClient::didEndChooser): Called when WebColorChooser::endChooser is called.
+        * public/WebViewClient.h:
+        (WebKit::WebViewClient::createColorChooser): Creates a new color chooser. If there is an old color chooser, this will end it.
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::createColorChooser): Calls WebViewClient::createColorChooser.
+        * src/ChromeClientImpl.h:
+        * src/ColorChooserProxy.cpp: Proxies calls to WebCore::ColorChooser to WebKit::WebColorChooser.
+        (WebKit::ColorChooserProxy::ColorChooserProxy):
+        (WebKit::ColorChooserProxy::~ColorChooserProxy):
+        (WebKit::ColorChooserProxy::setSelectedColor):
+        (WebKit::ColorChooserProxy::endChooser):
+        * src/ColorChooserProxy.h:
+        * src/WebColorChooserClientImpl.cpp: Proxies calls to WebKit::WebColorChooserClient to WebCore::ColorChooserClient.
+        (WebKit::WebColorChooserClientImpl::WebColorChooserClientImpl):
+        (WebKit::WebColorChooserClientImpl::~WebColorChooserClientImpl):
+        (WebKit::WebColorChooserClientImpl::didChooseColor):
+        (WebKit::WebColorChooserClientImpl::didEndChooser):
+        * src/WebColorChooserClientImpl.h: Added.
+
 2011-12-18  James Kozianski  <k...@chromium.org>
 
         [chromium] Add worldId parameter to allowScriptExtension()

Modified: trunk/Source/WebKit/chromium/WebKit.gyp (103214 => 103215)


--- trunk/Source/WebKit/chromium/WebKit.gyp	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebKit/chromium/WebKit.gyp	2011-12-19 05:22:52 UTC (rev 103215)
@@ -106,6 +106,8 @@
                 'public/WebBindings.h',
                 'public/WebBlob.h',
                 'public/WebCache.h',
+                'public/WebColorChooser.h',
+                'public/WebColorChooserClient.h',
                 'public/WebCommonWorkerClient.h',
                 'public/WebCompositionUnderline.h',
                 'public/WebCompositor.h',
@@ -370,6 +372,8 @@
                 'src/CCThreadImpl.h',
                 'src/ChromeClientImpl.cpp',
                 'src/ChromeClientImpl.h',
+                'src/ColorChooserProxy.cpp',
+                'src/ColorChooserProxy.h',
                 'src/ChromiumCurrentTime.cpp',
                 'src/ChromiumOSRandomSource.cpp',
                 'src/ChromiumThreading.cpp',
@@ -481,6 +485,8 @@
                 'src/WebBlobData.cpp',
                 'src/WebCache.cpp',
                 'src/WebColor.cpp',
+                'src/WebColorChooserClientImpl.cpp',
+                'src/WebColorChooserClientImpl.h',
                 'src/WebCommon.cpp',
                 'src/WebCompositorImpl.cpp',
                 'src/WebCompositorImpl.h',

Modified: trunk/Source/WebKit/chromium/features.gypi (103214 => 103215)


--- trunk/Source/WebKit/chromium/features.gypi	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebKit/chromium/features.gypi	2011-12-19 05:22:52 UTC (rev 103215)
@@ -53,6 +53,7 @@
       'ENABLE_GESTURE_RECOGNIZER=1',
       'ENABLE_ICONDATABASE=0',
       'ENABLE_INDEXED_DATABASE=1',
+      'ENABLE_INPUT_COLOR=0',
       'ENABLE_INPUT_SPEECH=1',
       'ENABLE_INPUT_TYPE_COLOR=0',
       'ENABLE_INPUT_TYPE_DATE=0',

Copied: trunk/Source/WebKit/chromium/public/WebColorChooser.h (from rev 103214, trunk/Source/WebCore/platform/ColorChooser.cpp) (0 => 103215)


--- trunk/Source/WebKit/chromium/public/WebColorChooser.h	                        (rev 0)
+++ trunk/Source/WebKit/chromium/public/WebColorChooser.h	2011-12-19 05:22:52 UTC (rev 103215)
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebColorChooser_h
+#define WebColorChooser_h
+
+#include "platform/WebColor.h"
+#include "platform/WebCommon.h"
+
+namespace WebKit {
+
+// This represents a color chooser.
+class WebColorChooser {
+public:
+    virtual ~WebColorChooser() { }
+
+    // Set selected color in the color chooser.
+    virtual void setSelectedColor(const WebColor color) { }
+
+    // Calling this ends the color chooser and the client won't be recieving
+    // didChooseColor callbacks anymore.
+    virtual void endChooser() { }
+};
+
+}
+
+#endif // WebColorChooser_h

Copied: trunk/Source/WebKit/chromium/public/WebColorChooserClient.h (from rev 103214, trunk/Source/WebCore/platform/ColorChooser.cpp) (0 => 103215)


--- trunk/Source/WebKit/chromium/public/WebColorChooserClient.h	                        (rev 0)
+++ trunk/Source/WebKit/chromium/public/WebColorChooserClient.h	2011-12-19 05:22:52 UTC (rev 103215)
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebColorChooserClient_h
+#define WebColorChooserClient_h
+
+#include "platform/WebColor.h"
+#include "platform/WebCommon.h"
+
+namespace WebKit {
+
+// Receives calls from WebColorChooser and passes it to the WebCore side.
+class WebColorChooserClient {
+public:
+    virtual ~WebColorChooserClient() { }
+
+    // Called when user selects a color in the color chooser.
+    virtual void didChooseColor(const WebColor&) { }
+
+    // Called when color chooser has ended.
+    virtual void didEndChooser() { }
+};
+
+}
+
+#endif // WebColorChooserClient_h

Modified: trunk/Source/WebKit/chromium/public/WebViewClient.h (103214 => 103215)


--- trunk/Source/WebKit/chromium/public/WebViewClient.h	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebKit/chromium/public/WebViewClient.h	2011-12-19 05:22:52 UTC (rev 103215)
@@ -41,11 +41,14 @@
 #include "WebTextAffinity.h"
 #include "WebTextDirection.h"
 #include "WebWidgetClient.h"
+#include "platform/WebColor.h"
 #include "platform/WebString.h"
 
 namespace WebKit {
 
 class WebAccessibilityObject;
+class WebColorChooser;
+class WebColorChooserClient;
 class WebDeviceOrientationClient;
 class WebDragData;
 class WebElement;
@@ -177,9 +180,15 @@
     // indicating that the default action should be suppressed.
     virtual bool handleCurrentKeyboardEvent() { return false; }
 
-
     // Dialogs -------------------------------------------------------------
 
+    // This method opens the color chooser and returns a new WebColorChooser
+    // instance. If there is a WebColorChooser already from the last time this
+    // was called, it ends the color chooser by calling endChooser, and replaces
+    // it with the new one.
+    virtual WebColorChooser* createColorChooser(WebColorChooserClient*,
+                                                const WebColor&) { return 0; }
+
     // This method returns immediately after showing the dialog. When the
     // dialog is closed, it should call the WebFileChooserCompletion to
     // pass the results of the dialog. Returns false if

Modified: trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp (103214 => 103215)


--- trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp	2011-12-19 05:22:52 UTC (rev 103215)
@@ -34,6 +34,11 @@
 
 #include "AXObjectCache.h"
 #include "AccessibilityObject.h"
+#if ENABLE(INPUT_COLOR)
+#include "ColorChooser.h"
+#include "ColorChooserClient.h"
+#include "ColorChooserProxy.h"
+#endif
 #include "Console.h"
 #include "Cursor.h"
 #include "DatabaseTracker.h"
@@ -68,6 +73,10 @@
 #include "V8Proxy.h"
 #endif
 #include "WebAccessibilityObject.h"
+#if ENABLE(INPUT_COLOR)
+#include "WebColorChooser.h"
+#include "WebColorChooserClientImpl.h"
+#endif
 #include "WebConsoleMessage.h"
 #include "WebCursorInfo.h"
 #include "WebFileChooserCompletionImpl.h"
@@ -675,6 +684,21 @@
     ASSERT_NOT_REACHED();
 }
 
+#if ENABLE(INPUT_COLOR)
+PassOwnPtr<ColorChooser> ChromeClientImpl::createColorChooser(ColorChooserClient* chooserClient, const Color& initialColor)
+{
+    WebViewClient* client = m_webView->client();
+    if (!client)
+        return nullptr;
+    WebColorChooserClientImpl* chooserClientProxy = new WebColorChooserClientImpl(chooserClient);
+    WebColor webColor = static_cast<WebColor>(initialColor.rgb());
+    WebColorChooser* chooser = client->createColorChooser(chooserClientProxy, webColor);
+    if (!chooser)
+        return nullptr;
+    return adoptPtr(new ColorChooserProxy(adoptPtr(chooser)));
+}
+#endif
+
 void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileChooser)
 {
     WebViewClient* client = m_webView->client();

Modified: trunk/Source/WebKit/chromium/src/ChromeClientImpl.h (103214 => 103215)


--- trunk/Source/WebKit/chromium/src/ChromeClientImpl.h	2011-12-19 05:06:06 UTC (rev 103214)
+++ trunk/Source/WebKit/chromium/src/ChromeClientImpl.h	2011-12-19 05:22:52 UTC (rev 103215)
@@ -38,6 +38,10 @@
 
 namespace WebCore {
 class AccessibilityObject;
+#if ENABLE(INPUT_COLOR)
+class ColorChooser;
+class ColorChooserClient;
+#endif
 class Element;
 class FileChooser;
 class PopupContainer;
@@ -134,6 +138,9 @@
     virtual bool paintCustomOverhangArea(WebCore::GraphicsContext*, const WebCore::IntRect&, const WebCore::IntRect&, const WebCore::IntRect&);
     virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
     virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*);
+#if ENABLE(INPUT_COLOR)
+    virtual PassOwnPtr<WebCore::ColorChooser> createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&) OVERRIDE;
+#endif
     virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
     virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);
 #if ENABLE(DIRECTORY_UPLOAD)

Copied: trunk/Source/WebKit/chromium/src/ColorChooserProxy.cpp (from rev 103214, trunk/Source/WebCore/platform/ColorChooser.cpp) (0 => 103215)


--- trunk/Source/WebKit/chromium/src/ColorChooserProxy.cpp	                        (rev 0)
+++ trunk/Source/WebKit/chromium/src/ColorChooserProxy.cpp	2011-12-19 05:22:52 UTC (rev 103215)
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ColorChooserProxy.h"
+
+#include "Color.h"
+#include "WebColorChooser.h"
+#include "platform/WebColor.h"
+
+#if ENABLE(INPUT_COLOR)
+
+namespace WebKit {
+
+ColorChooserProxy::ColorChooserProxy(PassOwnPtr<WebColorChooser> chooser) : m_chooser(chooser)
+{
+}
+
+ColorChooserProxy::~ColorChooserProxy()
+{
+}
+
+void ColorChooserProxy::setSelectedColor(const WebCore::Color& color)
+{
+    if (!m_chooser)
+        return;
+    WebColor webColor = static_cast<WebColor>(color.rgb());
+    m_chooser->setSelectedColor(webColor);
+}
+
+void ColorChooserProxy::endChooser()
+{
+    if (!m_chooser)
+        return;
+    m_chooser->endChooser();
+}
+
+}
+
+#endif // ENABLE(INPUT_COLOR)

Copied: trunk/Source/WebKit/chromium/src/ColorChooserProxy.h (from rev 103214, trunk/Source/WebCore/platform/ColorChooser.cpp) (0 => 103215)


--- trunk/Source/WebKit/chromium/src/ColorChooserProxy.h	                        (rev 0)
+++ trunk/Source/WebKit/chromium/src/ColorChooserProxy.h	2011-12-19 05:22:52 UTC (rev 103215)
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ColorChooserProxy_h
+#define ColorChooserProxy_h
+
+#include "ColorChooser.h"
+#include "WebColorChooser.h"
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+
+#if ENABLE(INPUT_COLOR)
+
+namespace WebKit {
+
+class ColorChooserProxy : public WebCore::ColorChooser {
+public:
+    ColorChooserProxy(PassOwnPtr<WebColorChooser>);
+    virtual ~ColorChooserProxy();
+
+    virtual void setSelectedColor(const WebCore::Color&);
+    virtual void endChooser();
+
+private:
+    OwnPtr<WebColorChooser> m_chooser;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(INPUT_COLOR)
+
+#endif // ColorChooserProxy_h

Copied: trunk/Source/WebKit/chromium/src/WebColorChooserClientImpl.cpp (from rev 103214, trunk/Source/WebCore/platform/ColorChooser.cpp) (0 => 103215)


--- trunk/Source/WebKit/chromium/src/WebColorChooserClientImpl.cpp	                        (rev 0)
+++ trunk/Source/WebKit/chromium/src/WebColorChooserClientImpl.cpp	2011-12-19 05:22:52 UTC (rev 103215)
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebColorChooserClientImpl.h"
+
+#include "Color.h"
+#include "ColorChooserClient.h"
+
+#if ENABLE(INPUT_COLOR)
+
+namespace WebKit {
+
+WebColorChooserClientImpl::WebColorChooserClientImpl(WebCore::ColorChooserClient* client) : m_client(client)
+{
+}
+
+WebColorChooserClientImpl::~WebColorChooserClientImpl()
+{
+}
+
+void WebColorChooserClientImpl::didChooseColor(const WebColor& color)
+{
+    if (!m_client)
+        return;
+    m_client->didChooseColor(WebCore::Color(static_cast<WebCore::RGBA32>(color)));
+}
+
+void WebColorChooserClientImpl::didEndChooser()
+{
+    if (!m_client)
+        return;
+    m_client->didEndChooser();
+}
+
+}
+
+#endif // ENABLE(INPUT_COLOR)

Copied: trunk/Source/WebKit/chromium/src/WebColorChooserClientImpl.h (from rev 103214, trunk/Source/WebCore/platform/ColorChooser.cpp) (0 => 103215)


--- trunk/Source/WebKit/chromium/src/WebColorChooserClientImpl.h	                        (rev 0)
+++ trunk/Source/WebKit/chromium/src/WebColorChooserClientImpl.h	2011-12-19 05:22:52 UTC (rev 103215)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2011 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebColorChooserClientImpl_h
+#define WebColorChooserClientImpl_h
+
+#include "WebColorChooserClient.h"
+
+#if ENABLE(INPUT_COLOR)
+
+namespace WebCore {
+class ColorChooserClient;
+}
+
+namespace WebKit {
+
+class WebColorChooserClientImpl : public WebColorChooserClient {
+public:
+    WebColorChooserClientImpl(WebCore::ColorChooserClient*);
+    virtual ~WebColorChooserClientImpl();
+
+    virtual void didChooseColor(const WebColor&) OVERRIDE;
+    virtual void didEndChooser() OVERRIDE;
+
+private:
+    WebCore::ColorChooserClient* m_client;
+};
+
+}
+
+#endif // ENABLE(INPUT_COLOR)
+
+#endif // WebColorChooserClientImpl_h
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to