| 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 5b2fce11d00b624bd19c5598988e72a718f44c1e..4c12cc73fdacda603f736329dcdb3f3278c3ddf3 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin.cc
|
| @@ -42,6 +42,8 @@ using WebKit::WebVector;
|
| namespace content {
|
|
|
| namespace {
|
| +
|
| +// Adding a new event? Update InitializeEvents as well.
|
| const char kExitEventName[] = "exit";
|
| const char kIsTopLevel[] = "isTopLevel";
|
| const char kLoadAbortEventName[] = "loadabort";
|
| @@ -49,12 +51,15 @@ const char kLoadCommitEventName[] = "loadcommit";
|
| const char kLoadRedirectEventName[] = "loadredirect";
|
| const char kLoadStartEventName[] = "loadstart";
|
| const char kLoadStopEventName[] = "loadstop";
|
| +const char kTitleChangeEventName[] = "titlechange";
|
| +
|
| const char kNewURL[] = "newUrl";
|
| const char kOldURL[] = "oldUrl";
|
| const char kPartitionAttribute[] = "partition";
|
| const char kPersistPrefix[] = "persist:";
|
| const char kProcessId[] = "processId";
|
| const char kSrcAttribute[] = "src";
|
| +const char kTitle[] = "title";
|
| const char kType[] = "type";
|
| const char kURL[] = "url";
|
|
|
| @@ -253,6 +258,7 @@ void BrowserPlugin::InitializeEvents() {
|
| event_listener_map_[kLoadRedirectEventName] = EventListeners();
|
| event_listener_map_[kLoadStartEventName] = EventListeners();
|
| event_listener_map_[kLoadStopEventName] = EventListeners();
|
| + event_listener_map_[kTitleChangeEventName] = EventListeners();
|
| }
|
|
|
| void BrowserPlugin::RemoveEventListeners() {
|
| @@ -559,6 +565,24 @@ void BrowserPlugin::LoadRedirect(const GURL& old_url,
|
| TriggerEvent(kLoadRedirectEventName, &event);
|
| }
|
|
|
| +void BrowserPlugin::TitleChange(const string16& title) {
|
| + if (!HasListeners(kTitleChangeEventName))
|
| + return;
|
| +
|
| + WebKit::WebElement plugin = container()->element();
|
| + v8::HandleScope handle_scope;
|
| + v8::Context::Scope context_scope(
|
| + plugin.document().frame()->mainWorldScriptContext());
|
| +
|
| + // Construct the titlechanged event object.
|
| + v8::Local<v8::Object> event = v8::Object::New();
|
| + event->Set(v8::String::New(kTitle, sizeof(kTitle) - 1),
|
| + v8::String::New(title.data(), title.size()),
|
| + v8::ReadOnly);
|
| +
|
| + TriggerEvent(kTitleChangeEventName, &event);
|
| +}
|
| +
|
| void BrowserPlugin::AdvanceFocus(bool reverse) {
|
| // We do not have a RenderView when we are testing.
|
| if (render_view_)
|
|
|