summaryrefslogtreecommitdiffstats
path: root/WebKit/android/WebCoreSupport
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/android/WebCoreSupport')
-rw-r--r--WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp46
-rw-r--r--WebKit/android/WebCoreSupport/ChromeClientAndroid.h5
-rw-r--r--WebKit/android/WebCoreSupport/ContextMenuClientAndroid.cpp2
-rw-r--r--WebKit/android/WebCoreSupport/ContextMenuClientAndroid.h2
-rw-r--r--WebKit/android/WebCoreSupport/DragClientAndroid.cpp3
-rw-r--r--WebKit/android/WebCoreSupport/DragClientAndroid.h2
-rw-r--r--WebKit/android/WebCoreSupport/EditorClientAndroid.cpp3
-rw-r--r--WebKit/android/WebCoreSupport/EditorClientAndroid.h2
-rw-r--r--WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp41
-rw-r--r--WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.h6
-rwxr-xr-xWebKit/android/WebCoreSupport/GeolocationPermissions.cpp23
-rwxr-xr-xWebKit/android/WebCoreSupport/GeolocationPermissions.h3
-rw-r--r--WebKit/android/WebCoreSupport/InspectorClientAndroid.h2
-rw-r--r--WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp15
14 files changed, 109 insertions, 46 deletions
diff --git a/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp b/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp
index 1c17ffe..cfac25e 100644
--- a/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/ChromeClientAndroid.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -81,8 +81,28 @@ FloatRect ChromeClientAndroid::pageRect() { notImplemented(); return FloatRect()
float ChromeClientAndroid::scaleFactor()
{
- ASSERT(m_webFrame);
- return m_webFrame->density();
+ /* Conceptually, we should return the density of the device's screen,
+ except that we don't really model webkit's notion of drawing. Webkit
+ expects the drawing context's matrix (plus scale-factor) to reflect the
+ actually transformation to the pixels, and thus it uses scaleFactor to
+ perform some pre-rounding in a few places (e.g. HTMLCanvasElement).
+
+ ASSERT(m_webFrame);
+ return m_webFrame->density();
+
+ However, in Android we capture the drawing into a displayList, and then
+ replay that list at various scale factors (sometimes zoomed out, other
+ times zoomed in for "normal" reading, yet other times at arbitrary
+ zoom values based on the user's choice). In all of these cases, we do
+ not re-record the displayList, hence it is usually harmful to perform
+ any pre-rounding, since we just don't know the actual drawing resolution
+ at record time.
+
+ Given Android's device-independent drawing model, we always return 1.0
+ for this function, and we implement roundToDevicePixels() to be a no-op
+ so that we don't introduce pre-rounding artifacts during record.
+ */
+ return 1.0f;
}
void ChromeClientAndroid::focus() {
@@ -165,7 +185,7 @@ void ChromeClientAndroid::closeWindowSoon()
// This will prevent javascript cross-scripting during unload
page->setGroupName(String());
// Stop loading but do not send the unload event
- mainFrame->loader()->stopLoading(false);
+ mainFrame->loader()->stopLoading(UnloadEventPolicyNone);
// Cancel all pending loaders
mainFrame->loader()->stopAllLoaders();
// Remove all event listeners so that no javascript can execute as a result
@@ -241,9 +261,7 @@ IntRect ChromeClientAndroid::windowToScreen(const IntRect&) const {
return IntRect();
}
-// new to change 38068 (Nov 6, 2008)
-// in place of view()->containingWindow(), webkit now uses view()->hostWindow()->platformWindow()
-PlatformWidget ChromeClientAndroid::platformWindow() const {
+PlatformPageClient ChromeClientAndroid::platformPageClient() const {
Page* page = m_webFrame->page();
Frame* mainFrame = page->mainFrame();
FrameView* view = mainFrame->view();
@@ -266,6 +284,11 @@ void ChromeClientAndroid::formStateDidChange(const Node*)
notImplemented();
}
+void ChromeClientAndroid::scrollbarsModeDidChange() const
+{
+ notImplemented();
+}
+
void ChromeClientAndroid::mouseDidMoveOverElement(const HitTestResult&, unsigned int) {}
void ChromeClientAndroid::setToolTip(const String&, TextDirection) {}
void ChromeClientAndroid::print(Frame*) {}
@@ -368,7 +391,14 @@ void ChromeClientAndroid::onMainFrameLoadStarted()
m_geolocationPermissions->resetTemporaryPermissionStates();
}
-void ChromeClientAndroid::runOpenPanel(Frame*, PassRefPtr<FileChooser>) { notImplemented(); }
+void ChromeClientAndroid::runOpenPanel(Frame* frame,
+ PassRefPtr<FileChooser> chooser)
+{
+ android::WebViewCore* core = android::WebViewCore::getWebViewCore(
+ frame->view());
+ core->openFileChooser(chooser);
+}
+
bool ChromeClientAndroid::setCursor(PlatformCursorHandle)
{
notImplemented();
diff --git a/WebKit/android/WebCoreSupport/ChromeClientAndroid.h b/WebKit/android/WebCoreSupport/ChromeClientAndroid.h
index 9976326..7bd7088 100644
--- a/WebKit/android/WebCoreSupport/ChromeClientAndroid.h
+++ b/WebKit/android/WebCoreSupport/ChromeClientAndroid.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -104,11 +104,12 @@ namespace android {
virtual void scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect);
virtual IntPoint screenToWindow(const IntPoint&) const;
virtual IntRect windowToScreen(const IntRect&) const;
- virtual PlatformWidget platformWindow() const;
+ virtual PlatformPageClient platformPageClient() const;
virtual void contentsSizeChanged(Frame*, const IntSize&) const;
virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const;
// End methods used by HostWindow.
+ virtual void scrollbarsModeDidChange() const;
virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned int);
virtual void setToolTip(const String&, TextDirection);
diff --git a/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.cpp b/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.cpp
index e6ad0a6..3dc4b00 100644
--- a/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
diff --git a/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.h b/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.h
index ab4e445..4563829 100644
--- a/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.h
+++ b/WebKit/android/WebCoreSupport/ContextMenuClientAndroid.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
diff --git a/WebKit/android/WebCoreSupport/DragClientAndroid.cpp b/WebKit/android/WebCoreSupport/DragClientAndroid.cpp
index 64406e7..f64b80c 100644
--- a/WebKit/android/WebCoreSupport/DragClientAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/DragClientAndroid.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -22,6 +22,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+
#define LOG_TAG "WebCore"
#include "config.h"
diff --git a/WebKit/android/WebCoreSupport/DragClientAndroid.h b/WebKit/android/WebCoreSupport/DragClientAndroid.h
index 5f0548f..020e1f1 100644
--- a/WebKit/android/WebCoreSupport/DragClientAndroid.h
+++ b/WebKit/android/WebCoreSupport/DragClientAndroid.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
diff --git a/WebKit/android/WebCoreSupport/EditorClientAndroid.cpp b/WebKit/android/WebCoreSupport/EditorClientAndroid.cpp
index d2e45ff..c07ea71 100644
--- a/WebKit/android/WebCoreSupport/EditorClientAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/EditorClientAndroid.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -22,6 +22,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+
#define LOG_TAG "WebCore"
#include "config.h"
diff --git a/WebKit/android/WebCoreSupport/EditorClientAndroid.h b/WebKit/android/WebCoreSupport/EditorClientAndroid.h
index 3569f10..614926a 100644
--- a/WebKit/android/WebCoreSupport/EditorClientAndroid.h
+++ b/WebKit/android/WebCoreSupport/EditorClientAndroid.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
diff --git a/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp b/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp
index c567c66..250382e 100644
--- a/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -22,6 +22,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+
#define LOG_TAG "WebCore"
#include "config.h"
@@ -343,7 +344,7 @@ void FrameLoaderClientAndroid::dispatchDidFailProvisionalLoad(const ResourceErro
// load with the replacement data.
// use KURL(const char*) as KURL(const String& url) can trigger ASSERT for
// invalidate URL string.
- loadDataIntoFrame(m_frame, KURL(data), error.failingURL(), s);
+ loadDataIntoFrame(m_frame, KURL(ParsedURLString, data), error.failingURL(), s);
// Delete the asset.
delete a;
@@ -432,7 +433,7 @@ void FrameLoaderClientAndroid::dispatchDecidePolicyForMIMEType(FramePolicyFuncti
if (!func)
return;
if (request.isNull()) {
- (m_frame->loader()->*func)(PolicyIgnore);
+ (m_frame->loader()->policyChecker()->*func)(PolicyIgnore);
return;
}
// Default to Use (display internally).
@@ -463,7 +464,7 @@ void FrameLoaderClientAndroid::dispatchDecidePolicyForMIMEType(FramePolicyFuncti
WebCore::DocumentLoader* docLoader = m_frame->loader()->activeDocumentLoader();
if (docLoader->response().httpStatusCode() == 204)
action = PolicyIgnore;
- (m_frame->loader()->*func)(action);
+ (m_frame->loader()->policyChecker()->*func)(action);
}
void FrameLoaderClientAndroid::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction func,
@@ -475,7 +476,7 @@ void FrameLoaderClientAndroid::dispatchDecidePolicyForNewWindowAction(FramePolic
return;
if (request.isNull()) {
- (m_frame->loader()->*func)(PolicyIgnore);
+ (m_frame->loader()->policyChecker()->*func)(PolicyIgnore);
return;
}
@@ -486,9 +487,9 @@ void FrameLoaderClientAndroid::dispatchDecidePolicyForNewWindowAction(FramePolic
// found by the frame tree. Instead of creating a new frame, return the
// current frame in dispatchCreatePage.
if (canHandleRequest(request))
- (m_frame->loader()->*func)(PolicyUse);
+ (m_frame->loader()->policyChecker()->*func)(PolicyUse);
else
- (m_frame->loader()->*func)(PolicyIgnore);
+ (m_frame->loader()->policyChecker()->*func)(PolicyIgnore);
}
void FrameLoaderClientAndroid::cancelPolicyCheck() {
@@ -507,7 +508,7 @@ void FrameLoaderClientAndroid::dispatchDecidePolicyForNavigationAction(FramePoli
if (!func)
return;
if (request.isNull()) {
- (m_frame->loader()->*func)(PolicyIgnore);
+ (m_frame->loader()->policyChecker()->*func)(PolicyIgnore);
return;
}
@@ -520,14 +521,14 @@ void FrameLoaderClientAndroid::dispatchDecidePolicyForNavigationAction(FramePoli
m_webFrame->decidePolicyForFormResubmission(func);
return;
} else {
- (m_frame->loader()->*func)(PolicyUse);
+ (m_frame->loader()->policyChecker()->*func)(PolicyUse);
}
}
void FrameLoaderClientAndroid::dispatchWillSubmitForm(FramePolicyFunction func, PassRefPtr<FormState>) {
ASSERT(m_frame);
ASSERT(func);
- (m_frame->loader()->*func)(PolicyUse);
+ (m_frame->loader()->policyChecker()->*func)(PolicyUse);
}
void FrameLoaderClientAndroid::dispatchDidLoadMainResource(DocumentLoader*) {
@@ -619,7 +620,7 @@ void FrameLoaderClientAndroid::updateGlobalHistory() {
&& docLoader->response().httpStatusCode() < 400) {
m_webFrame->updateVisitedHistory(docLoader->urlForHistory(), false);
if (!docLoader->serverRedirectSourceForHistory().isNull())
- m_webFrame->updateVisitedHistory(KURL(docLoader->serverRedirectDestinationForHistory()), false);
+ m_webFrame->updateVisitedHistory(KURL(ParsedURLString, docLoader->serverRedirectDestinationForHistory()), false);
}
}
@@ -635,6 +636,16 @@ bool FrameLoaderClientAndroid::shouldGoToHistoryItem(HistoryItem* item) const {
return item != NULL;
}
+void FrameLoaderClientAndroid::didDisplayInsecureContent()
+{
+ notImplemented();
+}
+
+void FrameLoaderClientAndroid::didRunInsecureContent(SecurityOrigin*)
+{
+ notImplemented();
+}
+
void FrameLoaderClientAndroid::committedLoad(DocumentLoader* loader, const char* data, int length) {
ASSERT(m_frame);
String encoding = loader->overrideEncoding();
@@ -745,7 +756,7 @@ void FrameLoaderClientAndroid::saveViewStateToItem(HistoryItem* item) {
void FrameLoaderClientAndroid::restoreViewState() {
#ifdef ANDROID_HISTORY_CLIENT
WebViewCore* webViewCore = WebViewCore::getWebViewCore(m_frame->view());
- HistoryItem* item = m_frame->loader()->currentHistoryItem();
+ HistoryItem* item = m_frame->loader()->history()->currentItem();
// restore the scale (only) for the top frame
if (!m_frame->tree()->parent()) {
int scale = item->bridge()->scale();
@@ -848,8 +859,6 @@ void FrameLoaderClientAndroid::transitionToCommittedForNewPage() {
if (m_frame->ownerRenderer())
m_frame->ownerRenderer()->setWidget(view.get());
- m_frame->view()->initScrollbars();
-
m_webFrame->transitionToCommitted(m_frame);
}
@@ -970,7 +979,7 @@ WTF::PassRefPtr<Widget> FrameLoaderClientAndroid::createPlugin(
s = s.replace("VIDEO_ID", videoId);
delete a;
loadDataIntoFrame(frame.get(),
- KURL("file:///android_asset/webkit/"), String(), s);
+ KURL(ParsedURLString, "file:///android_asset/webkit/"), String(), s);
// Transfer ownership to a local refptr.
WTF::RefPtr<Widget> widget(frame->view());
return widget.release();
@@ -1088,7 +1097,7 @@ void FrameLoaderClientAndroid::didAddIconForPageUrl(const String& pageUrl) {
// may register for icon notifications again since the icon data may have
// to be read from disk.
registerForIconNotification(false);
- KURL u(pageUrl);
+ KURL u(ParsedURLString, pageUrl);
if (equalIgnoringFragmentIdentifier(u, m_frame->loader()->url())) {
dispatchDidReceiveIcon();
}
diff --git a/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.h b/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.h
index 176c8be..ec522d2 100644
--- a/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.h
+++ b/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -126,6 +126,10 @@ namespace android {
virtual void updateGlobalHistoryRedirectLinks();
virtual bool shouldGoToHistoryItem(HistoryItem*) const;
+
+ virtual void didDisplayInsecureContent();
+ virtual void didRunInsecureContent(SecurityOrigin*);
+
#ifdef ANDROID_HISTORY_CLIENT
virtual void dispatchDidAddHistoryItem(HistoryItem*) const;
virtual void dispatchDidRemoveHistoryItem(HistoryItem*, int) const;
diff --git a/WebKit/android/WebCoreSupport/GeolocationPermissions.cpp b/WebKit/android/WebCoreSupport/GeolocationPermissions.cpp
index 62df3c0..aeee017 100755
--- a/WebKit/android/WebCoreSupport/GeolocationPermissions.cpp
+++ b/WebKit/android/WebCoreSupport/GeolocationPermissions.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -42,8 +42,9 @@ namespace android {
GeolocationPermissions::PermissionsMap GeolocationPermissions::s_permanentPermissions;
GeolocationPermissions::GeolocationPermissionsVector GeolocationPermissions::s_instances;
bool GeolocationPermissions::s_alwaysDeny = false;
-String GeolocationPermissions::s_databasePath;
bool GeolocationPermissions::s_permanentPermissionsLoaded = false;
+bool GeolocationPermissions::s_permanentPermissionsModified = false;
+String GeolocationPermissions::s_databasePath;
static const char* databaseName = "/GeolocationPermissions.db";
@@ -158,6 +159,7 @@ void GeolocationPermissions::recordPermissionState(String origin, bool allow, bo
{
if (remember) {
s_permanentPermissions.set(m_originInProgress, allow);
+ s_permanentPermissionsModified = true;
} else {
// It's possible that another tab recorded a permanent permission for
// this origin while our request was in progress, but we record it
@@ -253,8 +255,10 @@ void GeolocationPermissions::clear(String origin)
{
maybeLoadPermanentPermissions();
PermissionsMap::iterator iter = s_permanentPermissions.find(origin);
- if (iter != s_permanentPermissions.end())
+ if (iter != s_permanentPermissions.end()) {
s_permanentPermissions.remove(iter);
+ s_permanentPermissionsModified = true;
+ }
}
void GeolocationPermissions::allow(String origin)
@@ -262,12 +266,14 @@ void GeolocationPermissions::allow(String origin)
maybeLoadPermanentPermissions();
// We replace any existing permanent permission.
s_permanentPermissions.set(origin, true);
+ s_permanentPermissionsModified = true;
}
void GeolocationPermissions::clearAll()
{
maybeLoadPermanentPermissions();
s_permanentPermissions.clear();
+ s_permanentPermissionsModified = true;
}
void GeolocationPermissions::maybeLoadPermanentPermissions()
@@ -302,11 +308,10 @@ void GeolocationPermissions::maybeLoadPermanentPermissions()
void GeolocationPermissions::maybeStorePermanentPermissions()
{
- // Protect against the case where we haven't yet loaded permissions, as
- // saving in this case would overwrite the stored permissions with the empty
- // set. This is safe as the permissions are always loaded before they are
- // modified.
- if (!s_permanentPermissionsLoaded)
+ // If the permanent permissions haven't been modified, there's no need to
+ // save them to the DB. (If we haven't even loaded them, writing them now
+ // would overwrite the stored permissions with the empty set.)
+ if (!s_permanentPermissionsModified)
return;
SQLiteDatabase database;
@@ -334,6 +339,8 @@ void GeolocationPermissions::maybeStorePermanentPermissions()
transaction.commit();
database.close();
+
+ s_permanentPermissionsModified = false;
}
void GeolocationPermissions::setDatabasePath(String path)
diff --git a/WebKit/android/WebCoreSupport/GeolocationPermissions.h b/WebKit/android/WebCoreSupport/GeolocationPermissions.h
index d6b8296..f180616 100755
--- a/WebKit/android/WebCoreSupport/GeolocationPermissions.h
+++ b/WebKit/android/WebCoreSupport/GeolocationPermissions.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -141,6 +141,7 @@ namespace android {
static bool s_alwaysDeny;
static bool s_permanentPermissionsLoaded;
+ static bool s_permanentPermissionsModified;
static WebCore::String s_databasePath;
};
diff --git a/WebKit/android/WebCoreSupport/InspectorClientAndroid.h b/WebKit/android/WebCoreSupport/InspectorClientAndroid.h
index 54d15cb..c8d2fcd 100644
--- a/WebKit/android/WebCoreSupport/InspectorClientAndroid.h
+++ b/WebKit/android/WebCoreSupport/InspectorClientAndroid.h
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
diff --git a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
index 5ca6e83..00e973e 100644
--- a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
@@ -13,7 +13,7 @@
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* 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
@@ -30,6 +30,7 @@
#include "GraphicsContext.h"
#include "MediaPlayerPrivateAndroid.h"
#include "SkiaUtils.h"
+#include "TimeRanges.h"
#include "WebCoreJni.h"
#include "WebViewCore.h"
#include "jni_utility.h"
@@ -112,6 +113,12 @@ IntSize MediaPlayerPrivate::naturalSize() const
return m_naturalSize;
}
+bool MediaPlayerPrivate::hasAudio() const
+{
+ // TODO
+ return false;
+}
+
bool MediaPlayerPrivate::hasVideo() const
{
return false;
@@ -182,9 +189,9 @@ float MediaPlayerPrivate::maxTimeSeekable() const
return 0;
}
-float MediaPlayerPrivate::maxTimeBuffered() const
+PassRefPtr<TimeRanges> MediaPlayerPrivate::buffered() const
{
- return 0;
+ return TimeRanges::create();
}
int MediaPlayerPrivate::dataRate() const
@@ -350,6 +357,8 @@ void MediaPlayerPrivate::onPrepared(int duration, int width, int height) {
}
void MediaPlayerPrivate::onEnded() {
+ m_currentTime = duration();
+ m_player->timeChanged();
m_paused = true;
m_currentTime = 0;
m_networkState = MediaPlayer::Idle;