OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/tabs/tabs_api.h" | 5 #include "chrome/browser/extensions/api/tabs/tabs_api.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 } | 181 } |
182 } | 182 } |
183 | 183 |
184 } // namespace | 184 } // namespace |
185 | 185 |
186 void ZoomModeToZoomSettings(ZoomController::ZoomMode zoom_mode, | 186 void ZoomModeToZoomSettings(ZoomController::ZoomMode zoom_mode, |
187 api::tabs::ZoomSettings* zoom_settings) { | 187 api::tabs::ZoomSettings* zoom_settings) { |
188 DCHECK(zoom_settings); | 188 DCHECK(zoom_settings); |
189 switch (zoom_mode) { | 189 switch (zoom_mode) { |
190 case ZoomController::ZOOM_MODE_DEFAULT: | 190 case ZoomController::ZOOM_MODE_DEFAULT: |
191 zoom_settings->mode = api::tabs::ZoomSettings::MODE_AUTOMATIC; | 191 zoom_settings->mode = api::tabs::ZOOM_SETTINGS_MODE_AUTOMATIC; |
192 zoom_settings->scope = api::tabs::ZoomSettings::SCOPE_PER_ORIGIN; | 192 zoom_settings->scope = api::tabs::ZOOM_SETTINGS_SCOPE_PER_ORIGIN; |
193 break; | 193 break; |
194 case ZoomController::ZOOM_MODE_ISOLATED: | 194 case ZoomController::ZOOM_MODE_ISOLATED: |
195 zoom_settings->mode = api::tabs::ZoomSettings::MODE_AUTOMATIC; | 195 zoom_settings->mode = api::tabs::ZOOM_SETTINGS_MODE_AUTOMATIC; |
196 zoom_settings->scope = api::tabs::ZoomSettings::SCOPE_PER_TAB; | 196 zoom_settings->scope = api::tabs::ZOOM_SETTINGS_SCOPE_PER_TAB; |
197 break; | 197 break; |
198 case ZoomController::ZOOM_MODE_MANUAL: | 198 case ZoomController::ZOOM_MODE_MANUAL: |
199 zoom_settings->mode = api::tabs::ZoomSettings::MODE_MANUAL; | 199 zoom_settings->mode = api::tabs::ZOOM_SETTINGS_MODE_MANUAL; |
200 zoom_settings->scope = api::tabs::ZoomSettings::SCOPE_PER_TAB; | 200 zoom_settings->scope = api::tabs::ZOOM_SETTINGS_SCOPE_PER_TAB; |
201 break; | 201 break; |
202 case ZoomController::ZOOM_MODE_DISABLED: | 202 case ZoomController::ZOOM_MODE_DISABLED: |
203 zoom_settings->mode = api::tabs::ZoomSettings::MODE_DISABLED; | 203 zoom_settings->mode = api::tabs::ZOOM_SETTINGS_MODE_DISABLED; |
204 zoom_settings->scope = api::tabs::ZoomSettings::SCOPE_PER_TAB; | 204 zoom_settings->scope = api::tabs::ZOOM_SETTINGS_SCOPE_PER_TAB; |
205 break; | 205 break; |
206 } | 206 } |
207 } | 207 } |
208 | 208 |
209 // Windows --------------------------------------------------------------------- | 209 // Windows --------------------------------------------------------------------- |
210 | 210 |
211 bool WindowsGetFunction::RunSync() { | 211 bool WindowsGetFunction::RunSync() { |
212 scoped_ptr<windows::Get::Params> params(windows::Get::Params::Create(*args_)); | 212 scoped_ptr<windows::Get::Params> params(windows::Get::Params::Create(*args_)); |
213 EXTENSION_FUNCTION_VALIDATE(params.get()); | 213 EXTENSION_FUNCTION_VALIDATE(params.get()); |
214 | 214 |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 return false; | 425 return false; |
426 } | 426 } |
427 if (open_incognito_window) { | 427 if (open_incognito_window) { |
428 window_profile = window_profile->GetOffTheRecordProfile(); | 428 window_profile = window_profile->GetOffTheRecordProfile(); |
429 } | 429 } |
430 | 430 |
431 if (create_data) { | 431 if (create_data) { |
432 // Figure out window type before figuring out bounds so that default | 432 // Figure out window type before figuring out bounds so that default |
433 // bounds can be set according to the window type. | 433 // bounds can be set according to the window type. |
434 switch (create_data->type) { | 434 switch (create_data->type) { |
435 case windows::Create::Params::CreateData::TYPE_POPUP: | 435 case windows::CREATE_TYPE_POPUP: |
436 window_type = Browser::TYPE_POPUP; | 436 window_type = Browser::TYPE_POPUP; |
437 extension_id = extension()->id(); | 437 extension_id = extension()->id(); |
438 break; | 438 break; |
439 case windows::Create::Params::CreateData::TYPE_PANEL: | 439 case windows::CREATE_TYPE_PANEL: |
440 case windows::Create::Params::CreateData::TYPE_DETACHED_PANEL: { | 440 case windows::CREATE_TYPE_DETACHED_PANEL: { |
441 extension_id = extension()->id(); | 441 extension_id = extension()->id(); |
442 bool use_panels = PanelManager::ShouldUsePanels(extension_id); | 442 bool use_panels = PanelManager::ShouldUsePanels(extension_id); |
443 if (use_panels) { | 443 if (use_panels) { |
444 create_panel = true; | 444 create_panel = true; |
445 // Non-ash supports both docked and detached panel types. | 445 // Non-ash supports both docked and detached panel types. |
446 if (chrome::GetActiveDesktop() != chrome::HOST_DESKTOP_TYPE_ASH && | 446 if (chrome::GetActiveDesktop() != chrome::HOST_DESKTOP_TYPE_ASH && |
447 create_data->type == | 447 create_data->type == windows::CREATE_TYPE_DETACHED_PANEL) { |
448 windows::Create::Params::CreateData::TYPE_DETACHED_PANEL) { | |
449 panel_create_mode = PanelManager::CREATE_AS_DETACHED; | 448 panel_create_mode = PanelManager::CREATE_AS_DETACHED; |
450 } | 449 } |
451 } else { | 450 } else { |
452 window_type = Browser::TYPE_POPUP; | 451 window_type = Browser::TYPE_POPUP; |
453 } | 452 } |
454 break; | 453 break; |
455 } | 454 } |
456 case windows::Create::Params::CreateData::TYPE_NONE: | 455 case windows::CREATE_TYPE_NONE: |
457 case windows::Create::Params::CreateData::TYPE_NORMAL: | 456 case windows::CREATE_TYPE_NORMAL: |
458 break; | 457 break; |
459 default: | 458 default: |
460 error_ = keys::kInvalidWindowTypeError; | 459 error_ = keys::kInvalidWindowTypeError; |
461 return false; | 460 return false; |
462 } | 461 } |
463 | 462 |
464 // Initialize default window bounds according to window type. | 463 // Initialize default window bounds according to window type. |
465 if (window_type == Browser::TYPE_TABBED || | 464 if (window_type == Browser::TYPE_TABBED || |
466 window_type == Browser::TYPE_POPUP || | 465 window_type == Browser::TYPE_POPUP || |
467 create_panel) { | 466 create_panel) { |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 windows::Update::Params::Create(*args_)); | 618 windows::Update::Params::Create(*args_)); |
620 EXTENSION_FUNCTION_VALIDATE(params); | 619 EXTENSION_FUNCTION_VALIDATE(params); |
621 | 620 |
622 WindowController* controller; | 621 WindowController* controller; |
623 if (!windows_util::GetWindowFromWindowID(this, params->window_id, | 622 if (!windows_util::GetWindowFromWindowID(this, params->window_id, |
624 &controller)) | 623 &controller)) |
625 return false; | 624 return false; |
626 | 625 |
627 ui::WindowShowState show_state = ui::SHOW_STATE_DEFAULT; // No change. | 626 ui::WindowShowState show_state = ui::SHOW_STATE_DEFAULT; // No change. |
628 switch (params->update_info.state) { | 627 switch (params->update_info.state) { |
629 case windows::Update::Params::UpdateInfo::STATE_NORMAL: | 628 case windows::WINDOW_STATE_NORMAL: |
630 show_state = ui::SHOW_STATE_NORMAL; | 629 show_state = ui::SHOW_STATE_NORMAL; |
631 break; | 630 break; |
632 case windows::Update::Params::UpdateInfo::STATE_MINIMIZED: | 631 case windows::WINDOW_STATE_MINIMIZED: |
633 show_state = ui::SHOW_STATE_MINIMIZED; | 632 show_state = ui::SHOW_STATE_MINIMIZED; |
634 break; | 633 break; |
635 case windows::Update::Params::UpdateInfo::STATE_MAXIMIZED: | 634 case windows::WINDOW_STATE_MAXIMIZED: |
636 show_state = ui::SHOW_STATE_MAXIMIZED; | 635 show_state = ui::SHOW_STATE_MAXIMIZED; |
637 break; | 636 break; |
638 case windows::Update::Params::UpdateInfo::STATE_FULLSCREEN: | 637 case windows::WINDOW_STATE_FULLSCREEN: |
639 show_state = ui::SHOW_STATE_FULLSCREEN; | 638 show_state = ui::SHOW_STATE_FULLSCREEN; |
640 break; | 639 break; |
641 case windows::Update::Params::UpdateInfo::STATE_NONE: | 640 case windows::WINDOW_STATE_NONE: |
642 break; | 641 break; |
643 default: | 642 default: |
644 error_ = keys::kInvalidWindowStateError; | 643 error_ = keys::kInvalidWindowStateError; |
645 return false; | 644 return false; |
646 } | 645 } |
647 | 646 |
648 if (show_state != ui::SHOW_STATE_FULLSCREEN && | 647 if (show_state != ui::SHOW_STATE_FULLSCREEN && |
649 show_state != ui::SHOW_STATE_DEFAULT) | 648 show_state != ui::SHOW_STATE_DEFAULT) |
650 controller->SetFullscreenMode(false, extension()->url()); | 649 controller->SetFullscreenMode(false, extension()->url()); |
651 | 650 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 | 795 |
797 SetResult(ExtensionTabUtil::CreateTabList(browser, extension())); | 796 SetResult(ExtensionTabUtil::CreateTabList(browser, extension())); |
798 | 797 |
799 return true; | 798 return true; |
800 } | 799 } |
801 | 800 |
802 bool TabsQueryFunction::RunSync() { | 801 bool TabsQueryFunction::RunSync() { |
803 scoped_ptr<tabs::Query::Params> params(tabs::Query::Params::Create(*args_)); | 802 scoped_ptr<tabs::Query::Params> params(tabs::Query::Params::Create(*args_)); |
804 EXTENSION_FUNCTION_VALIDATE(params.get()); | 803 EXTENSION_FUNCTION_VALIDATE(params.get()); |
805 | 804 |
806 bool loading_status_set = params->query_info.status != | 805 bool loading_status_set = params->query_info.status != tabs::TAB_STATUS_NONE; |
807 tabs::Query::Params::QueryInfo::STATUS_NONE; | 806 bool loading = params->query_info.status == tabs::TAB_STATUS_LOADING; |
808 bool loading = params->query_info.status == | |
809 tabs::Query::Params::QueryInfo::STATUS_LOADING; | |
810 | 807 |
811 URLPatternSet url_patterns; | 808 URLPatternSet url_patterns; |
812 if (params->query_info.url.get()) { | 809 if (params->query_info.url.get()) { |
813 std::vector<std::string> url_pattern_strings; | 810 std::vector<std::string> url_pattern_strings; |
814 if (params->query_info.url->as_string) | 811 if (params->query_info.url->as_string) |
815 url_pattern_strings.push_back(*params->query_info.url->as_string); | 812 url_pattern_strings.push_back(*params->query_info.url->as_string); |
816 else if (params->query_info.url->as_strings) | 813 else if (params->query_info.url->as_strings) |
817 url_pattern_strings.swap(*params->query_info.url->as_strings); | 814 url_pattern_strings.swap(*params->query_info.url->as_strings); |
818 // It is o.k. to use URLPattern::SCHEME_ALL here because this function does | 815 // It is o.k. to use URLPattern::SCHEME_ALL here because this function does |
819 // not grant access to the content of the tabs, only to seeing their URLs | 816 // not grant access to the content of the tabs, only to seeing their URLs |
(...skipping 10 matching lines...) Expand all Loading... |
830 | 827 |
831 int window_id = extension_misc::kUnknownWindowId; | 828 int window_id = extension_misc::kUnknownWindowId; |
832 if (params->query_info.window_id.get()) | 829 if (params->query_info.window_id.get()) |
833 window_id = *params->query_info.window_id; | 830 window_id = *params->query_info.window_id; |
834 | 831 |
835 int index = -1; | 832 int index = -1; |
836 if (params->query_info.index.get()) | 833 if (params->query_info.index.get()) |
837 index = *params->query_info.index; | 834 index = *params->query_info.index; |
838 | 835 |
839 std::string window_type; | 836 std::string window_type; |
840 if (params->query_info.window_type != | 837 if (params->query_info.window_type != tabs::WINDOW_TYPE_NONE) |
841 tabs::Query::Params::QueryInfo::WINDOW_TYPE_NONE) { | 838 window_type = tabs::ToString(params->query_info.window_type); |
842 window_type = tabs::Query::Params::QueryInfo::ToString( | |
843 params->query_info.window_type); | |
844 } | |
845 | 839 |
846 base::ListValue* result = new base::ListValue(); | 840 base::ListValue* result = new base::ListValue(); |
847 Browser* last_active_browser = chrome::FindAnyBrowser( | 841 Browser* last_active_browser = chrome::FindAnyBrowser( |
848 GetProfile(), include_incognito(), chrome::GetActiveDesktop()); | 842 GetProfile(), include_incognito(), chrome::GetActiveDesktop()); |
849 Browser* current_browser = GetCurrentBrowser(); | 843 Browser* current_browser = GetCurrentBrowser(); |
850 for (chrome::BrowserIterator it; !it.done(); it.Next()) { | 844 for (chrome::BrowserIterator it; !it.done(); it.Next()) { |
851 Browser* browser = *it; | 845 Browser* browser = *it; |
852 if (!GetProfile()->IsSameProfile(browser->profile())) | 846 if (!GetProfile()->IsSameProfile(browser->profile())) |
853 continue; | 847 continue; |
854 | 848 |
(...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1898 int tab_id = params->tab_id ? *params->tab_id : -1; | 1892 int tab_id = params->tab_id ? *params->tab_id : -1; |
1899 WebContents* web_contents = GetWebContents(tab_id); | 1893 WebContents* web_contents = GetWebContents(tab_id); |
1900 if (!web_contents) | 1894 if (!web_contents) |
1901 return false; | 1895 return false; |
1902 | 1896 |
1903 GURL url(web_contents->GetVisibleURL()); | 1897 GURL url(web_contents->GetVisibleURL()); |
1904 if (PermissionsData::IsRestrictedUrl(url, url, extension(), &error_)) | 1898 if (PermissionsData::IsRestrictedUrl(url, url, extension(), &error_)) |
1905 return false; | 1899 return false; |
1906 | 1900 |
1907 // "per-origin" scope is only available in "automatic" mode. | 1901 // "per-origin" scope is only available in "automatic" mode. |
1908 if (params->zoom_settings.scope == ZoomSettings::SCOPE_PER_ORIGIN && | 1902 if (params->zoom_settings.scope == tabs::ZOOM_SETTINGS_SCOPE_PER_ORIGIN && |
1909 params->zoom_settings.mode != ZoomSettings::MODE_AUTOMATIC && | 1903 params->zoom_settings.mode != tabs::ZOOM_SETTINGS_MODE_AUTOMATIC && |
1910 params->zoom_settings.mode != ZoomSettings::MODE_NONE) { | 1904 params->zoom_settings.mode != tabs::ZOOM_SETTINGS_MODE_NONE) { |
1911 error_ = keys::kPerOriginOnlyInAutomaticError; | 1905 error_ = keys::kPerOriginOnlyInAutomaticError; |
1912 return false; | 1906 return false; |
1913 } | 1907 } |
1914 | 1908 |
1915 // Determine the correct internal zoom mode to set |web_contents| to from the | 1909 // Determine the correct internal zoom mode to set |web_contents| to from the |
1916 // user-specified |zoom_settings|. | 1910 // user-specified |zoom_settings|. |
1917 ZoomController::ZoomMode zoom_mode = ZoomController::ZOOM_MODE_DEFAULT; | 1911 ZoomController::ZoomMode zoom_mode = ZoomController::ZOOM_MODE_DEFAULT; |
1918 switch (params->zoom_settings.mode) { | 1912 switch (params->zoom_settings.mode) { |
1919 case ZoomSettings::MODE_NONE: | 1913 case tabs::ZOOM_SETTINGS_MODE_NONE: |
1920 case ZoomSettings::MODE_AUTOMATIC: | 1914 case tabs::ZOOM_SETTINGS_MODE_AUTOMATIC: |
1921 switch (params->zoom_settings.scope) { | 1915 switch (params->zoom_settings.scope) { |
1922 case ZoomSettings::SCOPE_NONE: | 1916 case tabs::ZOOM_SETTINGS_SCOPE_NONE: |
1923 case ZoomSettings::SCOPE_PER_ORIGIN: | 1917 case tabs::ZOOM_SETTINGS_SCOPE_PER_ORIGIN: |
1924 zoom_mode = ZoomController::ZOOM_MODE_DEFAULT; | 1918 zoom_mode = ZoomController::ZOOM_MODE_DEFAULT; |
1925 break; | 1919 break; |
1926 case ZoomSettings::SCOPE_PER_TAB: | 1920 case tabs::ZOOM_SETTINGS_SCOPE_PER_TAB: |
1927 zoom_mode = ZoomController::ZOOM_MODE_ISOLATED; | 1921 zoom_mode = ZoomController::ZOOM_MODE_ISOLATED; |
1928 } | 1922 } |
1929 break; | 1923 break; |
1930 case ZoomSettings::MODE_MANUAL: | 1924 case tabs::ZOOM_SETTINGS_MODE_MANUAL: |
1931 zoom_mode = ZoomController::ZOOM_MODE_MANUAL; | 1925 zoom_mode = ZoomController::ZOOM_MODE_MANUAL; |
1932 break; | 1926 break; |
1933 case ZoomSettings::MODE_DISABLED: | 1927 case tabs::ZOOM_SETTINGS_MODE_DISABLED: |
1934 zoom_mode = ZoomController::ZOOM_MODE_DISABLED; | 1928 zoom_mode = ZoomController::ZOOM_MODE_DISABLED; |
1935 } | 1929 } |
1936 | 1930 |
1937 ZoomController::FromWebContents(web_contents)->SetZoomMode(zoom_mode); | 1931 ZoomController::FromWebContents(web_contents)->SetZoomMode(zoom_mode); |
1938 | 1932 |
1939 SendResponse(true); | 1933 SendResponse(true); |
1940 return true; | 1934 return true; |
1941 } | 1935 } |
1942 | 1936 |
1943 bool TabsGetZoomSettingsFunction::RunAsync() { | 1937 bool TabsGetZoomSettingsFunction::RunAsync() { |
(...skipping 13 matching lines...) Expand all Loading... |
1957 ZoomModeToZoomSettings(zoom_mode, &zoom_settings); | 1951 ZoomModeToZoomSettings(zoom_mode, &zoom_settings); |
1958 zoom_settings.default_zoom_factor.reset(new double( | 1952 zoom_settings.default_zoom_factor.reset(new double( |
1959 content::ZoomLevelToZoomFactor(zoom_controller->GetDefaultZoomLevel()))); | 1953 content::ZoomLevelToZoomFactor(zoom_controller->GetDefaultZoomLevel()))); |
1960 | 1954 |
1961 results_ = api::tabs::GetZoomSettings::Results::Create(zoom_settings); | 1955 results_ = api::tabs::GetZoomSettings::Results::Create(zoom_settings); |
1962 SendResponse(true); | 1956 SendResponse(true); |
1963 return true; | 1957 return true; |
1964 } | 1958 } |
1965 | 1959 |
1966 } // namespace extensions | 1960 } // namespace extensions |
OLD | NEW |