Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / FrameLoaderClientImpl.cpp
index 8c2d682..6c140aa 100644 (file)
@@ -61,7 +61,6 @@
 #include "platform/exported/WrappedResourceRequest.h"
 #include "platform/exported/WrappedResourceResponse.h"
 #include "platform/network/HTTPParsers.h"
-#include "platform/network/SocketStreamHandleInternal.h"
 #include "platform/plugins/PluginData.h"
 #include "public/platform/Platform.h"
 #include "public/platform/WebApplicationCacheHost.h"
@@ -69,7 +68,6 @@
 #include "public/platform/WebRTCPeerConnectionHandler.h"
 #include "public/platform/WebServiceWorkerProvider.h"
 #include "public/platform/WebServiceWorkerProviderClient.h"
-#include "public/platform/WebSocketStreamHandle.h"
 #include "public/platform/WebURL.h"
 #include "public/platform/WebURLError.h"
 #include "public/platform/WebVector.h"
 #include "public/web/WebPermissionClient.h"
 #include "public/web/WebPlugin.h"
 #include "public/web/WebPluginParams.h"
+#include "public/web/WebPluginPlaceholder.h"
 #include "public/web/WebSecurityOrigin.h"
 #include "public/web/WebViewClient.h"
+#include "web/PluginPlaceholderImpl.h"
 #include "web/SharedWorkerRepositoryClientImpl.h"
 #include "web/WebDataSourceImpl.h"
 #include "web/WebDevToolsAgentPrivate.h"
@@ -118,8 +118,7 @@ void FrameLoaderClientImpl::dispatchDidClearWindowObjectInMainWorld()
             DeviceOrientationController::from(*document);
             if (RuntimeEnabledFeatures::deviceLightEnabled())
                 DeviceLightController::from(*document);
-            if (RuntimeEnabledFeatures::gamepadEnabled())
-                NavigatorGamepad::from(*document);
+            NavigatorGamepad::from(*document);
             if (RuntimeEnabledFeatures::serviceWorkerEnabled())
                 NavigatorServiceWorker::from(*document);
         }
@@ -290,7 +289,7 @@ Frame* FrameLoaderClientImpl::lastChild() const
     return toCoreFrame(m_webFrame->lastChild());
 }
 
-void FrameLoaderClientImpl::detachedFromParent()
+void FrameLoaderClientImpl::detached()
 {
     // Alert the client that the frame is being detached. This is the last
     // chance we have to communicate with the client.
@@ -541,9 +540,9 @@ bool FrameLoaderClientImpl::navigateBackForward(int offset) const
         return false;
 
     ASSERT(offset);
-    offset = std::min(offset, webview->client()->historyForwardListCount());
-    offset = std::max(offset, -webview->client()->historyBackListCount());
-    if (!offset)
+    if (offset > webview->client()->historyForwardListCount())
+        return false;
+    if (offset < -webview->client()->historyBackListCount())
         return false;
     webview->client()->navigateBackForwardSoon(offset);
     return true;
@@ -620,11 +619,9 @@ void FrameLoaderClientImpl::transitionToCommittedForNewPage()
 PassRefPtrWillBeRawPtr<LocalFrame> FrameLoaderClientImpl::createFrame(
     const KURL& url,
     const AtomicString& name,
-    const Referrer& referrer,
     HTMLFrameOwnerElement* ownerElement)
 {
-    FrameLoadRequest frameRequest(m_webFrame->frame()->document(),
-        ResourceRequest(url, referrer), name);
+    FrameLoadRequest frameRequest(m_webFrame->frame()->document(), url, name);
     return m_webFrame->createChildFrame(frameRequest, ownerElement);
 }
 
@@ -636,7 +633,33 @@ bool FrameLoaderClientImpl::canCreatePluginWithoutRenderer(const String& mimeTyp
     return m_webFrame->client()->canCreatePluginWithoutRenderer(mimeType);
 }
 
-PassRefPtr<Widget> FrameLoaderClientImpl::createPlugin(
+PassOwnPtrWillBeRawPtr<PluginPlaceholder> FrameLoaderClientImpl::createPluginPlaceholder(
+    Document& document,
+    const KURL& url,
+    const Vector<String>& paramNames,
+    const Vector<String>& paramValues,
+    const String& mimeType,
+    bool loadManually)
+{
+    if (!m_webFrame->client())
+        return nullptr;
+
+    WebPluginParams params;
+    params.url = url;
+    params.mimeType = mimeType;
+    params.attributeNames = paramNames;
+    params.attributeValues = paramValues;
+    params.loadManually = loadManually;
+
+    OwnPtr<WebPluginPlaceholder> webPluginPlaceholder = adoptPtr(
+        m_webFrame->client()->createPluginPlaceholder(m_webFrame, params));
+    if (!webPluginPlaceholder)
+        return nullptr;
+
+    return PluginPlaceholderImpl::create(webPluginPlaceholder.release(), document);
+}
+
+PassRefPtrWillBeRawPtr<Widget> FrameLoaderClientImpl::createPlugin(
     HTMLPlugInElement* element,
     const KURL& url,
     const Vector<String>& paramNames,
@@ -660,19 +683,27 @@ PassRefPtr<Widget> FrameLoaderClientImpl::createPlugin(
         return nullptr;
 
     // The container takes ownership of the WebPlugin.
-    RefPtr<WebPluginContainerImpl> container =
+    RefPtrWillBeRawPtr<WebPluginContainerImpl> container =
         WebPluginContainerImpl::create(element, webPlugin);
 
-    if (!webPlugin->initialize(container.get()))
+    if (!webPlugin->initialize(container.get())) {
+#if ENABLE(OILPAN)
+        container->dispose();
+#endif
         return nullptr;
+    }
 
-    if (policy != AllowDetachedPlugin && !element->renderer())
+    if (policy != AllowDetachedPlugin && !element->renderer()) {
+#if ENABLE(OILPAN)
+        container->dispose();
+#endif
         return nullptr;
+    }
 
     return container;
 }
 
-PassRefPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget(
+PassRefPtrWillBeRawPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget(
     HTMLAppletElement* element,
     const KURL& /* baseURL */,
     const Vector<String>& paramNames,
@@ -753,11 +784,6 @@ void FrameLoaderClientImpl::didChangeName(const String& name)
     m_webFrame->client()->didChangeName(m_webFrame, name);
 }
 
-void FrameLoaderClientImpl::dispatchWillOpenSocketStream(SocketStreamHandle* handle)
-{
-    m_webFrame->client()->willOpenSocketStream(SocketStreamHandleInternal::toWebSocketStreamHandle(handle));
-}
-
 void FrameLoaderClientImpl::dispatchWillOpenWebSocket(WebSocketHandle* handle)
 {
     m_webFrame->client()->willOpenWebSocket(handle);
@@ -804,9 +830,16 @@ PassOwnPtr<WebServiceWorkerProvider> FrameLoaderClientImpl::createServiceWorkerP
     return adoptPtr(m_webFrame->client()->createServiceWorkerProvider(m_webFrame));
 }
 
-bool FrameLoaderClientImpl::isControlledByServiceWorker()
+bool FrameLoaderClientImpl::isControlledByServiceWorker(DocumentLoader& loader)
 {
-    return m_webFrame->client() && m_webFrame->client()->isControlledByServiceWorker();
+    return m_webFrame->client() && m_webFrame->client()->isControlledByServiceWorker(*WebDataSourceImpl::fromDocumentLoader(&loader));
+}
+
+int64_t FrameLoaderClientImpl::serviceWorkerID(DocumentLoader& loader)
+{
+    if (!m_webFrame->client())
+        return -1;
+    return m_webFrame->client()->serviceWorkerID(*WebDataSourceImpl::fromDocumentLoader(&loader));
 }
 
 SharedWorkerRepositoryClient* FrameLoaderClientImpl::sharedWorkerRepositoryClient()
@@ -833,4 +866,12 @@ void FrameLoaderClientImpl::dispatchDidChangeManifest()
         m_webFrame->client()->didChangeManifest(m_webFrame);
 }
 
+unsigned FrameLoaderClientImpl::backForwardLength()
+{
+    WebViewImpl* webview = m_webFrame->viewImpl();
+    if (!webview || !webview->client())
+        return 0;
+    return webview->client()->historyBackListCount() + 1 + webview->client()->historyForwardListCount();
+}
+
 } // namespace blink