summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/download/chrome_download_manager_delegate.cc6
-rw-r--r--chrome/browser/download/chrome_download_manager_delegate.h2
-rw-r--r--chrome/browser/extensions/api/app_runtime/app_runtime_api.cc6
-rw-r--r--chrome/browser/extensions/extension_special_storage_policy.cc2
-rw-r--r--chrome/browser/extensions/extension_special_storage_policy_unittest.cc6
-rw-r--r--chrome/browser/extensions/platform_app_launcher.cc2
-rw-r--r--chrome/browser/profiles/profile_dependency_manager.cc2
-rw-r--r--chrome/browser/ui/browser.cc2
-rw-r--r--chrome/browser/ui/browser.h2
-rw-r--r--chrome/browser/ui/browser_tab_contents.cc2
-rw-r--r--chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h4
-rw-r--r--chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm11
-rw-r--r--chrome/browser/ui/extensions/shell_window.cc4
-rw-r--r--chrome/browser/ui/gtk/location_bar_view_gtk.cc6
-rw-r--r--chrome/browser/ui/gtk/location_bar_view_gtk.h2
-rw-r--r--chrome/browser/ui/omnibox/location_bar.h2
-rw-r--r--chrome/browser/ui/toolbar/action_box_button_controller.cc15
-rw-r--r--chrome/browser/ui/views/location_bar/location_bar_view.cc10
-rw-r--r--chrome/browser/ui/views/location_bar/location_bar_view.h4
-rw-r--r--chrome/chrome_browser_extensions.gypi6
-rw-r--r--chrome/chrome_browser_ui.gypi10
-rw-r--r--chrome/chrome_common.gypi6
-rw-r--r--chrome/chrome_tests.gypi8
-rw-r--r--chrome/chrome_tests_unit.gypi4
-rw-r--r--chrome/test/base/test_location_bar.h2
-rw-r--r--content/browser/web_contents/web_contents_impl.cc4
-rw-r--r--content/browser/web_contents/web_contents_impl.h2
-rw-r--r--content/common/intents_messages.h4
-rw-r--r--content/content_browser.gypi5
-rw-r--r--content/content_renderer.gypi6
-rw-r--r--content/content_tests.gypi11
-rw-r--r--content/renderer/render_view_browsertest.cc2
-rw-r--r--content/renderer/render_view_impl.cc10
-rw-r--r--webkit/glue/webkit_glue.gypi10
34 files changed, 178 insertions, 2 deletions
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
index 44aceb8..6e0b31a 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -375,15 +375,18 @@ bool ChromeDownloadManagerDelegate::ShouldOpenDownload(
return false;
}
+#if defined(ENABLE_WEB_INTENTS)
if (ShouldOpenWithWebIntents(item)) {
OpenWithWebIntent(item);
callback.Run(true);
return false;
}
+#endif
return true;
}
+#if defined(ENABLE_WEB_INTENTS)
bool ChromeDownloadManagerDelegate::ShouldOpenWithWebIntents(
const DownloadItem* item) {
if (!web_intents::IsWebIntentsEnabledForProfile(profile_))
@@ -471,6 +474,7 @@ void ChromeDownloadManagerDelegate::OpenWithWebIntent(
DCHECK(delegate);
delegate->WebIntentDispatch(NULL, dispatcher);
}
+#endif
bool ChromeDownloadManagerDelegate::GenerateFileHash() {
#if defined(FULL_SAFE_BROWSING)
@@ -753,6 +757,7 @@ void ChromeDownloadManagerDelegate::CheckVisitedReferrerBeforeDone(
suggested_path = download->GetForcedFilePath();
}
+#if defined(ENABLE_WEB_INTENTS)
// If we will open the file with a web intents dispatch,
// give it a name that will not allow the OS to open it using usual
// associated apps.
@@ -760,6 +765,7 @@ void ChromeDownloadManagerDelegate::CheckVisitedReferrerBeforeDone(
download->SetDisplayName(suggested_path.BaseName());
suggested_path = suggested_path.AddExtension(kWebIntentsFileExtension);
}
+#endif
// If the download hasn't already been marked dangerous (could be
// DANGEROUS_URL), check if it is a dangerous file.
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
index 60d0654..93a6e28 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.h
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
@@ -207,12 +207,14 @@ class ChromeDownloadManagerDelegate
content::DownloadDangerType danger_type,
const FilePath& target_path);
+#if defined(ENABLE_WEB_INTENTS)
// Check policy of whether we should open this download with a web intents
// dispatch.
bool ShouldOpenWithWebIntents(const content::DownloadItem* item);
// Open the given item with a web intent dispatch.
void OpenWithWebIntent(const content::DownloadItem* item);
+#endif
// Internal gateways for ShouldCompleteDownload().
bool IsDownloadReadyForCompletion(
diff --git a/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc b/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
index 4f22f3d..b3071a0 100644
--- a/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
+++ b/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
@@ -94,6 +94,7 @@ void AppEventRouter::DispatchOnLaunchedEventWithWebIntent(
Profile* profile, const Extension* extension,
content::WebIntentsDispatcher* intents_dispatcher,
content::WebContents* source) {
+#if defined(ENABLE_WEB_INTENTS)
webkit_glue::WebIntentData web_intent_data = intents_dispatcher->GetIntent();
scoped_ptr<ListValue> args(new ListValue());
DictionaryValue* launch_data = new DictionaryValue();
@@ -143,9 +144,11 @@ void AppEventRouter::DispatchOnLaunchedEventWithWebIntent(
callbacks->RegisterCallback(extension, intents_dispatcher, source);
args->Append(base::Value::CreateIntegerValue(intent_id));
DispatchOnLaunchedEventImpl(extension->id(), args.Pass(), profile);
+#endif
}
bool AppRuntimePostIntentResponseFunction::RunImpl() {
+#if defined(ENABLE_WEB_INTENTS)
DictionaryValue* details = NULL;
EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &details));
@@ -174,6 +177,9 @@ bool AppRuntimePostIntentResponseFunction::RunImpl() {
reply_type, UTF8ToUTF16(data)));
return true;
+#else
+ return false;
+#endif
}
} // namespace extensions
diff --git a/chrome/browser/extensions/extension_special_storage_policy.cc b/chrome/browser/extensions/extension_special_storage_policy.cc
index bc99895..e035ff1 100644
--- a/chrome/browser/extensions/extension_special_storage_policy.cc
+++ b/chrome/browser/extensions/extension_special_storage_policy.cc
@@ -28,6 +28,7 @@ namespace {
bool ExtensionSupportsIntentAction(
const extensions::Extension* extension,
const std::string& action) {
+#if defined(ENABLE_WEB_INTENTS)
for (std::vector<webkit_glue::WebIntentServiceData>::const_iterator i =
extensions::WebIntentsInfo::GetIntentsServices(extension).begin();
i != extensions::WebIntentsInfo::GetIntentsServices(extension).end();
@@ -35,6 +36,7 @@ bool ExtensionSupportsIntentAction(
if (UTF16ToUTF8(i->action) == action)
return true;
}
+#endif
return false;
}
diff --git a/chrome/browser/extensions/extension_special_storage_policy_unittest.cc b/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
index 4dd098a..b6e7de8 100644
--- a/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
+++ b/chrome/browser/extensions/extension_special_storage_policy_unittest.cc
@@ -27,8 +27,10 @@ class ExtensionSpecialStoragePolicyTest : public testing::Test {
public:
virtual void SetUp() {
policy_ = new ExtensionSpecialStoragePolicy(NULL);
+#if defined(ENABLE_WEB_INTENTS)
extensions::ManifestHandler::Register(keys::kIntents,
new extensions::WebIntentsHandler);
+#endif
}
protected:
@@ -131,6 +133,7 @@ class ExtensionSpecialStoragePolicyTest : public testing::Test {
return handler_app;
}
+#if defined(ENABLE_WEB_INTENTS)
scoped_refptr<Extension> CreateWebIntentViewApp() {
#if defined(OS_WIN)
FilePath path(FILE_PATH_LITERAL("c:\\bar"));
@@ -164,6 +167,7 @@ class ExtensionSpecialStoragePolicyTest : public testing::Test {
EXPECT_TRUE(intent_app.get()) << error;
return intent_app;
}
+#endif
// Verifies that the set of extensions protecting |url| is *exactly* equal to
// |expected_extensions|. Pass in an empty set to verify that an origin is not
@@ -287,6 +291,7 @@ TEST_F(ExtensionSpecialStoragePolicyTest, OverlappingApps) {
}
TEST_F(ExtensionSpecialStoragePolicyTest, WebIntentViewApp) {
+#if defined(ENABLE_WEB_INTENTS)
scoped_refptr<Extension> intent_app(CreateWebIntentViewApp());
policy_->GrantRightsForExtension(intent_app);
@@ -294,6 +299,7 @@ TEST_F(ExtensionSpecialStoragePolicyTest, WebIntentViewApp) {
policy_->RevokeRightsForExtension(intent_app);
EXPECT_FALSE(policy_->IsFileHandler(intent_app->id()));
+#endif
}
TEST_F(ExtensionSpecialStoragePolicyTest, HasSessionOnlyOrigins) {
diff --git a/chrome/browser/extensions/platform_app_launcher.cc b/chrome/browser/extensions/platform_app_launcher.cc
index de6fdee..513e54b 100644
--- a/chrome/browser/extensions/platform_app_launcher.cc
+++ b/chrome/browser/extensions/platform_app_launcher.cc
@@ -174,6 +174,7 @@ class PlatformAppPathLauncher
// TODO(benwells): remove this once we no longer support the "intents"
// syntax in platform app manifests.
if (!found_service) {
+#if defined(ENABLE_WEB_INTENTS)
std::vector<webkit_glue::WebIntentServiceData> services =
extensions::WebIntentsInfo::GetIntentsServices(extension_);
for (size_t i = 0; i < services.size(); i++) {
@@ -184,6 +185,7 @@ class PlatformAppPathLauncher
break;
}
}
+#endif
}
// If this app doesn't have an intent that supports the file, launch with
diff --git a/chrome/browser/profiles/profile_dependency_manager.cc b/chrome/browser/profiles/profile_dependency_manager.cc
index 6059988..e20e2fd 100644
--- a/chrome/browser/profiles/profile_dependency_manager.cc
+++ b/chrome/browser/profiles/profile_dependency_manager.cc
@@ -296,7 +296,9 @@ void ProfileDependencyManager::AssertFactoriesBuilt() {
extensions::TabsWindowsAPI::GetFactoryInstance();
extensions::TtsAPI::GetFactoryInstance();
extensions::WebAccessibleResourcesParser::GetFactoryInstance();
+#if defined(ENABLE_WEB_INTENTS)
extensions::WebIntentsParser::GetFactoryInstance();
+#endif
extensions::WebNavigationAPI::GetFactoryInstance();
#endif
FaviconServiceFactory::GetInstance();
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index a715b1a..065b302 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1590,6 +1590,7 @@ void Browser::RegisterProtocolHandler(WebContents* web_contents,
web_contents, protocol, url, title, user_gesture, window());
}
+#if defined(ENABLE_WEB_INTENTS)
void Browser::RegisterIntentHandler(
WebContents* web_contents,
const webkit_glue::WebIntentServiceData& data,
@@ -1653,6 +1654,7 @@ void Browser::WebIntentDispatch(
intents_dispatcher->GetIntent().action,
intents_dispatcher->GetIntent().type);
}
+#endif
void Browser::UpdatePreferredSize(WebContents* source,
const gfx::Size& pref_size) {
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 9f86dd5..c4c1e72 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -611,6 +611,7 @@ class Browser : public TabStripModelObserver,
const GURL& url,
const string16& title,
bool user_gesture) OVERRIDE;
+#if defined(ENABLE_WEB_INTENTS)
virtual void RegisterIntentHandler(
content::WebContents* web_contents,
const webkit_glue::WebIntentServiceData& data,
@@ -618,6 +619,7 @@ class Browser : public TabStripModelObserver,
virtual void WebIntentDispatch(
content::WebContents* web_contents,
content::WebIntentsDispatcher* intents_dispatcher) OVERRIDE;
+#endif
virtual void UpdatePreferredSize(content::WebContents* source,
const gfx::Size& pref_size) OVERRIDE;
virtual void ResizeDueToAutoResize(content::WebContents* source,
diff --git a/chrome/browser/ui/browser_tab_contents.cc b/chrome/browser/ui/browser_tab_contents.cc
index 4b35cc0..23a9a66 100644
--- a/chrome/browser/ui/browser_tab_contents.cc
+++ b/chrome/browser/ui/browser_tab_contents.cc
@@ -153,7 +153,9 @@ void BrowserTabContents::AttachTabHelpers(WebContents* web_contents) {
ThreeDAPIObserver::CreateForWebContents(web_contents);
ThumbnailTabHelper::CreateForWebContents(web_contents);
TranslateTabHelper::CreateForWebContents(web_contents);
+#if defined(ENABLE_WEB_INTENTS)
WebIntentPickerController::CreateForWebContents(web_contents);
+#endif
ZoomController::CreateForWebContents(web_contents);
#if defined(ENABLE_AUTOMATION)
diff --git a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h
index 7ef1a954..e445aad 100644
--- a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h
+++ b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h
@@ -70,7 +70,9 @@ class LocationBarViewMac : public LocationBar,
virtual void UpdateContentSettingsIcons() OVERRIDE;
virtual void UpdatePageActions() OVERRIDE;
virtual void InvalidatePageActions() OVERRIDE;
+#if defined(ENABLE_WEB_INTENTS)
virtual void UpdateWebIntentsButton() OVERRIDE;
+#endif
virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE;
virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE;
virtual void Revert() OVERRIDE;
@@ -278,9 +280,11 @@ class LocationBarViewMac : public LocationBar,
// Keyword hint decoration displayed on the right-hand side.
scoped_ptr<KeywordHintDecoration> keyword_hint_decoration_;
+#if defined(ENABLE_WEB_INTENTS)
// A decoration that shows the web intents "use another service" button
// on the right.
scoped_ptr<WebIntentsButtonDecoration> web_intents_button_decoration_;
+#endif
Profile* profile_;
diff --git a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
index ee9bbe0..61d5895 100644
--- a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
+++ b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
@@ -108,8 +108,10 @@ LocationBarViewMac::LocationBarViewMac(
zoom_decoration_(new ZoomDecoration(toolbar_model)),
keyword_hint_decoration_(
new KeywordHintDecoration(OmniboxViewMac::GetFieldFont())),
+#if defined(ENABLE_WEB_INTENTS)
web_intents_button_decoration_(
new WebIntentsButtonDecoration(this, OmniboxViewMac::GetFieldFont())),
+#endif
profile_(profile),
browser_(browser),
toolbar_model_(toolbar_model),
@@ -128,11 +130,13 @@ LocationBarViewMac::LocationBarViewMac(
new ContentSettingDecoration(type, this, profile_));
}
+#if defined(ENABLE_WEB_INTENTS)
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
web_intents_button_decoration_->SetButtonImages(
rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_L).ToNSImage(),
rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_C).ToNSImage(),
rb.GetNativeImageNamed(IDR_OMNIBOX_WI_BUBBLE_BACKGROUND_R).ToNSImage());
+#endif
registrar_.Add(this,
chrome::NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED,
@@ -242,9 +246,11 @@ void LocationBarViewMac::InvalidatePageActions() {
}
}
+#if defined(ENABLE_WEB_INTENTS)
void LocationBarViewMac::UpdateWebIntentsButton() {
RefreshWebIntentsButtonDecoration();
}
+#endif
void LocationBarViewMac::UpdateOpenPDFInReaderPrompt() {
// Not implemented on Mac.
@@ -667,6 +673,7 @@ void LocationBarViewMac::RefreshPageActionDecorations() {
}
void LocationBarViewMac::RefreshWebIntentsButtonDecoration() {
+#if defined(ENABLE_WEB_INTENTS)
WebContents* web_contents = GetWebContents();
if (!web_contents) {
web_intents_button_decoration_->SetVisible(false);
@@ -674,6 +681,7 @@ void LocationBarViewMac::RefreshWebIntentsButtonDecoration() {
}
web_intents_button_decoration_->Update(web_contents);
+#endif
}
// TODO(shess): This function should over time grow to closely match
@@ -705,7 +713,10 @@ void LocationBarViewMac::Layout() {
[cell addRightDecoration:keyword_hint_decoration_.get()];
+#if defined(ENABLE_WEB_INTENTS)
[cell addRightDecoration:web_intents_button_decoration_.get()];
+#endif
+
[cell addRightDecoration:separator_decoration_.get()];
[cell addRightDecoration:search_token_decoration_.get()];
diff --git a/chrome/browser/ui/extensions/shell_window.cc b/chrome/browser/ui/extensions/shell_window.cc
index bdb9fcf..8be9cce 100644
--- a/chrome/browser/ui/extensions/shell_window.cc
+++ b/chrome/browser/ui/extensions/shell_window.cc
@@ -130,7 +130,9 @@ void ShellWindow::Init(const GURL& url,
profile(), SiteInstance::CreateForURL(profile(), url))));
WebContentsModalDialogManager::CreateForWebContents(web_contents_.get());
FaviconTabHelper::CreateForWebContents(web_contents_.get());
+#if defined(ENABLE_WEB_INTENTS)
WebIntentPickerController::CreateForWebContents(web_contents_.get());
+#endif
content::WebContentsObserver::Observe(web_contents_.get());
web_contents_->SetDelegate(this);
@@ -500,6 +502,7 @@ bool ShellWindow::ShouldSuppressDialogs() {
void ShellWindow::WebIntentDispatch(
content::WebContents* web_contents,
content::WebIntentsDispatcher* intents_dispatcher) {
+#if defined(ENABLE_WEB_INTENTS)
if (!web_intents::IsWebIntentsEnabledForProfile(profile_))
return;
@@ -509,6 +512,7 @@ void ShellWindow::WebIntentDispatch(
web_intent_picker_controller->ShowDialog(
intents_dispatcher->GetIntent().action,
intents_dispatcher->GetIntent().type);
+#endif
}
void ShellWindow::RunFileChooser(WebContents* tab,
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.cc b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
index 18b9615..598ead6 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -740,7 +740,9 @@ void LocationBarViewGtk::Update(const WebContents* contents) {
UpdateSiteTypeArea();
UpdateContentSettingsIcons();
UpdatePageActions();
+#if defined(ENABLE_WEB_INTENTS)
UpdateWebIntentsButton();
+#endif
location_entry_->Update(contents);
// The security level (background color) could have changed, etc.
if (theme_service_->UsingNativeTheme()) {
@@ -1032,11 +1034,13 @@ void LocationBarViewGtk::InvalidatePageActions() {
}
}
+#if defined(ENABLE_WEB_INTENTS)
void LocationBarViewGtk::UpdateWebIntentsButton() {
web_intents_button_view_->Update(GetWebContents());
gtk_widget_set_visible(web_intents_hbox_.get(),
web_intents_button_view_->IsVisible());
}
+#endif
void LocationBarViewGtk::UpdateOpenPDFInReaderPrompt() {
// Not implemented on Gtk.
@@ -1179,7 +1183,9 @@ void LocationBarViewGtk::Observe(int type,
UpdateStarIcon();
UpdateSiteTypeArea();
UpdateContentSettingsIcons();
+#if defined(ENABLE_WEB_INTENTS)
UpdateWebIntentsButton();
+#endif
break;
}
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.h b/chrome/browser/ui/gtk/location_bar_view_gtk.h
index a8d8f3f..3a8dde4 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.h
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.h
@@ -140,7 +140,9 @@ class LocationBarViewGtk : public OmniboxEditController,
virtual void UpdateContentSettingsIcons() OVERRIDE;
virtual void UpdatePageActions() OVERRIDE;
virtual void InvalidatePageActions() OVERRIDE;
+#if defined(ENABLE_WEB_INTENTS)
virtual void UpdateWebIntentsButton() OVERRIDE;
+#endif
virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE;
virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE;
virtual void Revert() OVERRIDE;
diff --git a/chrome/browser/ui/omnibox/location_bar.h b/chrome/browser/ui/omnibox/location_bar.h
index 61567c1..8a0849e 100644
--- a/chrome/browser/ui/omnibox/location_bar.h
+++ b/chrome/browser/ui/omnibox/location_bar.h
@@ -66,8 +66,10 @@ class LocationBar {
// extension is unloaded or crashes.
virtual void InvalidatePageActions() = 0;
+#if defined(ENABLE_WEB_INTENTS)
// Updates the state of the web intents use-another-service button.
virtual void UpdateWebIntentsButton() = 0;
+#endif
// Updates the state of the button to open a PDF in Adobe Reader.
virtual void UpdateOpenPDFInReaderPrompt() = 0;
diff --git a/chrome/browser/ui/toolbar/action_box_button_controller.cc b/chrome/browser/ui/toolbar/action_box_button_controller.cc
index 51c8c8f..7d8c0fd 100644
--- a/chrome/browser/ui/toolbar/action_box_button_controller.cc
+++ b/chrome/browser/ui/toolbar/action_box_button_controller.cc
@@ -30,11 +30,13 @@
namespace {
+#if defined(ENABLE_WEB_INTENTS)
// This indicates we need to send UMA data about the number of
// "Share with X" commands shown in the menu after user tried to
// find share extensions from web store or the first use of action
// box after browser starts.
static bool send_uma_share_command_count = true;
+#endif
// Share intents get command IDs that are beyond the maximal valid command ID
// (0xDFFF) so that they are not confused with actual commands that appear in
@@ -75,11 +77,13 @@ void ActionBoxButtonController::OnButtonClicked() {
scoped_ptr<ActionBoxMenuModel> menu_model(
new ActionBoxMenuModel(browser_, this));
- // Add share intent triggers and a link to the web store.
- // Web Intents are not currently supported in Incognito mode.
ExtensionService* extension_service =
extensions::ExtensionSystem::Get(browser_->profile())->
extension_service();
+
+#if defined(ENABLE_WEB_INTENTS)
+ // Add share intent triggers and a link to the web store.
+ // Web Intents are not currently supported in Incognito mode.
if (!browser_->profile()->IsOffTheRecord()) {
int next_share_intent_command_id = SHARE_COMMAND_FIRST;
share_intent_service_ids_.clear();
@@ -119,6 +123,7 @@ void ActionBoxButtonController::OnButtonClicked() {
send_uma_share_command_count = false;
}
}
+#endif
// Add Extensions.
next_extension_command_id_ = EXTENSION_COMMAND_FIRST;
@@ -155,11 +160,13 @@ void ActionBoxButtonController::ExecuteCommand(int command_id) {
return;
}
+#if defined(ENABLE_WEB_INTENTS)
// Handle link to the CWS web store.
if (command_id == CWS_FIND_SHARE_INTENTS_COMMAND) {
NavigateToWebStoreShareIntentsList();
return;
}
+#endif
// Handle commands associated with extensions.
// Note that the extension might have been uninstalled or disabled while the
@@ -225,6 +232,7 @@ void ActionBoxButtonController::Observe(
void ActionBoxButtonController::TriggerExplicitShareIntent(
const GURL& share_service_url) {
+#if defined(ENABLE_WEB_INTENTS)
const GURL& current_url =
browser_->tab_strip_model()->GetActiveWebContents()->GetURL();
webkit_glue::WebIntentData intent_data(
@@ -234,9 +242,11 @@ void ActionBoxButtonController::TriggerExplicitShareIntent(
intent_data.service = share_service_url;
static_cast<content::WebContentsDelegate*>(browser_)->WebIntentDispatch(
NULL, content::WebIntentsDispatcher::Create(intent_data));
+#endif
}
void ActionBoxButtonController::NavigateToWebStoreShareIntentsList() {
+#if defined(ENABLE_WEB_INTENTS)
const GURL& query_url = extension_urls::GetWebstoreIntentQueryURL(
kShareIntentAction,
kShareIntentMimeType);
@@ -247,4 +257,5 @@ void ActionBoxButtonController::NavigateToWebStoreShareIntentsList() {
content::RecordAction(UserMetricsAction("ActionBox.FindShareHandlers"));
send_uma_share_command_count = true;
+#endif
}
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 118279d..76f0852 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -186,7 +186,9 @@ LocationBarView::LocationBarView(Browser* browser,
open_pdf_in_reader_view_(NULL),
script_bubble_icon_view_(NULL),
star_view_(NULL),
+#if defined(ENABLE_WEB_INTENTS)
web_intents_button_view_(NULL),
+#endif
action_box_button_view_(NULL),
mode_(mode),
show_focus_rect_(false),
@@ -286,10 +288,12 @@ void LocationBarView::Init() {
zoom_view_->set_id(VIEW_ID_ZOOM_BUTTON);
AddChildView(zoom_view_);
+#if defined(ENABLE_WEB_INTENTS)
web_intents_button_view_ =
new WebIntentsButtonView(this, kWIBubbleBackgroundImages, font_,
GetColor(ToolbarModel::NONE, TEXT));
AddChildView(web_intents_button_view_);
+#endif
open_pdf_in_reader_view_ = new OpenPDFInReaderView(this);
AddChildView(open_pdf_in_reader_view_);
@@ -418,7 +422,9 @@ void LocationBarView::Update(const WebContents* tab_for_state_restoring) {
RefreshZoomView();
RefreshPageActionViews();
RefreshScriptBubble();
+#if defined(ENABLE_WEB_INTENTS)
web_intents_button_view_->Update(GetWebContents());
+#endif
open_pdf_in_reader_view_->Update(
model_->GetInputInProgress() ? NULL : GetWebContents());
@@ -495,12 +501,14 @@ void LocationBarView::InvalidatePageActions() {
}
}
+#if defined(ENABLE_WEB_INTENTS)
void LocationBarView::UpdateWebIntentsButton() {
web_intents_button_view_->Update(GetWebContents());
Layout();
SchedulePaint();
}
+#endif
void LocationBarView::UpdateOpenPDFInReaderPrompt() {
open_pdf_in_reader_view_->Update(
@@ -785,12 +793,14 @@ void LocationBarView::Layout() {
(*i)->GetBuiltInHorizontalPadding(), (*i));
}
}
+#if defined(ENABLE_WEB_INTENTS)
if (web_intents_button_view_->visible()) {
right_decorations.AddDecoration(
kBubbleLocationY, 0, false, 0, GetEdgeItemPadding(), GetItemPadding(),
web_intents_button_view_->GetBuiltInHorizontalPadding(),
web_intents_button_view_);
}
+#endif
if (show_keyword_hint) {
right_decorations.AddDecoration(
kVerticalEdgeThickness, 0, true, 0, GetEdgeItemPadding(),
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h
index 69bb021..75abbf9 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.h
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.h
@@ -300,7 +300,9 @@ class LocationBarView : public LocationBar,
virtual void UpdateContentSettingsIcons() OVERRIDE;
virtual void UpdatePageActions() OVERRIDE;
virtual void InvalidatePageActions() OVERRIDE;
+#if defined(ENABLE_WEB_INTENTS)
virtual void UpdateWebIntentsButton() OVERRIDE;
+#endif
virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE;
virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE;
virtual void Revert() OVERRIDE;
@@ -483,8 +485,10 @@ class LocationBarView : public LocationBar,
// The star.
StarView* star_view_;
+#if defined(ENABLE_WEB_INTENTS)
// The web intents choose-another-service button
WebIntentsButtonView* web_intents_button_view_;
+#endif
// The action box button (plus).
ActionBoxButtonView* action_box_button_view_;
diff --git a/chrome/chrome_browser_extensions.gypi b/chrome/chrome_browser_extensions.gypi
index e0497de..1267624 100644
--- a/chrome/chrome_browser_extensions.gypi
+++ b/chrome/chrome_browser_extensions.gypi
@@ -807,6 +807,12 @@
'../third_party/libusb/libusb.gyp:libusb'
],
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'browser/extensions/web_intents_parser.cc',
+ 'browser/extensions/web_intents_parser.h',
+ ],
+ }],
['OS=="linux" and use_aura==1', {
'dependencies': [
'../build/linux/system.gyp:dbus',
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
index 1b5d936..aac88e0 100644
--- a/chrome/chrome_browser_ui.gypi
+++ b/chrome/chrome_browser_ui.gypi
@@ -2489,6 +2489,16 @@
'sources/': [
['exclude', '^browser/ui/intents/'],
],
+ 'sources!': [
+ 'browser/ui/cocoa/intents/web_intent_picker_cocoa.mm',
+ 'browser/ui/cocoa/location_bar/web_intents_button_decoration.h',
+ 'browser/ui/cocoa/location_bar/web_intents_button_decoration.mm',
+ 'browser/ui/gtk/web_intent_picker_gtk.cc',
+ 'browser/ui/gtk/web_intent_picker_gtk.h',
+ 'browser/ui/views/location_bar/web_intents_button_view.cc',
+ 'browser/ui/views/location_bar/web_intents_button_view.h',
+ 'browser/ui/views/web_intent_picker_views.cc',
+ ],
}],
['enable_themes==0', {
'sources!': [
diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi
index eccc67e..f6d4af4 100644
--- a/chrome/chrome_common.gypi
+++ b/chrome/chrome_common.gypi
@@ -503,6 +503,12 @@
['exclude', '^common/automation_']
]
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'common/extensions/web_intents_handler.cc',
+ 'common/extensions/web_intents_handler.h',
+ ],
+ }],
['use_system_nspr==1', {
'dependencies': [
'<(DEPTH)/base/third_party/nspr/nspr.gyp:nspr',
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index c04b4084..84061ac 100644
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -1608,6 +1608,14 @@
'browser/media/chrome_webrtc_browsertest.cc',
],
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'browser/intents/native_services_browsertest.cc',
+ 'browser/ui/intents/web_intent_picker_controller_browsertest.cc',
+ 'browser/ui/intents/web_intent_picker_delegate_mock.cc',
+ 'browser/ui/intents/web_intent_picker_delegate_mock.h',
+ ],
+ }],
['OS=="win"', {
'sources': [
'<(SHARED_INTERMEDIATE_DIR)/chrome/browser_resources.rc',
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index 6bf0c1f..9bcaad8 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -2203,8 +2203,12 @@
['exclude', '^browser/ui/intents/'],
],
'sources!': [
+ 'browser/ui/cocoa/location_bar/web_intents_button_decoration_unittest.mm',
'browser/webdata/web_data_service_unittest.cc',
'browser/webdata/web_intents_table_unittest.cc',
+ 'common/extensions/manifest_tests/extension_manifests_web_intents_unittest.cc',
+ '../webkit/glue/web_intent_reply_data_unittest.cc',
+ '../webkit/glue/web_intent_service_data_unittest.cc',
],
}],
['enable_themes==0', {
diff --git a/chrome/test/base/test_location_bar.h b/chrome/test/base/test_location_bar.h
index 614215a..902bde0 100644
--- a/chrome/test/base/test_location_bar.h
+++ b/chrome/test/base/test_location_bar.h
@@ -39,7 +39,9 @@ class TestLocationBar : public LocationBar {
virtual void UpdateContentSettingsIcons() OVERRIDE {}
virtual void UpdatePageActions() OVERRIDE {}
virtual void InvalidatePageActions() OVERRIDE {}
+#if defined(ENABLE_WEB_INTENTS)
virtual void UpdateWebIntentsButton() OVERRIDE {}
+#endif
virtual void UpdateOpenPDFInReaderPrompt() OVERRIDE {}
virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE {}
virtual void Revert() OVERRIDE {}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index a94766d..5a1278d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -715,10 +715,12 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host,
bool handled = true;
bool message_is_ok = true;
IPC_BEGIN_MESSAGE_MAP_EX(WebContentsImpl, message, message_is_ok)
+#if defined(ENABLE_WEB_INTENTS)
IPC_MESSAGE_HANDLER(IntentsHostMsg_RegisterIntentService,
OnRegisterIntentService)
IPC_MESSAGE_HANDLER(IntentsHostMsg_WebIntentDispatch,
OnWebIntentDispatch)
+#endif
IPC_MESSAGE_HANDLER(ViewHostMsg_DidLoadResourceFromMemoryCache,
OnDidLoadResourceFromMemoryCache)
IPC_MESSAGE_HANDLER(ViewHostMsg_DidDisplayInsecureContent,
@@ -1991,6 +1993,7 @@ void WebContentsImpl::SetFocusToLocationBar(bool select_all) {
delegate_->SetFocusToLocationBar(select_all);
}
+#if defined(ENABLE_WEB_INTENTS)
void WebContentsImpl::OnRegisterIntentService(
const webkit_glue::WebIntentServiceData& data,
bool user_gesture) {
@@ -2008,6 +2011,7 @@ void WebContentsImpl::OnWebIntentDispatch(
new WebIntentsDispatcherImpl(this, intent, intent_id);
delegate_->WebIntentDispatch(this, intents_dispatcher);
}
+#endif
void WebContentsImpl::DidStartProvisionalLoadForFrame(
RenderViewHost* render_view_host,
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index d060755..847b11f 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -511,10 +511,12 @@ class CONTENT_EXPORT WebContentsImpl
void OnPpapiBrokerPermissionResult(int request_id, bool result);
// IPC message handlers.
+#if defined(ENABLE_WEB_INTENTS)
void OnRegisterIntentService(const webkit_glue::WebIntentServiceData& data,
bool user_gesture);
void OnWebIntentDispatch(const webkit_glue::WebIntentData& intent,
int intent_id);
+#endif
void OnDidLoadResourceFromMemoryCache(const GURL& url,
const std::string& security_info,
const std::string& http_request,
diff --git a/content/common/intents_messages.h b/content/common/intents_messages.h
index 9b8ea34..3db6a92 100644
--- a/content/common/intents_messages.h
+++ b/content/common/intents_messages.h
@@ -20,6 +20,8 @@ IPC_ENUM_TRAITS(webkit_glue::WebIntentReplyType)
IPC_ENUM_TRAITS(webkit_glue::WebIntentData::DataType)
IPC_ENUM_TRAITS(webkit_glue::WebIntentServiceData::Disposition)
+#if defined(ENABLE_WEB_INTENTS)
+
IPC_STRUCT_TRAITS_BEGIN(webkit_glue::WebIntentData)
IPC_STRUCT_TRAITS_MEMBER(action)
IPC_STRUCT_TRAITS_MEMBER(type)
@@ -75,3 +77,5 @@ IPC_MESSAGE_ROUTED2(IntentsHostMsg_WebIntentDispatch,
IPC_MESSAGE_ROUTED2(IntentsHostMsg_RegisterIntentService,
webkit_glue::WebIntentServiceData,
bool /* user_gesture */)
+
+#endif
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index 3c4a1a5..e59ec9a 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -1020,6 +1020,11 @@
'browser/renderer_host/p2p/socket_dispatcher_host.h',
],
}],
+ ['enable_web_intents==0', {
+ 'sources/': [
+ ['exclude', '^browser/intents/' ],
+ ],
+ }],
['OS=="win"', {
'dependencies': [
# For accessibility
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 46b29b1..945f83f 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -324,6 +324,12 @@
'../third_party/libphonenumber/libphonenumber.gyp:libphonenumber',
],
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'renderer/web_intents_host.cc',
+ 'renderer/web_intents_host.h',
+ ],
+ }],
# TODO(jrg): remove the OS=="android" section?
# http://crbug.com/113172
# Understand better how media_stream_ is tied into Chromium.
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index af3a324..534df0a 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -562,6 +562,12 @@
'../third_party/webrtc/voice_engine/voice_engine.gyp:voice_engine_core',
]
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'browser/intents/intent_injector_unittest.cc',
+ 'browser/intents/internal_web_intents_dispatcher_unittest.cc',
+ ],
+ }],
# TODO(jrg): remove the OS=="android" section?
# http://crbug.com/113172
# Understand better how media_stream_ is tied into Chromium.
@@ -858,6 +864,11 @@
'browser/media/webrtc_browsertest.cc',
],
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'renderer/web_intents_host_browsertest.cc',
+ ],
+ }],
['enable_plugins==0', {
'sources!': [
'browser/plugin_service_impl_browsertest.cc',
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index 21b76b9..b477ed7 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -1583,6 +1583,7 @@ TEST_F(RenderViewImplTest, SetHistoryLengthAndPrune) {
EXPECT_EQ(expected_page_id_2, view()->history_page_ids_[3]);
}
+#if defined(ENABLE_WEB_INTENTS)
TEST_F(RenderViewImplTest, FindTitleForIntentsPage) {
view()->set_send_content_state_immediately(true);
LoadHTML("<html><head><title>title</title>"
@@ -1606,6 +1607,7 @@ TEST_F(RenderViewImplTest, FindTitleForIntentsPage) {
EXPECT_EQ(ASCIIToUTF16("title"), service_data.title);
EXPECT_FALSE(user_gesture);
}
+#endif
TEST_F(RenderViewImplTest, ContextMenu) {
LoadHTML("<div>Page A</div>");
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 0cb157b..06d15f7 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -739,7 +739,11 @@ RenderViewImpl::RenderViewImpl(RenderViewImplParams* params)
// along with the RenderView automatically.
devtools_agent_ = new DevToolsAgent(this);
mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this);
+#if defined(ENABLE_WEB_INTENTS)
intents_host_ = new WebIntentsHost(this);
+#else
+ intents_host_ = NULL;
+#endif
favicon_helper_ = new FaviconHelper(this);
// Create renderer_accessibility_ if needed.
@@ -3924,8 +3928,10 @@ void RenderViewImpl::didCreateScriptContext(WebFrame* frame,
GetContentClient()->renderer()->DidCreateScriptContext(
frame, context, extension_group, world_id);
+#if defined(ENABLE_WEB_INTENTS)
intents_host_->DidCreateScriptContext(
frame, context, extension_group, world_id);
+#endif
}
void RenderViewImpl::willReleaseScriptContext(WebFrame* frame,
@@ -4297,6 +4303,7 @@ void RenderViewImpl::requestStorageQuota(
void RenderViewImpl::registerIntentService(
WebFrame* frame, const WebIntentServiceInfo& service) {
+#if defined(ENABLE_WEB_INTENTS)
webkit_glue::WebIntentServiceData data(service);
if (data.title.empty())
data.title = webview()->mainFrame()->document().title();
@@ -4304,10 +4311,12 @@ void RenderViewImpl::registerIntentService(
Send(new IntentsHostMsg_RegisterIntentService(routing_id_,
data,
user_gesture));
+#endif
}
void RenderViewImpl::dispatchIntent(
WebFrame* frame, const WebIntentRequest& intentRequest) {
+#if defined(ENABLE_WEB_INTENTS)
webkit_glue::WebIntentData intent_data(intentRequest.intent());
// See WebMessagePortChannelImpl::postMessage() and ::OnMessagedQueued()
@@ -4326,6 +4335,7 @@ void RenderViewImpl::dispatchIntent(
int id = intents_host_->RegisterWebIntent(intentRequest);
Send(new IntentsHostMsg_WebIntentDispatch(
routing_id_, intent_data, id));
+#endif
}
bool RenderViewImpl::willCheckAndDispatchMessageEvent(
diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi
index 5d2a717..e512310 100644
--- a/webkit/glue/webkit_glue.gypi
+++ b/webkit/glue/webkit_glue.gypi
@@ -430,6 +430,16 @@
['exclude', '^\\.\\./plugins/npapi/webplugin_delegate_impl_aura'],
],
}],
+ ['enable_web_intents==0', {
+ 'sources!': [
+ 'web_intent_data.cc',
+ 'web_intent_data.h',
+ 'web_intent_reply_data.cc',
+ 'web_intent_reply_data.h',
+ 'web_intent_service_data.cc',
+ 'web_intent_service_data.h',
+ ],
+ }],
['OS!="mac"', {
'sources/': [['exclude', '_mac\\.(cc|mm)$']],
'sources!': [