summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/chromium/ChangeLog457
-rw-r--r--WebKit/chromium/public/WebIDBKey.h6
-rw-r--r--WebKit/chromium/public/WebKitClient.h9
-rw-r--r--WebKit/chromium/public/WebSettings.h5
-rw-r--r--WebKit/chromium/src/ChromeClientImpl.cpp21
-rw-r--r--WebKit/chromium/src/ChromeClientImpl.h3
-rw-r--r--WebKit/chromium/src/ChromiumBridge.cpp10
-rw-r--r--WebKit/chromium/src/WebIDBKey.cpp4
-rw-r--r--WebKit/chromium/src/WebSettingsImpl.cpp25
-rw-r--r--WebKit/chromium/src/WebSettingsImpl.h5
-rw-r--r--WebKit/chromium/src/WebViewImpl.cpp21
-rw-r--r--WebKit/mac/ChangeLog25
-rw-r--r--WebKit/mac/WebView/WebDynamicScrollBarsView.h6
-rw-r--r--WebKit/mac/WebView/WebDynamicScrollBarsView.mm66
-rw-r--r--WebKit/mac/WebView/WebFrameView.mm2
-rw-r--r--WebKit/mac/WebView/WebHTMLView.mm6
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.cpp7
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.h2
18 files changed, 652 insertions, 28 deletions
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 6443cb1..3d8a0e0 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,460 @@
+2010-12-10 Hans Wennborg <hans@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ IndexedDB: Numeric keys are floats.
+ https://bugs.webkit.org/show_bug.cgi?id=50674
+
+ Represent numeric keys as floating point values.
+
+ * public/WebIDBKey.h:
+ (WebKit::WebIDBKey::WebIDBKey):
+ * src/WebIDBKey.cpp:
+ (WebKit::WebIDBKey::assign):
+ (WebKit::WebIDBKey::number):
+
+2010-12-09 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r73616.
+ http://trac.webkit.org/changeset/73616
+ https://bugs.webkit.org/show_bug.cgi?id=50772
+
+ Breaks chromium win build (Requested by hwennborg on #webkit).
+
+ * public/WebIDBKey.h:
+ (WebKit::WebIDBKey::WebIDBKey):
+ * src/WebIDBKey.cpp:
+ (WebKit::WebIDBKey::assign):
+ (WebKit::WebIDBKey::number):
+
+2010-12-09 Hans Wennborg <hans@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ IndexedDB: Numeric keys are floats.
+ https://bugs.webkit.org/show_bug.cgi?id=50674
+
+ Represent numeric keys as floating point values.
+
+ * public/WebIDBKey.h:
+ (WebKit::WebIDBKey::WebIDBKey):
+ * src/WebIDBKey.cpp:
+ (WebKit::WebIDBKey::assign):
+ (WebKit::WebIDBKey::number):
+
+2010-12-07 Brian Weinstein <bweinstein@apple.com>
+
+ Reviewed by John Sullivan.
+
+ Layering Violation in ContextMenu - member variable of type HitTestResult
+ https://bugs.webkit.org/show_bug.cgi?id=50586
+
+ Update users of ContextMenu and ContextMenuController to match where the new functions
+ are located.
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::selectMisspelledWord):
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+
+2010-12-06 Darin Adler <darin@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Pass security origin to make local file decision correctly
+ https://bugs.webkit.org/show_bug.cgi?id=48603
+
+ * src/ApplicationCacheHost.cpp:
+ (WebCore::ApplicationCacheHost::selectCacheWithManifest): Pass security origin.
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::dispatchCreatePage): Ditto.
+ (WebKit::FrameLoaderClientImpl::createFrame): Ditto.
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::loadFrameRequest): Ditto.
+
+2010-12-07 Martin Robinson <mrobinson@igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::finishedLoading):
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::encoding):
+ (WebKit::WebFrameImpl::loadJavaScriptURL):
+ * src/WebPageSerializerImpl.cpp:
+ (WebKit::WebPageSerializerImpl::preActionBeforeSerializeOpenTag):
+ (WebKit::WebPageSerializerImpl::serialize):
+ * src/WebSearchableFormData.cpp:
+ (WebCore::GetFormEncoding):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::pageEncoding):
+
+2010-12-07 Kenichi Ishibashi <bashi@google.com>
+
+ Reviewed by Kent Tamura.
+
+ Let HTMLObjectElement be a form associated element
+ https://bugs.webkit.org/show_bug.cgi?id=48821
+
+ Modified to use FormAssociatedElement instead of HTMLFormControlElement.
+
+ * src/WebFormElement.cpp:
+ (WebKit::WebFormElement::getFormControlElements): Modified to use
+ FormAssociatedElement instead of HTMLFormControlElement.
+ * src/WebPasswordFormUtils.cpp:
+ (WebKit::findPasswordFormFields): Ditto.
+ * src/WebSearchableFormData.cpp:
+ (WebCore::GetButtonToActivate): Ditto.
+ (WebCore::HasSuitableTextElement): Ditto.
+
+2010-12-06 Nate Chapin <japhet@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Update calls to DocumentWriter.
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::finishedLoading):
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::encoding):
+ (WebKit::WebFrameImpl::loadJavaScriptURL):
+ * src/WebPageSerializerImpl.cpp:
+ (WebKit::WebPageSerializerImpl::preActionBeforeSerializeOpenTag):
+ (WebKit::WebPageSerializerImpl::serialize):
+ * src/WebSearchableFormData.cpp:
+ (WebCore::GetFormEncoding):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::pageEncoding):
+
+2010-12-03 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r73302.
+ http://trac.webkit.org/changeset/73302
+ https://bugs.webkit.org/show_bug.cgi?id=50499
+
+ Causes crashes in debug LayoutTests (Requested by xan_ on
+ #webkit).
+
+ * public/WebAccessibilityObject.h:
+ * src/WebAccessibilityObject.cpp:
+ (WebKit::WebAccessibilityObject::parentObject):
+
+2010-12-01 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Inspector protocol cleanup task.
+
+ The patch has just small renames and adjustments for the protocol things.
+ 'handler' keyword in idl file was replaced with 'domain'.
+ 'domain' property was assigned for the each backend to frontend messages.
+ At the next step WebInspector wrapper functions will be removed and 'agents' will be called directly.
+
+ https://bugs.webkit.org/show_bug.cgi?id=50337
+
+ * src/WebDevToolsFrontendImpl.cpp:
+ (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
+
+2010-12-03 Chris Guillory <chris.guillory@google.com>
+
+ Reviewed by Chris Fleizach.
+
+ Include the FrameView widget of a RenderWidget in the accessibility tree.
+ https://bugs.webkit.org/show_bug.cgi?id=49106
+
+ * public/WebAccessibilityObject.h:
+ * src/WebAccessibilityObject.cpp:
+ (WebKit::WebAccessibilityObject::equals):
+ (WebKit::WebAccessibilityObject::parentObject):
+
+2010-11-29 Jeremy Orlow <jorlow@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [Chromium] Clean up IndexedDB 2 sided roll bits
+ https://bugs.webkit.org/show_bug.cgi?id=50160
+
+ * public/WebIDBDatabase.h:
+ (WebKit::WebIDBDatabase::version):
+ (WebKit::WebIDBDatabase::objectStoreNames):
+ (WebKit::WebIDBDatabase::deleteObjectStore):
+ * public/WebIDBFactory.h:
+ (WebKit::WebIDBFactory::open):
+ * public/WebIDBKeyRange.h:
+ * public/WebIDBObjectStore.h:
+ (WebKit::WebIDBObjectStore::deleteFunction):
+ * src/IDBDatabaseProxy.cpp:
+ * src/IDBDatabaseProxy.h:
+ * src/WebIDBKeyRange.cpp:
+
+2010-12-02 Chris Rogers <crogers@google.com>
+
+ Reviewed by Darin Fisher.
+
+ Fine-tune chromium WebKit API for loading audio resources
+ https://bugs.webkit.org/show_bug.cgi?id=50406
+
+ * public/WebAudioBus.h:
+ (WebKit::WebAudioBus::~WebAudioBus):
+ * public/WebKitClient.h:
+ (WebKit::WebKitClient::loadAudioResource):
+ * src/ChromiumBridge.cpp:
+ (WebCore::ChromiumBridge::decodeAudioFileData):
+ * src/WebAudioBus.cpp:
+ (WebKit::WebAudioBus::reset):
+
+2010-12-02 Darin Fisher <darin@chromium.org>
+
+ Fix the Windows multi-dll build. Do not export functions that are
+ implemented inline!
+
+ * public/WebFormControlElement.h:
+ (WebKit::WebFormControlElement::assign):
+
+2010-12-02 Tony Chang <tony@chromium.org>
+
+ Unreviewed, roll chromium deps to r67980.
+
+ * DEPS:
+
+2010-12-01 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: [Resources panel] [HAR] Need a way to save timing data.
+ Enable resource export to HAR for Chromium.
+ https://bugs.webkit.org/show_bug.cgi?id=45663
+
+ * src/js/DevTools.js: Preferences.resourceExportEnabled = true
+
+2010-12-02 Vincent Scheib <scheib@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] histograms api updated in WebKitClient/ChromiumBridge and histogram "GPU.setIsAcceleratedCompositingActive" added.
+ https://bugs.webkit.org/show_bug.cgi?id=50285
+
+ Test by loading "about:histograms" after navigating to accelerated pages.
+
+ * public/WebKitClient.h:
+ (WebKit::WebKitClient::histogramCustomCounts): api update.
+ (WebKit::WebKitClient::histogramEnumeration): api update.
+ * src/ChromiumBridge.cpp:
+ (WebCore::ChromiumBridge::histogramCustomCounts): api update.
+ (WebCore::ChromiumBridge::histogramEnumeration): api update.
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): "GPU.setIsAcceleratedCompositingActive" added.
+
+2010-12-01 Jia Pu <jpu@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Support multiple correction candidates panel for misspelled word on Mac OS X.
+ https://bugs.webkit.org/show_bug.cgi?id=50137
+ <rdar://problem/8568059>
+
+ Adopted new function signature defined in base class.
+
+ * src/EditorClientImpl.cpp:
+ (WebKit::EditorClientImpl::getGuessesForWord):
+ * src/EditorClientImpl.h:
+
+2010-12-01 Alexey Marinichev <amarinichev@chromium.org>
+
+ Reviewed by James Robinson.
+
+ [chromium] renderer does not realize hardware compositing is disabled and crashes
+ https://bugs.webkit.org/show_bug.cgi?id=50264
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setRootGraphicsLayer): repaint always
+ (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): null check
+ (WebKit::WebViewImpl::reallocateRenderer):
+
+2010-11-30 Vangelis Kokkevis <vangelis@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Get the value of the accelerated compositing triggers from the Settings
+ class. This allows setting the triggers via command line flags.
+ https://bugs.webkit.org/show_bug.cgi?id=50301
+
+ * public/WebSettings.h:
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::allowedCompositingTriggers):
+ * src/WebSettingsImpl.cpp:
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingFor3DTransformsEnabled):
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingForVideoEnabled):
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled):
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingForCanvasEnabled):
+ (WebKit::WebSettingsImpl::setAcceleratedCompositingForAnimationEnabled):
+ * src/WebSettingsImpl.h:
+
+2010-12-01 Tony Chang <tony@chromium.org>
+
+ Unreviewed, rolling chromium deps to r67811.
+
+ * DEPS:
+
+2010-12-01 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: disable cookies tab in network resource view by default, enable for chromium
+ https://bugs.webkit.org/show_bug.cgi?id=50249
+
+ * src/js/DevTools.js:
+
+2010-11-30 Ojan Vafai <ojan@chromium.org>
+
+ Revert r72876. It caused a ~30% perf regression in chromium's bloat-http test
+ https://bugs.webkit.org/show_bug.cgi?id=50288
+
+ 2010-11-29 Adam Barth <abarth@webkit.org (:abarth) (r)>
+ Reviewed by Darin Adler.
+ Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs
+ https://bugs.webkit.org/show_bug.cgi?id=50182
+ A display-isolated URL can only be displayed (e.g., put in an iframe,
+ hyperlinked to) by documents from that scheme. In a sense, this is a
+ generalization of some of the protections we give file URLs, but
+ instead of lumping them all together into one "local" bucket, this
+ patch creates a separate bucket for each scheme.
+ For a while, I tried using a separate bucket for each origin. That
+ would have played nicely with what Blob URLs are trying to do, but some
+ "chrome" URL pages rely on being able to display other chrome URL
+ pages, even in different origins. For example, the New Tab Page shows
+ thumbnails from the "thumbnail" host.
+ This patch also removes a bunch of unused code. I've also propagated
+ the "deprecated" status of deprecatedCanDisplay to
+ deprecatedShouldTreatURLAsLocal because that method has no other
+ callers and is really asking for uppercase/lowercase bugs. I dream of
+ someday removing these functions.
+ 2010-11-29 Adam Barth <abarth@webkit.org (:abarth) (r)>
+ Reviewed by Darin Adler.
+ Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs
+ https://bugs.webkit.org/show_bug.cgi?id=50182
+ This patch adds a Chromium API for registering schemes as
+ display-isolated. In a subsequent patch, I'll change the "chrome"
+ scheme in Chrome to be display isolated instead of local. That will
+ prevent file URLs from linking to chrome URLs.
+
+ * public/WebSecurityPolicy.h:
+ * src/WebSecurityPolicy.cpp:
+
+2010-11-30 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Update yasm entry in DEPS to match downstream
+ https://bugs.webkit.org/show_bug.cgi?id=50274
+
+ http://src.chromium.org/viewvc/chrome?view=rev&revision=67540 changed the downstream DEPS rule
+ for yasm to pull unconditionally rather than pulling in each deps_os. This changes the WebKit
+ chromium DEPS to match.
+
+ * DEPS:
+
+2010-11-29 Vangelis Kokkevis <vangelis@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Provide more fine grained control to ports over when to turn on accelerated
+ compositing.
+ https://bugs.webkit.org/show_bug.cgi?id=49998
+
+ As part of this change, the old hasAcceleratedCompositing method on the ChromeClient
+ has now been replaced by allowedCompositingTriggers which returns a bitfield of
+ all the features which can trigger the compositor.
+
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::allowedCompositingTriggers):
+ * src/ChromeClientImpl.h:
+
+2010-11-30 Jochen Eisinger <jochen@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] pass webframe to web frame client's cookieJar
+ https://bugs.webkit.org/show_bug.cgi?id=50148
+
+ * public/WebFrameClient.h:
+ (WebKit::WebFrameClient::cookieJar):
+ * src/ChromiumBridge.cpp:
+ (WebCore::getCookieJar):
+
+2010-11-30 Jochen Eisinger <jochen@chromium.org>
+
+ Unreviewed. Roll chromium 67532:67541.
+
+ * DEPS:
+
+2010-11-29 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Introduce the notion of a "display-isolated" URL scheme for use by Chrome-internal URLs
+ https://bugs.webkit.org/show_bug.cgi?id=50182
+
+ This patch adds a Chromium API for registering schemes as
+ display-isolated. In a subsequent patch, I'll change the "chrome"
+ scheme in Chrome to be display isolated instead of local. That will
+ prevent file URLs from linking to chrome URLs.
+
+ * public/WebSecurityPolicy.h:
+ * src/WebSecurityPolicy.cpp:
+ (WebKit::WebSecurityPolicy::registerURLSchemeAsDisplayIsolated):
+
+2010-11-29 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [Chromium] Add substitution parameters to WebKitClient::queryLocalizedString()
+ https://bugs.webkit.org/show_bug.cgi?id=50053
+
+ * public/WebKitClient.h:
+ (WebKit::WebKitClient::queryLocalizedString): Add overload functions with
+ substitution string parameters, and remove the integer parameter overload.
+ * src/LocalizedStrings.cpp:
+ (WebCore::query): Add string parameter overloads, and remove the integer parameter overload.
+ (WebCore::multipleFileUploadText): Call the string parameter query().
+ (WebCore::validationMessageTooLongText): Pass the parameters to query().
+ (WebCore::validationMessageRangeUnderflowText): ditto.
+ (WebCore::validationMessageRangeOverflowText): ditto.
+ (WebCore::validationMessageStepMismatchText): ditto.
+
+2010-11-29 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Remove Build directory that was erroneously added in r72103.
+
+ * Build: Removed.
+
+2010-11-29 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Web Inspector: [Chromium] Expose extension API to select a node in WebInspector
+ Added WebDevToolsAgent::inspect()
+ https://bugs.webkit.org/show_bug.cgi?id=49727
+
+ * public/WebDevToolsAgent.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::inspectNode):
+ * src/WebDevToolsAgentImpl.h:
+
+2010-11-29 Dimitri Glazkov <dglazkov@chromium.org>
+
+ [Chromium] Remove python_24 dependency, because it is no longer necessary.
+
+ * DEPS: Removed python_24 dependency.
+
2010-11-29 Bernhard Bauer <bauerb@chromium.org>
Reviewed by Jeremy Orlow.
diff --git a/WebKit/chromium/public/WebIDBKey.h b/WebKit/chromium/public/WebIDBKey.h
index 171fe78..c77a5b7 100644
--- a/WebKit/chromium/public/WebIDBKey.h
+++ b/WebKit/chromium/public/WebIDBKey.h
@@ -48,7 +48,7 @@ public:
WEBKIT_API static WebIDBKey createFromValueAndKeyPath(const WebSerializedScriptValue&, const WebIDBKeyPath&);
WebIDBKey(const WebString& string) { assign(string); }
- WebIDBKey(int32_t number) { assign(number); }
+ WebIDBKey(double number) { assign(number); }
WebIDBKey(const WebIDBKey& e) { assign(e); }
WebIDBKey& operator=(const WebIDBKey& e)
{
@@ -59,7 +59,7 @@ public:
WEBKIT_API void assign(const WebIDBKey&);
WEBKIT_API void assignNull();
WEBKIT_API void assign(const WebString&);
- WEBKIT_API void assign(int32_t);
+ WEBKIT_API void assign(double);
WEBKIT_API void assignInvalid();
WEBKIT_API void reset();
@@ -73,7 +73,7 @@ public:
WEBKIT_API Type type() const;
WEBKIT_API WebString string() const; // Only valid for StringType.
- WEBKIT_API int32_t number() const; // Only valid for numberType.
+ WEBKIT_API double number() const; // Only valid for numberType.
#if WEBKIT_IMPLEMENTATION
WebIDBKey(const WTF::PassRefPtr<WebCore::IDBKey>&);
diff --git a/WebKit/chromium/public/WebKitClient.h b/WebKit/chromium/public/WebKitClient.h
index 8832add..de801f5 100644
--- a/WebKit/chromium/public/WebKitClient.h
+++ b/WebKit/chromium/public/WebKitClient.h
@@ -210,10 +210,11 @@ public:
virtual void traceEventBegin(const char* name, void* id, const char* extra) { }
virtual void traceEventEnd(const char* name, void* id, const char* extra) { }
- // Generic callback for reporting histogram data. Range is identified by the min, max pair.
- // By default, histogram is exponential, so that min=1, max=1000000, bucketCount=50 would do. Setting
- // linear to true would require bucket count to cover whole min-max range.
- virtual void histogramCounts(const WebString& name, int sample, int min, int max, int bucketCount, bool linear) { }
+ // Callbacks for reporting histogram data.
+ // CustomCounts histogram has exponential bucket sizes, so that min=1, max=1000000, bucketCount=50 would do.
+ virtual void histogramCustomCounts(const char* name, int sample, int min, int max, int bucketCount) { }
+ // Enumeration histogram buckets are linear, boundaryValue should be larger than any possible sample value.
+ virtual void histogramEnumeration(const char* name, int sample, int boundaryValue) { }
// Resources -----------------------------------------------------------
diff --git a/WebKit/chromium/public/WebSettings.h b/WebKit/chromium/public/WebSettings.h
index fa21551..0467c96 100644
--- a/WebKit/chromium/public/WebSettings.h
+++ b/WebKit/chromium/public/WebSettings.h
@@ -93,6 +93,11 @@ public:
virtual void setShowDebugBorders(bool) = 0;
virtual void setEditingBehavior(EditingBehavior) = 0;
virtual void setAcceleratedCompositingEnabled(bool) = 0;
+ virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool) = 0;
+ virtual void setAcceleratedCompositingForVideoEnabled(bool) = 0;
+ virtual void setAcceleratedCompositingForCanvasEnabled(bool) = 0;
+ virtual void setAcceleratedCompositingForPluginsEnabled(bool) = 0;
+ virtual void setAcceleratedCompositingForAnimationEnabled(bool) = 0;
virtual void setAccelerated2dCanvasEnabled(bool) = 0;
virtual void setMemoryInfoEnabled(bool) = 0;
virtual void setHyperlinkAuditingEnabled(bool) = 0;
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index c43a0b0..7b67ede 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -61,6 +61,7 @@
#include "ScriptController.h"
#include "SearchPopupMenuChromium.h"
#include "SecurityOrigin.h"
+#include "Settings.h"
#if USE(V8)
#include "V8Proxy.h"
#endif
@@ -807,9 +808,25 @@ void ChromeClientImpl::scheduleCompositingLayerSync()
m_webView->setRootLayerNeedsDisplay();
}
-bool ChromeClientImpl::allowsAcceleratedCompositing() const
+ChromeClient::CompositingTriggerFlags ChromeClientImpl::allowedCompositingTriggers() const
{
- return m_webView->allowsAcceleratedCompositing();
+ if (!m_webView->allowsAcceleratedCompositing())
+ return 0;
+
+ CompositingTriggerFlags flags = 0;
+ Settings* settings = m_webView->page()->settings();
+ if (settings->acceleratedCompositingFor3DTransformsEnabled())
+ flags |= ThreeDTransformTrigger;
+ if (settings->acceleratedCompositingForVideoEnabled())
+ flags |= VideoTrigger;
+ if (settings->acceleratedCompositingForPluginsEnabled())
+ flags |= PluginTrigger;
+ if (settings->acceleratedCompositingForAnimationEnabled())
+ flags |= AnimationTrigger;
+ if (settings->acceleratedCompositingForCanvasEnabled())
+ flags |= CanvasTrigger;
+
+ return flags;
}
#endif
diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h
index 87c1653..b024bc0 100644
--- a/WebKit/chromium/src/ChromeClientImpl.h
+++ b/WebKit/chromium/src/ChromeClientImpl.h
@@ -152,8 +152,7 @@ public:
// to do an eager layout before the drawing.
virtual void scheduleCompositingLayerSync();
- // Returns true if accelerated compositing is supported.
- virtual bool allowsAcceleratedCompositing() const;
+ virtual CompositingTriggerFlags allowedCompositingTriggers() const;
#endif
virtual bool supportsFullscreenForNode(const WebCore::Node*);
diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp
index 4ac3f6f..e9d1da6 100644
--- a/WebKit/chromium/src/ChromiumBridge.cpp
+++ b/WebKit/chromium/src/ChromiumBridge.cpp
@@ -679,6 +679,16 @@ void ChromiumBridge::incrementStatsCounter(const char* name)
webKitClient()->incrementStatsCounter(name);
}
+void ChromiumBridge::histogramCustomCounts(const char* name, int sample, int min, int max, int bucketCount)
+{
+ webKitClient()->histogramCustomCounts(name, sample, min, max, bucketCount);
+}
+
+void ChromiumBridge::histogramEnumeration(const char* name, int sample, int boundaryValue)
+{
+ webKitClient()->histogramEnumeration(name, sample, boundaryValue);
+}
+
// Sudden Termination ---------------------------------------------------------
void ChromiumBridge::suddenTerminationChanged(bool enabled)
diff --git a/WebKit/chromium/src/WebIDBKey.cpp b/WebKit/chromium/src/WebIDBKey.cpp
index 413a9e6..b7a7db8 100644
--- a/WebKit/chromium/src/WebIDBKey.cpp
+++ b/WebKit/chromium/src/WebIDBKey.cpp
@@ -77,7 +77,7 @@ void WebIDBKey::assign(const WebString& string)
m_private = IDBKey::create(string);
}
-void WebIDBKey::assign(int32_t number)
+void WebIDBKey::assign(double number)
{
m_private = IDBKey::create(number);
}
@@ -104,7 +104,7 @@ WebString WebIDBKey::string() const
return m_private->string();
}
-int32_t WebIDBKey::number() const
+double WebIDBKey::number() const
{
return m_private->number();
}
diff --git a/WebKit/chromium/src/WebSettingsImpl.cpp b/WebKit/chromium/src/WebSettingsImpl.cpp
index 1bea259..e60562c 100644
--- a/WebKit/chromium/src/WebSettingsImpl.cpp
+++ b/WebKit/chromium/src/WebSettingsImpl.cpp
@@ -284,6 +284,31 @@ void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled)
m_settings->setAcceleratedCompositingEnabled(enabled);
}
+void WebSettingsImpl::setAcceleratedCompositingFor3DTransformsEnabled(bool enabled)
+{
+ m_settings->setAcceleratedCompositingFor3DTransformsEnabled(enabled);
+}
+
+void WebSettingsImpl::setAcceleratedCompositingForVideoEnabled(bool enabled)
+{
+ m_settings->setAcceleratedCompositingForVideoEnabled(enabled);
+}
+
+void WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled(bool enabled)
+{
+ m_settings->setAcceleratedCompositingForPluginsEnabled(enabled);
+}
+
+void WebSettingsImpl::setAcceleratedCompositingForCanvasEnabled(bool enabled)
+{
+ m_settings->setAcceleratedCompositingForCanvasEnabled(enabled);
+}
+
+void WebSettingsImpl::setAcceleratedCompositingForAnimationEnabled(bool enabled)
+{
+ m_settings->setAcceleratedCompositingForAnimationEnabled(enabled);
+}
+
void WebSettingsImpl::setAccelerated2dCanvasEnabled(bool enabled)
{
m_settings->setAccelerated2dCanvasEnabled(enabled);
diff --git a/WebKit/chromium/src/WebSettingsImpl.h b/WebKit/chromium/src/WebSettingsImpl.h
index 081188f..ffdc8d3 100644
--- a/WebKit/chromium/src/WebSettingsImpl.h
+++ b/WebKit/chromium/src/WebSettingsImpl.h
@@ -88,6 +88,11 @@ public:
virtual void setShowDebugBorders(bool);
virtual void setEditingBehavior(EditingBehavior);
virtual void setAcceleratedCompositingEnabled(bool);
+ virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool);
+ virtual void setAcceleratedCompositingForVideoEnabled(bool);
+ virtual void setAcceleratedCompositingForPluginsEnabled(bool);
+ virtual void setAcceleratedCompositingForCanvasEnabled(bool);
+ virtual void setAcceleratedCompositingForAnimationEnabled(bool);
virtual void setAccelerated2dCanvasEnabled(bool);
virtual void setMemoryInfoEnabled(bool);
virtual void setHyperlinkAuditingEnabled(bool);
diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp
index c6f227e..7bec254 100644
--- a/WebKit/chromium/src/WebViewImpl.cpp
+++ b/WebKit/chromium/src/WebViewImpl.cpp
@@ -35,6 +35,7 @@
#include "AXObjectCache.h"
#include "BackForwardListImpl.h"
#include "Chrome.h"
+#include "ChromiumBridge.h"
#include "ColorSpace.h"
#include "CompositionUnderlineVectorBuilder.h"
#include "ContextMenu.h"
@@ -2272,17 +2273,15 @@ bool WebViewImpl::allowsAcceleratedCompositing()
void WebViewImpl::setRootGraphicsLayer(WebCore::PlatformLayer* layer)
{
- bool wasActive = m_isAcceleratedCompositingActive;
setIsAcceleratedCompositingActive(layer ? true : false);
if (m_layerRenderer)
m_layerRenderer->setRootLayer(layer);
- if (wasActive != m_isAcceleratedCompositingActive) {
- IntRect damagedRect(0, 0, m_size.width, m_size.height);
- if (m_isAcceleratedCompositingActive)
- invalidateRootLayerRect(damagedRect);
- else
- m_client->didInvalidateRect(damagedRect);
- }
+
+ IntRect damagedRect(0, 0, m_size.width, m_size.height);
+ if (m_isAcceleratedCompositingActive)
+ invalidateRootLayerRect(damagedRect);
+ else
+ m_client->didInvalidateRect(damagedRect);
}
void WebViewImpl::setRootLayerNeedsDisplay()
@@ -2376,12 +2375,15 @@ void WebViewImpl::invalidateRootLayerRect(const IntRect& rect)
void WebViewImpl::setIsAcceleratedCompositingActive(bool active)
{
+ ChromiumBridge::histogramEnumeration("GPU.setIsAcceleratedCompositingActive", active * 2 + m_isAcceleratedCompositingActive, 4);
+
if (m_isAcceleratedCompositingActive == active)
return;
if (!active) {
m_isAcceleratedCompositingActive = false;
- m_layerRenderer->finish(); // finish all GL rendering before we hide the window?
+ if (m_layerRenderer)
+ m_layerRenderer->finish(); // finish all GL rendering before we hide the window?
m_client->didActivateAcceleratedCompositing(false);
return;
}
@@ -2518,7 +2520,6 @@ void WebViewImpl::reallocateRenderer()
m_layerRenderer = layerRenderer;
// Enable or disable accelerated compositing and request a refresh.
- m_isAcceleratedCompositingActive = false;
setRootGraphicsLayer(m_layerRenderer ? m_layerRenderer->rootLayer() : 0);
}
#endif
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 5b9ab92..fe5c984 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,28 @@
+2010-11-29 Jeremy Moskovich <jeremy@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Right-to-left pages should be scrollable to reveal left overflow.
+ https://bugs.webkit.org/show_bug.cgi?id=23556
+
+ Set and get the original x-axis scroll position and reset scroll position on HOME/END key press.
+ Modify WebFrameView to support setting the initial horizontal scroller's thumb position to the right for
+ pages with a left overflow.
+
+ * WebView/WebDynamicScrollBarsView.h:
+ * WebView/WebDynamicScrollBarsView.mm:
+ (-[WebDynamicScrollBarsView inProgramaticScroll]):
+ (-[WebDynamicScrollBarsView refreshInitialScrollbarPosition]):
+ (-[WebDynamicScrollBarsView updateScrollers]):
+ (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
+ (-[WebDynamicScrollBarsView setScrollOriginX:]):
+ (-[WebDynamicScrollBarsView scrollOriginX]):
+ * WebView/WebFrameView.mm:
+ (-[WebFrameView _scrollToBeginningOfDocument]):
+ (-[WebFrameView _scrollToEndOfDocument]):
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _frameOrBoundsChanged]):
+
2010-11-22 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Tony Chang.
diff --git a/WebKit/mac/WebView/WebDynamicScrollBarsView.h b/WebKit/mac/WebView/WebDynamicScrollBarsView.h
index c289a04..b89462d 100644
--- a/WebKit/mac/WebView/WebDynamicScrollBarsView.h
+++ b/WebKit/mac/WebView/WebDynamicScrollBarsView.h
@@ -58,4 +58,10 @@ struct WebDynamicScrollBarsViewPrivate;
// visible is that they have been suppressed by setAlwaysHideHorizontal/VerticalScroller:.
- (BOOL)horizontalScrollingAllowed;
- (BOOL)verticalScrollingAllowed;
+
+// Returns YES if we're currently in the middle of programmatically moving the
+// scrollbar.
+// NOTE: As opposed to other places in the code, programmatically moving the
+// scrollers from inside this class should not fire JS events.
+- (BOOL)inProgramaticScroll;
@end
diff --git a/WebKit/mac/WebView/WebDynamicScrollBarsView.mm b/WebKit/mac/WebView/WebDynamicScrollBarsView.mm
index 74439dd..480d146 100644
--- a/WebKit/mac/WebView/WebDynamicScrollBarsView.mm
+++ b/WebKit/mac/WebView/WebDynamicScrollBarsView.mm
@@ -62,6 +62,15 @@ struct WebDynamicScrollBarsViewPrivate {
bool alwaysHideVerticalScroller;
bool horizontalScrollingAllowedButScrollerHidden;
bool verticalScrollingAllowedButScrollerHidden;
+
+ // scrollOriginX is 0 for LTR page and is the negative of left layout overflow value for RTL page.
+ int scrollOriginX;
+
+ // Flag to indicate that the scrollbar thumb's initial position needs to
+ // be manually set.
+ bool setScrollbarThumbInitialPosition;
+
+ bool inProgrammaticScroll;
};
@implementation WebDynamicScrollBarsView
@@ -149,6 +158,11 @@ struct WebDynamicScrollBarsViewPrivate {
return _private->verticalScrollingAllowedButScrollerHidden || [self hasVerticalScroller];
}
+- (BOOL)inProgramaticScroll
+{
+ return _private->inProgrammaticScroll;
+}
+
@end
@implementation WebDynamicScrollBarsView (WebInternal)
@@ -201,6 +215,29 @@ struct WebDynamicScrollBarsViewPrivate {
#endif
}
+- (void)refreshInitialScrollbarPosition
+{
+ if (_private->setScrollbarThumbInitialPosition) {
+ NSView *documentView = [self documentView];
+ NSRect documentRect = [documentView bounds];
+
+ // If scrollOriginX is non-zero that means that there's a left overflow <=> this is an RTL document and thus
+ // the initial position of the horizontal scrollbar thumb should be on the right.
+ // FIXME: If knowledge of document directionality is ever propagated to the scroll view, it probably makes
+ // more sense to use the directionality directly in the below if statement, rather than doing so indirectly
+ // through scrollOriginX.
+ if (_private->scrollOriginX != 0) {
+ // The call to [NSView scrollPoint:] fires off notification the handler for which needs to know that
+ // we're setting the initial scroll position so it doesn't interpret this as a user action and
+ // fire off a JS event.
+ _private->inProgrammaticScroll = true;
+ [documentView scrollPoint:NSMakePoint(NSMaxX(documentRect) - NSWidth([self contentViewFrame]), 0)];
+ _private->inProgrammaticScroll = false;
+ }
+ _private->setScrollbarThumbInitialPosition = false;
+ }
+}
+
static const unsigned cMaxUpdateScrollbarsPass = 2;
- (void)updateScrollers
@@ -302,6 +339,12 @@ static const unsigned cMaxUpdateScrollbarsPass = 2;
if (hasHorizontalScroller != newHasHorizontalScroller) {
_private->inUpdateScrollers = YES;
[self setHasHorizontalScroller:newHasHorizontalScroller];
+
+ // For RTL documents, we need to set the initial position of the
+ // horizontal scrollbar thumb to be on the right.
+ if (newHasHorizontalScroller)
+ _private->setScrollbarThumbInitialPosition = true;
+
_private->inUpdateScrollers = NO;
needsLayout = YES;
}
@@ -364,6 +407,11 @@ static const unsigned cMaxUpdateScrollbarsPass = 2;
}
#endif
+ // The call to [NSView reflectScrolledClipView] sets the scrollbar thumb
+ // position to 0 (the left) when the view is initially displayed.
+ // This call updates the initial position correctly.
+ [self refreshInitialScrollbarPosition];
+
#if USE(ACCELERATED_COMPOSITING) && defined(BUILDING_ON_LEOPARD)
NSView *documentView = [self documentView];
if ([documentView isKindOfClass:[WebHTMLView class]]) {
@@ -525,4 +573,22 @@ static const unsigned cMaxUpdateScrollbarsPass = 2;
return [super accessibilityIsIgnored];
}
+- (void)setScrollOriginX:(int)scrollOriginX
+{
+ _private->scrollOriginX = scrollOriginX;
+
+ id docView = [self documentView];
+ if (scrollOriginX != [docView bounds].origin.x) {
+ // "-[self scrollOriginX]" is equal to the left layout overflow.
+ // Make Document bounds origin x coordinate correspond to the left overflow so the entire canvas is covered by the document.
+ [docView setBoundsOrigin:NSMakePoint(-scrollOriginX, [docView bounds].origin.y)];
+ }
+
+}
+
+- (int)scrollOriginX
+{
+ return _private->scrollOriginX;
+}
+
@end
diff --git a/WebKit/mac/WebView/WebFrameView.mm b/WebKit/mac/WebView/WebFrameView.mm
index 0db12c0..40ee0b1 100644
--- a/WebKit/mac/WebView/WebFrameView.mm
+++ b/WebKit/mac/WebView/WebFrameView.mm
@@ -536,6 +536,7 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
if (![self _isScrollable])
return NO;
NSPoint point = [[[self _scrollView] documentView] frame].origin;
+ point.x += [[self _scrollView] scrollOriginX];
return [[self _contentView] _scrollTo:&point animate:YES];
}
@@ -547,6 +548,7 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
return NO;
NSRect frame = [[[self _scrollView] documentView] frame];
NSPoint point = NSMakePoint(frame.origin.x, NSMaxY(frame));
+ point.x += [[self _scrollView] scrollOriginX];
return [[self _contentView] _scrollTo:&point animate:YES];
}
diff --git a/WebKit/mac/WebView/WebHTMLView.mm b/WebKit/mac/WebView/WebHTMLView.mm
index ec2473f..07e4876 100644
--- a/WebKit/mac/WebView/WebHTMLView.mm
+++ b/WebKit/mac/WebView/WebHTMLView.mm
@@ -1198,8 +1198,11 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info)
- (void)_frameOrBoundsChanged
{
+ WebView *webView = [self _webView];
+ WebDynamicScrollBarsView *scrollView = [[[webView mainFrame] frameView] _scrollView];
+
NSPoint origin = [[self superview] bounds].origin;
- if (!NSEqualPoints(_private->lastScrollPosition, origin)) {
+ if (!NSEqualPoints(_private->lastScrollPosition, origin) && ![scrollView inProgramaticScroll]) {
if (Frame* coreFrame = core([self _frame])) {
if (FrameView* coreView = coreFrame->view()) {
#ifndef BUILDING_ON_TIGER
@@ -1214,7 +1217,6 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info)
[_private->completionController endRevertingChange:NO moveLeft:NO];
- WebView *webView = [self _webView];
[[webView _UIDelegateForwarder] webView:webView didScrollDocumentInFrameView:[self _frameView]];
}
_private->lastScrollPosition = origin;
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index d4875a8..e72ef3e 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -617,9 +617,12 @@ void ChromeClientQt::scheduleCompositingLayerSync()
platformPageClient()->markForSync(true);
}
-bool ChromeClientQt::allowsAcceleratedCompositing() const
+ChromeClient::CompositingTriggerFlags ChromeClientQt::allowedCompositingTriggers() const
{
- return (platformPageClient() && platformPageClient()->allowsAcceleratedCompositing());
+ if (platformPageClient() && platformPageClient()->allowsAcceleratedCompositing())
+ return AllTriggers;
+
+ return 0;
}
#endif
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index b8bc72d..bcf8975 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -152,7 +152,7 @@ namespace WebCore {
virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*);
virtual void setNeedsOneShotDrawingSynchronization();
virtual void scheduleCompositingLayerSync();
- virtual bool allowsAcceleratedCompositing() const;
+ virtual CompositingTriggerFlags allowedCompositingTriggers() const;
#endif
#if ENABLE(TILED_BACKING_STORE)