diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-02 17:54:31 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-02 17:54:31 +0000 |
commit | 0b004da852f6c01fecba4b1e2a6ffab221061a63 (patch) | |
tree | 78bb10cf8f5b0a7b09a77179b8c7902b1ab104cb /chrome/browser/extensions/extension_omnibox_api.cc | |
parent | 9d31dc62c63cdad2abb25ecef8753dbc65bd223a (diff) | |
download | chromium_src-0b004da852f6c01fecba4b1e2a6ffab221061a63.zip chromium_src-0b004da852f6c01fecba4b1e2a6ffab221061a63.tar.gz chromium_src-0b004da852f6c01fecba4b1e2a6ffab221061a63.tar.bz2 |
Add support for omnibox.onInputStarted and onInputCancelled.
Also fix a bug where we'd keep an extension's old keyword even if it changed
on upgrade/reload.
BUG=46475
BUG=48091
Review URL: http://codereview.chromium.org/2807033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51540 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_omnibox_api.cc')
-rw-r--r-- | chrome/browser/extensions/extension_omnibox_api.cc | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/chrome/browser/extensions/extension_omnibox_api.cc b/chrome/browser/extensions/extension_omnibox_api.cc index 5c046a3..2f3f8f1 100644 --- a/chrome/browser/extensions/extension_omnibox_api.cc +++ b/chrome/browser/extensions/extension_omnibox_api.cc @@ -12,8 +12,10 @@ #include "chrome/common/notification_service.h" namespace events { -const char kOnInputChanged[] = "experimental.omnibox.onInputChanged/"; -const char kOnInputEntered[] = "experimental.omnibox.onInputEntered/"; +const char kOnInputStarted[] = "experimental.omnibox.onInputStarted"; +const char kOnInputChanged[] = "experimental.omnibox.onInputChanged"; +const char kOnInputEntered[] = "experimental.omnibox.onInputEntered"; +const char kOnInputCancelled[] = "experimental.omnibox.onInputCancelled"; }; // namespace events namespace { @@ -31,10 +33,19 @@ const wchar_t kDescriptionStylesOffset[] = L"offset"; }; // namespace // static +void ExtensionOmniboxEventRouter::OnInputStarted( + Profile* profile, const std::string& extension_id) { + profile->GetExtensionMessageService()->DispatchEventToExtension( + extension_id, events::kOnInputStarted, "[]", profile->IsOffTheRecord(), + GURL()); +} + +// static bool ExtensionOmniboxEventRouter::OnInputChanged( Profile* profile, const std::string& extension_id, const std::string& input, int suggest_id) { - std::string event_name = events::kOnInputChanged + extension_id; + std::string event_name = ExtensionMessageService::GetPerExtensionEventName( + events::kOnInputChanged, extension_id); if (!profile->GetExtensionMessageService()->HasEventListener(event_name)) return false; @@ -44,8 +55,9 @@ bool ExtensionOmniboxEventRouter::OnInputChanged( std::string json_args; base::JSONWriter::Write(&args, false, &json_args); - profile->GetExtensionMessageService()->DispatchEventToRenderers( - event_name, json_args, profile->IsOffTheRecord(), GURL()); + profile->GetExtensionMessageService()->DispatchEventToExtension( + extension_id, events::kOnInputChanged, json_args, + profile->IsOffTheRecord(), GURL()); return true; } @@ -60,8 +72,21 @@ void ExtensionOmniboxEventRouter::OnInputEntered( std::string json_args; base::JSONWriter::Write(&args, false, &json_args); - profile->GetExtensionMessageService()->DispatchEventToRenderers( - event_name, json_args, profile->IsOffTheRecord(), GURL()); + profile->GetExtensionMessageService()->DispatchEventToExtension( + extension_id, events::kOnInputEntered, json_args, + profile->IsOffTheRecord(), GURL()); + + NotificationService::current()->Notify( + NotificationType::EXTENSION_OMNIBOX_INPUT_ENTERED, + Source<Profile>(profile), NotificationService::NoDetails()); +} + +// static +void ExtensionOmniboxEventRouter::OnInputCancelled( + Profile* profile, const std::string& extension_id) { + profile->GetExtensionMessageService()->DispatchEventToExtension( + extension_id, events::kOnInputCancelled, "[]", profile->IsOffTheRecord(), + GURL()); } bool OmniboxSendSuggestionsFunction::RunImpl() { |