diff options
author | Shimeng (Simon) Wang <swang@google.com> | 2011-07-01 11:02:59 -0700 |
---|---|---|
committer | Shimeng (Simon) Wang <swang@google.com> | 2011-07-01 11:14:47 -0700 |
commit | 8db9f9e9e78973e25adf06722ce8f9126e92c60b (patch) | |
tree | b6d6349c5385749c7e37c07dcfb879ccf9506cfd /Source/WebKit | |
parent | c19571f3ec3bec025fa05e8d81ffd1998324e844 (diff) | |
download | external_webkit-8db9f9e9e78973e25adf06722ce8f9126e92c60b.zip external_webkit-8db9f9e9e78973e25adf06722ce8f9126e92c60b.tar.gz external_webkit-8db9f9e9e78973e25adf06722ce8f9126e92c60b.tar.bz2 |
Update viewport using webkit's way.
The Android's customized way of parsing viewport meta tags is kept intact;
while the viewport update notification mechanism is changed to use webkit's
way. This gives much better notification of viewport switching.
issue: 4975315
Change-Id: I7896b67d684efec015245ee804a9243e72ff0b50
Diffstat (limited to 'Source/WebKit')
-rw-r--r-- | Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp | 16 | ||||
-rw-r--r-- | Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp b/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp index 1fd8ee9..7ff5b19 100644 --- a/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp +++ b/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp @@ -347,6 +347,22 @@ void ChromeClientAndroid::scrollbarsModeDidChange() const notImplemented(); } +void ChromeClientAndroid::dispatchViewportDataDidChange(const ViewportArguments& input) const { +#ifdef ANDROID_META_SUPPORT + const ViewportArguments emptyArgument; + if (input == emptyArgument) { + // Empty Argument is for a page with no viewport meta tag; so reset everything. + m_webFrame->page()->settings()->resetMetadataSettings(); + } + Document* doc = m_webFrame->page()->mainFrame()->document(); + if (!doc->ownerElement()) { + FrameView* view = doc->view(); + if (view) + PlatformBridge::updateViewport(view); + } +#endif +} + void ChromeClientAndroid::mouseDidMoveOverElement(const HitTestResult&, unsigned int) {} void ChromeClientAndroid::setToolTip(const String&, TextDirection) {} void ChromeClientAndroid::print(Frame*) {} diff --git a/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.h b/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.h index acb7792..36576e6 100644 --- a/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.h +++ b/Source/WebKit/android/WebCoreSupport/ChromeClientAndroid.h @@ -124,6 +124,8 @@ namespace android { virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const; // End methods used by HostWindow. + virtual void dispatchViewportDataDidChange(const ViewportArguments&) const; + virtual void scrollbarsModeDidChange() const; virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned int); |