[prev in list] [next in list] [prev in thread] [next in thread]
List: webkit-unassigned
Subject: [Webkit-unassigned] [Bug 36721] Return correct load result to NPAPI
From: bugzilla-daemon () webkit ! org
Date: 2010-11-30 23:56:30
Message-ID: 20101130235630.E47B24334B3B () gamma ! macosforge ! org
[Download RAW message or body]
https://bugs.webkit.org/show_bug.cgi?id=36721
Alexey Proskuryakov <ap@webkit.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #74026|review? |review-
Flag| |
--- Comment #22 from Alexey Proskuryakov <ap@webkit.org> 2010-11-30 15:56:30 PST ---
(From update of attachment 74026)
Sorry for a long wait. This patch is on a right track.
+ Unskip plugins/get-url-with-blank-target.html on Qt.
I'd love to see a more ambitious patch, even if it could mean temporary buildbot \
breakage. This fix is supposed to affect most platforms, so I'd start with unskipping \
the test on all, and cleaning up misleading Chromium platform-specific results.
As you could see, the current situation is too confusing.
+ When an NPAPI plugin performs a request on a targe frame with
Typo: target.
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::FrameLoader):
+ (WebCore::FrameLoader::load):
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+ (WebCore::FrameLoader::notifyPlugin):
+ (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
Per-method comments would have made reviewing easier.
+void FrameLoader::load(const ResourceRequest& request, bool lockHistory, bool \
notifyPlugin)
We try to not use boolean arguments in cases like this in new code. Seeing a call \
site like call(request, true, false) tells one nothing about what's being called, and \
it's super easy to make a mistake - especially when there are tons of overrides.
The common solutions are adding an enum for policy options, or adding a method with a \
different name.
- frame->loader()->load(request, lockHistory);
+ frame->loader()->load(request, lockHistory, m_shouldNotifyPlugin);
Won't the current frame have a stale m_shouldNotifyPlugin after passing the request \
to target frame?
+ if (m_requestsAwaitingNotification[i]->request() == request
+ && m_requestsAwaitingNotification[i]->sendNotification()) {
This line isn't particularly long, I think that the code would be easier to read \
without wrapping.
More importantly, I don't see why comparing requests works. There can be both false \
negatives and false positives:
- what if two plug-in instances make a request for the same URL?
- what if a request has been modified by a delegate call, changing it platform \
object?
And of course, traversing all plug-in views and all their requests isn't very \
elegant. Perhaps FrameLoader could just keep a PluginRequest pointer?
+void PluginView::sendUrlNotify(PluginRequest* request, int result)
WebKit style is "sendURLNotify".
- // FIXME: <rdar://problem/4807469> This should be sent when the document \
has finished loading
You could add <rdar://problem/4807469> to ChangeLog as a link to one of the fixed \
bugs.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
webkit-unassigned mailing list
webkit-unassigned@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-unassigned
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic