diff options
author | rogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 21:50:56 +0000 |
---|---|---|
committer | rogerta@chromium.org <rogerta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 21:50:56 +0000 |
commit | a6152af0508075b978b4f73e1bd74f0e8cd3bb7f (patch) | |
tree | 9adcd73386bb96da1683cfe4736584138fdeb3b2 /chrome_frame | |
parent | e357e21cc4b7d766108ecb3230d49866df5c8366 (diff) | |
download | chromium_src-a6152af0508075b978b4f73e1bd74f0e8cd3bb7f.zip chromium_src-a6152af0508075b978b4f73e1bd74f0e8cd3bb7f.tar.gz chromium_src-a6152af0508075b978b4f73e1bd74f0e8cd3bb7f.tar.bz2 |
Change the FF CEEE to create its chrome frame instance initially hidden, and
make it visible only once the content is done loading. This avoids any flicker
at startup, and fixes a bug where the chrome frame instance is removed after
a print preview.
Also added support to chrome frame to send an uninitialized ready state
when its being torn down.
BUG=62979
TEST=Make sure that there is no UI flicker on chrome frame startup, and make
sure that the extenions works correct after showing print preview and closing
it.
Review URL: http://codereview.chromium.org/4882004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66002 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r-- | chrome_frame/chrome_frame_npapi.cc | 7 | ||||
-rw-r--r-- | chrome_frame/np_event_listener.cc | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/chrome_frame/chrome_frame_npapi.cc b/chrome_frame/chrome_frame_npapi.cc index ea7217f..c153993 100644 --- a/chrome_frame/chrome_frame_npapi.cc +++ b/chrome_frame/chrome_frame_npapi.cc @@ -290,9 +290,8 @@ bool ChromeFrameNPAPI::Initialize(NPMIMEType mime_type, NPP instance, } void ChromeFrameNPAPI::Uninitialize() { - // Don't call SetReadyState as it will end up calling FireEvent. - // We are in the context of NPP_DESTROY. - ready_state_ = READYSTATE_UNINITIALIZED; + if (ready_state_ != READYSTATE_UNINITIALIZED) + SetReadyState(READYSTATE_UNINITIALIZED); UnsubscribeFromFocusEvents(); @@ -851,7 +850,7 @@ void ChromeFrameNPAPI::OnMessageFromChromeFrame(int tab_handle, } DLOG_IF(WARNING, !invoke) << "InvokeDefault failed"; } else { - NOTREACHED() << "CreateMessageEvent"; + DLOG(WARNING) << "CreateMessageEvent failed, probably exiting"; } } diff --git a/chrome_frame/np_event_listener.cc b/chrome_frame/np_event_listener.cc index 937ca1d..cfbaded 100644 --- a/chrome_frame/np_event_listener.cc +++ b/chrome_frame/np_event_listener.cc @@ -172,9 +172,13 @@ NPObject* NPObjectEventListener::GetObjectElement(NPP instance) { // We've got the <embed> element but we really want // the <object> element. if (npapi::GetProperty(instance, object, ids[PARENT_ELEMENT], &var)) { - DCHECK(NPVARIANT_IS_OBJECT(var)); npapi::ReleaseObject(object); - object = NPVARIANT_TO_OBJECT(var); + object = NULL; + if (NPVARIANT_IS_OBJECT(var)) { + object = NPVARIANT_TO_OBJECT(var); + } else { + DVLOG(1) << __FUNCTION__ << " Could not find our parent"; + } } } else { DVLOG(1) << __FUNCTION__ << " got " << tag; |