Closed Bug 1785 Opened 26 years ago Closed 12 years ago

prompt on status bar before starting up Java

Categories

(Core Graveyard :: Java: OJI, enhancement, P4)

enhancement

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: Brade, Unassigned)

References

Details

(Whiteboard: [invalid?])

Attachments

(3 files)

Sometimes when I'm surfing, I stumble across a site that wants to start up Java. On some sites I'm willing to start up Java but on other sites (depending on what I'm surfing) I don't want to pay the price of Java startup. My suggestion is to (hidden preference?) prompt the user whether to startup Java or not. If the user says OK (start Java), proceed as normal. If the user says "no" (don't start Java) then finish loading the page without Java (as if the user pressed the Stop button) or take the user back to the previous page. (The UE group may have an opinion on what happens when the user chooses not to start Java; you may chose to do something else...I leave it up to you.)
Assignee: warren → amusil
I guess this could get added to OJI -- or to plugins in general. Assigning to Alex.
Status: NEW → ASSIGNED
Component: Java Stubs → Plug-ins
Product: Mozilla → NGLayout
Version: 1998-09-04 → other
per leger, assigning QA contacts to all open bugs without QA contacts according to list at http://bugzilla.mozilla.org/describecomponents.cgi?product=Browser
QA Contact: 3849 → 4082
setting Greg as QA contact
QA Contact: 4082 → 4130
claudius,re-assigning some of Greg's open bugs to you.
Component: Plug-ins → OJI
Priority: P2 → P4
Target Milestone: M7
Target Milestone: M7 → M10
Reassigning all OJI bugs to george.drapeau@eng.sun.com
Status: NEW → ASSIGNED
Assignee: drapeau → edburns
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
Target Milestone: M10 → M11
Moving to M11...not an M10 blocker.
Assignee: edburns → drapeau
Status: ASSIGNED → NEW
Assignee: drapeau → edburns
There's already a pref for whether to run java or not. Maybe it should be a tri-state: yes, no, no-but-ask. The situation of visiting a page and not noticing that there's supposed to be an applet running right now, but your pref is disabled can be greatly improved by putting a rectangle on the screen with a "broken applet" icon. This is something we never got around to doing in 4.x.
One small modification on the "broken applet" graphic: perhaps a different graphic for the specific case of "you have a JVM but you've chosen to disable it so I'm not going to run this applet for you" would be more appropriate, informative, and less confusing to customers.
Agreed. It would be nice if had a "run it anyway" button on it too. In fact if you had this, you wouldn't need the "no-but-ask" state in the prefs dialog.
Status: NEW → ASSIGNED
This is covered as a part of bug #7380. A user could set "enable java" to "prompt", and would be prompted every new page. However the dialog would have the capability to remember the decision. So for example, if you were at "http://www.mozilla.org/projects/seamonkey/" you could remember this for "http://www.mozilla.org/projects/seamonkey/", "http://www.mozilla.org/projects/" or "http://www.mozilla.org/". This would automatically alter the rules so in future these sites would either be disabled or enabled. I suggest no ad hoc mechanisms be introduced when there are general mechanisms that could be implemented (and are very popular judging on the number of votes it has).
Target Milestone: M11 → M12
m12
I like Warren's suggestion from 10/9.
The file that sets the preference is mozilla\modules\libpref\src\init\all.js
The first reference to Java occurrs here: nsJSEnvironment::nsJSEnvironment() line 851 + 31 bytes nsJSEnvironment::GetScriptingEnvironment() line 829 + 27 bytes NS_CreateScriptContext(nsIScriptGlobalObject * 0x014f0b74, nsIScriptContext * * 0x0101184c) line 881 + 5 bytes nsWebShell::CreateScriptEnvironment() line 2893 + 20 bytes nsWebShell::GetScriptGlobalObject(nsWebShell * const 0x0101183c, nsIScriptGlobalObject * * 0x0012fa24) line 4567 + 11 bytes DocumentViewerImpl::Init(DocumentViewerImpl * const 0x015d6360, void * 0x004b070a, nsIDeviceContext * 0x01011040, nsIPref * 0x00c78790, const nsRect & {...}, nsScrollPreference nsScrollPreference_kAuto) line 405 + 56 bytes nsWebShell::Embed(nsWebShell * const 0x01011800, nsIContentViewer * 0x015d6360, const char * 0x015d6dc0, nsISupports * 0x00000000) line 892 + 69 bytes nsDocumentBindInfo::OnStartRequest(nsDocumentBindInfo * const 0x015d5050, nsIChannel * 0x00fe3450, nsISupports * 0x00000000) line 1394 + 46 bytes nsDocumentOpenInfo::OnStartRequest(nsDocumentOpenInfo * const 0x01017200, nsIChannel * 0x00fe3450, nsISupports * 0x00000000) line 200 nsChannelListener::OnStartRequest(nsChannelListener * const 0x00fe36d0, nsIChannel * 0x00fe3450, nsISupports * 0x00000000) line 1580 + 43 bytes nsInputStreamChannel::OnStartRequest(nsInputStreamChannel * const 0x00fe3454, nsIChannel * 0x00fe7030, nsISupports * 0x00000000) line 331 nsOnStartRequestEvent::HandleEvent(nsOnStartRequestEvent * const 0x00cfb3c0) line 199 nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x00cfb2f0) line 93 + 12 bytes PL_HandleEvent(PLEvent * 0x00cfb2f0) line 522 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00c77200) line 483 + 9 bytes _md_EventReceiverProc(HWND__ * 0x001e078e, unsigned int 49448, unsigned int 0, long 13070848) line 947 + 9 bytes USER32! 77e71250() 00c77200() Now, when fixing this bug, and honoring the "is java enabled" preference, how should liveconnect be affected? Should disabling java also disable liveconnect?
Target Milestone: M12 → M13
m13
QA Contact: claudius → paw
Updating QA Contact.
Target Milestone: M13 → M14
move to m14. let me know if fixes are available. thx.
This ties in with loading the OJI dll lazily, #18277.
Depends on: 18277
New feature, moving way out.
Target Milestone: M14 → M30
I would definitely like this feature! Adding myself to then Cc list.
Depends on: 26516
Depends on: 78966
This is more than just a feature. The OBJECT tag should support the standby attribute: http://www.w3.org/TR/WD-html40-970708/struct/includes.html#edef-OBJECT nominating, it should be a trivial fix.
Severity: enhancement → normal
*** Bug 79481 has been marked as a duplicate of this bug. ***
wow..this is a legendary bug. qa reassign : self
QA Contact: paw → shrir
*** Bug 84429 has been marked as a duplicate of this bug. ***
Posted to newsgroups: From: Ed Burns <ed.burnsREMOVE_THIS@sun.com> Newsgroups: netscape.public.mozilla.embedding,netscape.public.mozilla.oji Subject: Best way to post "Starting Java" notification? Date: 11 Jun 2001 19:18:15 -0700 Message-ID: <7cb8ziya1aw.fsf@sun.com> -- Hi Folks, The first part of fixing bug 1785: Prompt before starting up java, is to write the "Starting Java..." message to the status bar. Simon suggested perhaps embedders might be interested in this message and I agree. I was planning on using nsIMsgStatusFeedback.ShowStatusMessage() to do the work, but I'm not sure how to obtain a ref to this interface from way down in the OJI code. So, I have two questions: 1. How do I obtain an nsIMsgStatusFeedback instance from way down in the OJI code? 2. How can I also notify embedders of this event?
Could this be a more general solutin for all plugins?
What, you mean looking at the content type and, if it's the first time this type has been encountered, saying something like "Starting plugin for type %s"? That sounds fine to me. The thing I need to know is, how do I obtain an nsIMsgStatusFeedback, or other interface that writes to the status bar, from inside nsPluginHostImpl.cpp? Ed
I think nsPluginInstancePeer::ShowStatus() is supposed to do that, I thought? That could be broken, dunno, but the call should probably go through there. But, I really think we should just do this for APPLET or EMBED and in the case of OBJECT, use the STANDBY attribute and have the message specified in an embedding overridable overlay. I don't know much about doing that, but I think Dan does. cc:ing him.
Sorry, don't know anything about it. Honestly, if this bug were assigned to me, I'd resolve it as WONTFIX. With "enhancements" like this, we'll need an entire separate app to manage Mozilla prefs. Removing CC.
*** Bug 86634 has been marked as a duplicate of this bug. ***
Taking another look at trying to display a message on the status bar before starting Java isn't quite a trivial because I think we need to get back to the event loop somehow so that the status bar gets updated. All the ways I tried seemed to funnel through the same call to |browserChrome->SetStatus()| which didn't seem to do the trick in Mozilla. However, it did work in MFCEmbed, I think because it has a native status bar. I think blake or timeless has worked with UI like this before, cc:ing for comment.
Hi Peter, thanks for investigating this. As you know, there are two sides to the coin: 1. Detecting the right time when the "java is starting" "event" occurrs 2. Conveying that to the user. I thought I had a handle on 1., but now I'm not so sure.
Ed, you are correct, the right time is very important. I know the "long delay" happens when we do a reflow of the frame model, inside nsPluginHostImpl::GetPluginFactory()...at least with JRE 1.3. I was thinking that maybe the status bar change message can be sent from the the content model side of things. As long as it's before the frame model gets reflowed, I'm guessing, but I'm not quite sure WHERE that should go. Who knows more about the status bar, Jud?
Summary: Enhancement: prompt before starting up Java → Enhancement: prompt on status bar before starting up Java
SPAM: reassigning all OJI bugs to new OJI QA, pmac ( 227 bugs)
QA Contact: shrir → pmac
Putting on my 0.9.4 radar.
Target Milestone: --- → mozilla0.9.4
Not having a "Starting Java" message leads to user confusion.
Priority: P4 → P1
Posted again: Path: engnews2.Eng.Sun.COM!not-for-mail Newsgroups: netscape.public.mozilla.oji,netscape.public.mozilla.plugins,netscape.public.mozi lla.embedding Subject: Re: Best way to post "Starting Java" notification? Date: 17 Aug 2001 18:42:12 -0700 Message-ID: <7cb1ymaf8jv.fsf@sun.com> 11 Jun 2001: > The first part of fixing bug 1785: Prompt before starting up java, is > to write the "Starting Java..." message to the status bar. Simon > suggested perhaps embedders might be interested in this message and I > agree. I was planning on using > nsIMsgStatusFeedback.ShowStatusMessage() to do the work, but I'm not > sure how to obtain a ref to this interface from way down in the OJI > code. No one replied to this. I'd like to get this in to 0.9.4 and I have a simple question: How do I post a message to the status bar so that it displays to the user IMMEDIATELY? Here's the stack at the time I need to post the message: nsPluginHostImpl::SetUpPluginInstance() line 3544 nsPluginHostImpl::InstantiateEmbededPlugin() line 3144 + 24 bytes nsObjectFrame::InstantiatePlugin() line 1207 nsObjectFrame::Reflow() line 974 + 49 bytes nsLineLayout::ReflowFrame() line 962 + 43 bytes nsBlockFrame::ReflowInlineFrame() line 3459 + 29 bytes [...Lots of layout kind of stuff deleted...] nsBlockFrame::Reflow() line 797 + 15 bytes nsContainerFrame::ReflowChild() line 726 + 31 bytes CanvasFrame::Reflow() line 563 nsBoxToBlockAdaptor::Reflow() line 866 nsBoxToBlockAdaptor::DoLayout() line 523 + 52 bytes nsBox::Layout() line 986 nsScrollBoxFrame::DoLayout() line 379 nsBox::Layout() line 986 nsContainerBox::LayoutChildAt() line 591 + 16 bytes nsGfxScrollFrameInner::LayoutBox() line 1036 + 17 bytes nsGfxScrollFrameInner::Layout() line 1143 nsGfxScrollFrame::DoLayout() line 1044 + 15 bytes nsBox::Layout() line 986 nsBoxFrame::Reflow() line 903 nsGfxScrollFrame::Reflow() line 733 + 25 bytes nsContainerFrame::ReflowChild() line 726 + 31 bytes ViewportFrame::Reflow() line 538 nsHTMLReflowCommand::Dispatch() line 145 PresShell::ProcessReflowCommand() line 5850 PresShell::ProcessReflowCommands() line 5905 PresShell::FlushPendingNotifications() line 4877 nsEventStateManager::FlushPendingEvents() line 3929 nsEventStateManager::GenerateDragGesture() line 1133 nsEventStateManager::PreHandleEvent() line 351 PresShell::HandleEventInternal() line 5644 + 43 bytes PresShell::HandleEvent() line 5575 + 25 bytes nsView::HandleEvent() line 377 nsView::HandleEvent() line 350 nsView::HandleEvent() line 350 nsViewManager::DispatchEvent() line 2058 HandleEvent() line 68 nsWindow::DispatchEvent() line 728 + 10 bytes nsWindow::DispatchWindowEvent() line 749 nsWindow::DispatchMouseEvent() line 4262 + 21 bytes ChildWindow::DispatchMouseEvent() line 4514 nsWindow::ProcessMessage() line 3198 + 24 bytes nsWindow::WindowProc() line 996 + 27 bytes USER32! 77e71268() In nsPluginHostImpl::SetUpPluginInstance() { //... result = plugin->CreateInstance(NULL, kIPluginInstanceIID, (void **) &instance); //... } This call to CreateInstance is where the big "freeze for at least 15 seconds" hit happens. I'd like to put something like: aOwner->ShowStatus("Starting java..."); before the call to CreateInstance(), but when I do this, of course it doesn't display, because we're ultimately executing on the WindowProc. Is there any way to force the event loop to be processed? Thanks, Ed -- Remove REMOVE_THIS from email address before replying. These are my views, and may not be the same as Sun Microsystems Inc.
From: Rick Potts (rpotts@wwc.com) Subject: Re: Best way to post "Starting Java" notification? Newsgroups: netscape.public.mozilla.oji Date: 2001-08-17 19:55:40 PST The standard way of propagating status informatiion is via the nsIProgressEventSink interface... Generally, you can get this interface from the document channel (or any channel really) by doing the following: nsCOMPtr<nsIInterfaceRequestor> requestor; nsCOMPtr<nsIProgressEventSink> eventSink; nsIChannel::GetNotificationCallbacks(getter_AddRefs(requestor)); eventSink = do_GetInterface(requestor); The downside to using nsIProgressEventSink::OnStatus(...) is that it expects the status code to be an id which can be translated into a string bundle reference :-( Of course, the other issue is that the message probably won't be displayed synchronously :-( I can't really think of any way to force this message to display... short of calling OnStatus(...), posting an event and then entering a sub-event-loop until the event is processed... In fact, after thinking about it a bit more... i think that you would also need to push a nested event Q before spinning up the event loop. This would prevent PLEvents from being processed out of order... -- rick
<bryner> edburns: ok, try this <bryner> document->GetScriptGlobalObject(); <bryner> globalObject->GetDocShell(); <bryner> QI docshell to nsIWebShell <bryner> webshell->GetDocumentLoader(); <bryner> docloader->GetDocumentChannel();
I'm banging my head against this wall. I've posted a followup: Message-ID: <bbf0af98.0108211425.3d9fc7f5@posting.google.com> Pushing back to 0.9.5.
Target Milestone: mozilla0.9.4 → mozilla0.9.5
Hi Ed, I finally listened to my voicemail :-) I'll attach a patch as soon as possible which will make PluginInstanceOwner::ShowStatus(...) synchronous... -- rick
Hi Ed, I've attached a preliminary patch to make showStatus(...) synchronous for both plugins and javascript. Let me know if this fixes your ShowStatus(...) woes :-) -- rick
Depends on: 97227
Depends on: 97380
I have created bug 97380 to handle the no user interaction part of this bug.
Ressign to Joe Chou, as I am no longer working officially on OJI.
Assignee: edburns → joe.chou
Status: ASSIGNED → NEW
Target Milestone: mozilla0.9.5 → mozilla0.9.6
I think this was FIXED a while ago....
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Verified on the branch build (2001-10-09-10-0.9.4)
Status: RESOLVED → VERIFIED
I'm reopening this bug as I don't see a message about starting Java on the status bar with Win98SE with build 2002071704-TRUNK.
Status: VERIFIED → REOPENED
Resolution: FIXED → ---
*** Bug 166536 has been marked as a duplicate of this bug. ***
*** Bug 166536 has been marked as a duplicate of this bug. ***
Hm, this bug has a patch a target milestone in the far past and high priority. Is there a chance to make the patch work in current trunk and get it going? pi
pi, while this bug does have a patch, it is not for the issue that comment 0 mentions.
Keywords: mozilla1.2
Summary: Enhancement: prompt on status bar before starting up Java → prompt on status bar before starting up Java
QA Contact: pmac → petersen
Target Milestone: mozilla0.9.6 → ---
reassign to me
Assignee: joe.chou → joshua.xia
Status: REOPENED → NEW
->p4
Priority: P1 → P4
add "on-the-fly" to white board
Whiteboard: on-the-fly
Keywords: patch
Whiteboard: on-the-fly
Wow, this bug is ancient. Anyway. I think that the best solution for this "bug" is to have a list of "allow/deny" domains for java, like it's done with popups, for example. I think that 99% of the people that surfs with java disabled, only enable it for his/her online bank. If someone can points me out some good reading in the line of "mozilla hacking for dummies" :) and where's the code that decides to startup java, i can try to give a hand.
Gabriel Barros (comment 58) -- Please don't take offense but that is not what I filed this bug about. I don't care about sites; I want to know if I'm about to lock up my computer while Java starts up and be able to cancel it. There is nothing wrong with your idea. I think you should file a new bug with your suggestion and make it depend on this bug.
Preferences->Advanced->Enable Java (checkbox) can meet this requirement?
Status: NEW → ASSIGNED
*** Bug 78159 has been marked as a duplicate of this bug. ***
->kyle
Assignee: joshua.xia → kyle.yuan
Status: ASSIGNED → NEW
Bug 19118 is talking about a general Plugin manager that can disable a particular plugin/mimetype from working. But I'm afraid it won't be able to disable a plugin for some paticular sites.
Severity: normal → enhancement
Flags: blocking-aviary1.1+
only drivers should be granting blocking flags You can request it if you want (set it to "?").
Flags: blocking-aviary1.1+
Assignee: yuanyi21 → pete.zha
mass reassign to Alfred
Assignee: zhayupeng → alfred.peng
Assignee: alfred.peng → nobody
QA Contact: chrispetersen → java.oji
Whiteboard: [needs status update]
This should be invalid now that OJI has been removed from trunk.
Whiteboard: [needs status update] → [invalid?]
Product: Core → Core Graveyard
Mass-closing bugs in the "OJI" component: OJI plugin integration was replaced with npruntime long ago, and these bugs appear to be irrelevant now. If there is in fact a real bug that remains, please file it new in the "Core" product, component "Plug-ins".
Status: NEW → RESOLVED
Closed: 23 years ago12 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: