Reviewed by John Sullivan.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Sep 2007 00:56:36 +0000 (00:56 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 27 Sep 2007 00:56:36 +0000 (00:56 +0000)
        - fix <rdar://problem/5491054> REGRESSION (Mail, plain-text only): Nothing happens
          when you click on rdar://<num>&<num> links (or AOL links in Safari)

        Remove the non-useful concept of a "malformed"/"invalid" URL.

        There are URLs we can parse, and others we can't, but that's not sufficient to
        determine if we should try to work with the URL. It's entirely possible that
        a so-called "malformed" URL will work just fine if it's passed to the right
        software.

        * platform/KURL.h: Removed isMalformed() and isValid().

        * loader/Cache.cpp: (WebCore::Cache::requestResource): Removed unneeded check
        if the URL is valid. But do check for an empty URL just to guarantee we don't
        trip up with a null string. It's possible we can remove this empty URL check
        later, but it's less risky to leave the empty string behavior alone for now.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::urlSelected): Removed unneeded check if the URL is valid.
        Back on 2007-07-08, we realized that we needed to allow empty URLs. But we also
        need to allow other URLs here. This is the code path from the Mail case.
        (WebCore::FrameLoader::submitForm): Replaced URL validity check with a check
        for an empty URL (same reasoning as for requestResource above).

        * page/InspectorController.cpp: (WebCore::InspectorResource::type):
        * rendering/RenderObject.cpp: (WebCore::RenderObject::addPDFURLRect):
        Removed unneeded check for an invalid URL. In both of these cases it's definitely
        safe to allow event an empty URL.

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

WebCore/ChangeLog
WebCore/loader/Cache.cpp
WebCore/loader/FrameLoader.cpp
WebCore/page/InspectorController.cpp
WebCore/platform/KURL.h
WebCore/rendering/RenderObject.cpp

index 51f612a6563bb38546dedd235c964d10a67be210..911e6e7bce031b27a0261756ab16921364642b39 100644 (file)
@@ -1,3 +1,36 @@
+2007-09-26  Darin Adler  <darin@apple.com>
+
+        Reviewed by John Sullivan.
+
+        - fix <rdar://problem/5491054> REGRESSION (Mail, plain-text only): Nothing happens
+          when you click on rdar://<num>&<num> links (or AOL links in Safari)
+
+        Remove the non-useful concept of a "malformed"/"invalid" URL.
+
+        There are URLs we can parse, and others we can't, but that's not sufficient to
+        determine if we should try to work with the URL. It's entirely possible that
+        a so-called "malformed" URL will work just fine if it's passed to the right
+        software.
+
+        * platform/KURL.h: Removed isMalformed() and isValid().
+
+        * loader/Cache.cpp: (WebCore::Cache::requestResource): Removed unneeded check
+        if the URL is valid. But do check for an empty URL just to guarantee we don't
+        trip up with a null string. It's possible we can remove this empty URL check
+        later, but it's less risky to leave the empty string behavior alone for now.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::urlSelected): Removed unneeded check if the URL is valid.
+        Back on 2007-07-08, we realized that we needed to allow empty URLs. But we also
+        need to allow other URLs here. This is the code path from the Mail case.
+        (WebCore::FrameLoader::submitForm): Replaced URL validity check with a check
+        for an empty URL (same reasoning as for requestResource above).
+
+        * page/InspectorController.cpp: (WebCore::InspectorResource::type):
+        * rendering/RenderObject.cpp: (WebCore::RenderObject::addPDFURLRect):
+        Removed unneeded check for an invalid URL. In both of these cases it's definitely
+        safe to allow event an empty URL.
+
 2007-09-26  George Staikos  <staikos@kde.org>
 
         Reviewed by John Sullivan.
index bc0536e9192cbf945e04847370f48994703245f1..4ae646a3946ee697fb374769aa0ab457ce1bc5b7 100644 (file)
@@ -87,7 +87,9 @@ static CachedResource* createResource(CachedResource::Type type, DocLoader* docL
 
 CachedResource* Cache::requestResource(DocLoader* docLoader, CachedResource::Type type, const KURL& url, const String* charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks)
 {
-    if (!url.isValid())
+    // FIXME: Do we really need to special-case an empty URL?
+    // Would it be better to just go on with the cache code and let it fail later?
+    if (url.isEmpty())
         return 0;
     
     // Look up the resource in our map.
index 404d118f9f6f0f29b43ee4e6c18d714f8c7d1e63..06351364c5ccba227547b5c5a3ff7621d48e0ade 100644 (file)
@@ -387,9 +387,6 @@ void FrameLoader::urlSelected(const ResourceRequest& request, const String& _tar
         return;
     }
 
-    if (!url.isValid() && !url.isEmpty())
-        return;
-
     FrameLoadRequest frameRequest(request, target);
 
     if (frameRequest.resourceRequest().httpReferrer().isEmpty())
@@ -495,7 +492,9 @@ void FrameLoader::submitForm(const char* action, const String& url, PassRefPtr<F
     ASSERT(formData.get());
     
     KURL u = completeURL(url.isNull() ? "" : url);
-    if (!u.isValid())
+    // FIXME: Do we really need to special-case an empty URL?
+    // Would it be better to just go on with the form submisson and let the I/O fail?
+    if (u.isEmpty())
         return;
 
     DeprecatedString urlString = u.url();
index ef537cf12141b52ea56afedf1321aa24437ac9ca..91e7e7b1cd134484ae97985336b666a4686ab5b7 100644 (file)
@@ -113,9 +113,6 @@ struct InspectorResource : public Shared<InspectorResource> {
 
     Type type() const
     {
-        if (!requestURL.isValid())
-            return Other;
-
         if (requestURL == loader->requestURL())
             return Doc;
 
index 0ccf598f980060b1f1a23253ba56f20dddc51eb0..43811ff71db7e6ae75b7ee6ba1dc4eda8805ae4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003, 2004, 2005, 2006 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -66,8 +66,6 @@ public:
     KURL(CFURLRef);
 #endif
     bool isEmpty() const { return urlString.isEmpty(); } 
-    bool isMalformed() const { return !m_isValid; }
-    bool isValid() const { return m_isValid; }
     bool hasPath() const;
 
     DeprecatedString url() const { return urlString; }
index 0ade6d93ebea3c177a2a2161d80ac15e23cea7a3..dc9a1794137340d3b4af2030467213b4aca17d57 100644 (file)
@@ -1655,8 +1655,7 @@ void RenderObject::addPDFURLRect(GraphicsContext* graphicsContext, IntRect rect)
 
                 if (!href.isNull()) {
                     KURL link = element->document()->completeURL(href.deprecatedString());
-                    if (link.isValid())
-                        graphicsContext->setURLForRect(link, rect);
+                    graphicsContext->setURLForRect(link, rect);
                 }
             }
         }