Reviewed by Darin.
authorap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 24 Jul 2006 15:58:48 +0000 (15:58 +0000)
committerap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 24 Jul 2006 15:58:48 +0000 (15:58 +0000)
        Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10009
        REGRESSION: Schubert-IT PDF Plug-in not working for full page (works in frames)

        No test case possible.

WebCore:
        * page/Frame.cpp:
        (WebCore::Frame::begin): Give PDF plugins a chance to handle frame content, before ImageDocument
        claims it.

WebKit:
        * WebView/WebView.m:
        (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): If we've got a type supported by WebPDFView,
        make sure to initialize the plugin database, in case a plugin wants to handle it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15598 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/page/Frame.cpp
WebKit/ChangeLog
WebKit/WebView/WebView.m

index 022b578e186d3d1916ac6c176fd328c4ef80a6e9..4f0d150aac665c92052ea92784de8d82ec619312 100644 (file)
@@ -1,3 +1,14 @@
+2006-07-24  Alexey Proskuryakov  <ap@nypop.com>
+
+        Reviewed by Darin.
+
+        Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10009
+        REGRESSION: Schubert-IT PDF Plug-in not working for full page (works in frames)
+
+        * page/Frame.cpp:
+        (WebCore::Frame::begin): Give PDF plugins a chance to handle frame content, before ImageDocument
+        claims it.
+
 2006-07-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Darin.
index bd1818a2908a6eab190fbbc5e5d8343072f9a5c9..94ddb7d43c38835575b57bd576e516e7c5cfc5d3 100644 (file)
@@ -588,6 +588,8 @@ void Frame::begin(const KURL& url)
     d->m_doc = DOMImplementation::instance()->createDocument(d->m_view.get());
   else if (DOMImplementation::isTextMIMEType(d->m_request.m_responseMIMEType))
     d->m_doc = new TextDocument(DOMImplementation::instance(), d->m_view.get());
+  else if ((d->m_request.m_responseMIMEType == "application/pdf" || d->m_request.m_responseMIMEType == "text/pdf") && PlugInInfoStore::supportsMIMEType(d->m_request.m_responseMIMEType))
+    d->m_doc = new PluginDocument(DOMImplementation::instance(), d->m_view.get());
   else if (Image::supportsType(d->m_request.m_responseMIMEType))
     d->m_doc = new ImageDocument(DOMImplementation::instance(), d->m_view.get());
   else if (PlugInInfoStore::supportsMIMEType(d->m_request.m_responseMIMEType))
index ffcd1bd59427a16dc26d9f8c41ad96162efb642a..6255a3fdd449124ae8755e50b561774bb5665b42 100644 (file)
@@ -1,3 +1,14 @@
+2006-07-24  Alexey Proskuryakov  <ap@nypop.com>
+
+        Reviewed by Darin.
+
+        Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10009
+        REGRESSION: Schubert-IT PDF Plug-in not working for full page (works in frames)
+
+        * WebView/WebView.m:
+        (+[WebView _viewClass:andRepresentationClass:forMIMEType:]): If we've got a type supported by WebPDFView,
+        make sure to initialize the plugin database, in case a plugin wants to handle it.
+
 2006-07-23  Mark Rowe  <opendarwin.org@bdash.net.nz>
 
         Reviewed by Maciej.
index c07b95d766fe0f339f0c45b88cc6cb6d30df3147..6e9b5622e166cf976c842c75456173934059c3e5 100644 (file)
@@ -74,6 +74,7 @@
 #import "WebNSUserDefaultsExtras.h"
 #import "WebNSViewExtras.h"
 #import "WebPageBridge.h"
+#import "WebPDFView.h"
 #import "WebPluginDatabase.h"
 #import "WebPolicyDelegate.h"
 #import "WebPreferencesPrivate.h"
@@ -528,7 +529,7 @@ static bool debugWidget = true;
     Class viewClass = [[WebFrameView _viewTypesAllowImageTypeOmission:YES] _webkit_objectForMIMEType:MIMEType];
     Class repClass = [[WebDataSource _repTypesAllowImageTypeOmission:YES] _webkit_objectForMIMEType:MIMEType];
     
-    if (!viewClass || !repClass) {
+    if (!viewClass || !repClass || [[WebPDFView supportedMIMETypes] containsObject:MIMEType]) {
         // Our optimization to avoid loading the plug-in DB and image types for the HTML case failed.
         // Load the plug-in DB allowing plug-ins to install types.
         [WebPluginDatabase installedPlugins];