summaryrefslogtreecommitdiff
path: root/indra/media_plugins
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2009-12-18 13:24:29 -0600
committerDave Parks <davep@lindenlab.com>2009-12-18 13:24:29 -0600
commit6aa71844a8949ab3c75b6cbe1a5f8cb811aa27b8 (patch)
treee73b1d2847a33c7568688f85265913a69d1711a2 /indra/media_plugins
parent5015886e1763887f534321790d56b6cee5a75dfa (diff)
parentd5b53eb483ec042d83859ec957dce7699c7469aa (diff)
Merge with viewer-2-0
Diffstat (limited to 'indra/media_plugins')
-rw-r--r--indra/media_plugins/webkit/media_plugin_webkit.cpp34
1 files changed, 22 insertions, 12 deletions
diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp
index 276ad39dfb..4b6da552cf 100644
--- a/indra/media_plugins/webkit/media_plugin_webkit.cpp
+++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp
@@ -98,6 +98,12 @@ private:
int mLastMouseY;
bool mFirstFocus;
+ void setInitState(int state)
+ {
+// std::cerr << "changing init state to " << state << std::endl;
+ mInitState = state;
+ }
+
////////////////////////////////////////////////////////////////////////////////
//
void update(int milliseconds)
@@ -205,18 +211,19 @@ private:
{
// create single browser window
mBrowserWindowId = LLQtWebKit::getInstance()->createBrowserWindow( mWidth, mHeight );
-
#if LL_WINDOWS
// Enable plugins
LLQtWebKit::getInstance()->enablePlugins(true);
#elif LL_DARWIN
- // Disable plugins
- LLQtWebKit::getInstance()->enablePlugins(false);
+ // Enable plugins
+ LLQtWebKit::getInstance()->enablePlugins(true);
#elif LL_LINUX
- // Disable plugins
- LLQtWebKit::getInstance()->enablePlugins(false);
+ // Enable plugins
+ LLQtWebKit::getInstance()->enablePlugins(true);
#endif
-
+ // Enable cookies
+ LLQtWebKit::getInstance()->enableCookies( true );
+
// tell LLQtWebKit about the size of the browser window
LLQtWebKit::getInstance()->setSize( mBrowserWindowId, mWidth, mHeight );
@@ -233,7 +240,7 @@ private:
LLQtWebKit::getInstance()->setBackgroundColor( mBrowserWindowId, 0x00, 0x00, 0x00 );
// Set state _before_ starting the navigate, since onNavigateBegin might get called before this call returns.
- mInitState = INIT_STATE_NAVIGATING;
+ setInitState(INIT_STATE_NAVIGATING);
// Don't do this here -- it causes the dreaded "white flash" when loading a browser instance.
// FIXME: Re-added this because navigating to a "page" initializes things correctly - especially
@@ -288,7 +295,7 @@ private:
{
if(mInitState == INIT_STATE_WAIT_REDRAW)
{
- mInitState = INIT_STATE_RUNNING;
+ setInitState(INIT_STATE_RUNNING);
}
// flag that an update is required
@@ -310,7 +317,7 @@ private:
if(mInitState == INIT_STATE_NAVIGATE_COMPLETE)
{
- mInitState = INIT_STATE_WAIT_REDRAW;
+ setInitState(INIT_STATE_WAIT_REDRAW);
}
}
@@ -333,7 +340,7 @@ private:
}
else if(mInitState == INIT_STATE_NAVIGATING)
{
- mInitState = INIT_STATE_NAVIGATE_COMPLETE;
+ setInitState(INIT_STATE_NAVIGATE_COMPLETE);
}
}
@@ -626,7 +633,11 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
}
else if(message_name == "cleanup")
{
- // TODO: clean up here
+ // DTOR most likely won't be called but the recent change to the way this process
+ // is (not) killed means we see this message and can do what we need to here.
+ // Note: this cleanup is ultimately what writes cookies to the disk
+ LLQtWebKit::getInstance()->remObserver( mBrowserWindowId, this );
+ LLQtWebKit::getInstance()->reset();
}
else if(message_name == "shm_added")
{
@@ -635,7 +646,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)
info.mSize = (size_t)message_in.getValueS32("size");
std::string name = message_in.getValue("name");
-
// std::cerr << "MediaPluginWebKit::receiveMessage: shared memory added, name: " << name
// << ", size: " << info.mSize
// << ", address: " << info.mAddress