Index: content/renderer/browser_plugin/browser_plugin.cc |
diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc |
index acdea505531f3c687f84dc5f68770e90ef04c081..6505e5d594ad7d0e0740e13f2aa733bcab041031 100644 |
--- a/content/renderer/browser_plugin/browser_plugin.cc |
+++ b/content/renderer/browser_plugin/browser_plugin.cc |
@@ -53,6 +53,8 @@ const char kOldURL[] = "oldUrl"; |
const char kPartitionAttribute[] = "partition"; |
const char kPersistPrefix[] = "persist:"; |
const char kSrcAttribute[] = "src"; |
+const char kTitle[] = "title"; |
+const char kTitleChangedEventName[] = "titleChanged"; |
const char kType[] = "type"; |
const char kURL[] = "url"; |
} |
@@ -452,6 +454,32 @@ void BrowserPlugin::LoadRedirect(const GURL& old_url, |
} |
} |
+void BrowserPlugin::TitleChanged(const string16& title) { |
+ if (!HasListeners(kTitleChangedEventName)) |
+ return; |
+ |
+ EventListeners& listeners = event_listener_map_[kTitleChangedEventName]; |
+ EventListeners::iterator it = listeners.begin(); |
+ |
+ v8::Context::Scope context_scope(v8::Context::New()); |
+ v8::HandleScope handle_scope; |
+ |
+ // Construct the loadRedirect event object. |
Fady Samuel
2012/10/05 17:45:52
Please update this comment :-)
Charlie Reis
2012/10/05 19:20:48
Good copy/paste catch. :) Done.
|
+ v8::Local<v8::Value> event = |
+ v8::Local<v8::Object>::New(v8::Object::New()); |
+ v8::Local<v8::Object>::Cast(event)->Set( |
+ v8::String::New(kTitle, sizeof(kTitle) - 1), |
+ v8::String::New(title.c_str(), title.size())); |
+ for (; it != listeners.end(); ++it) { |
+ // Fire the event listener. |
+ container()->element().document().frame()-> |
+ callFunctionEvenIfScriptDisabled(*it, |
+ v8::Object::New(), |
+ 1, |
+ &event); |
+ } |
+} |
+ |
void BrowserPlugin::AdvanceFocus(bool reverse) { |
// We do not have a RenderView when we are testing. |
if (render_view_) |